שתף באמצעות


הפונקציות Relate ו- Unrelate

חל על: יישומי בד ציור יישומים מונחי דגמים

בצע קישור, ובטל קישור זה, של רשומות של שתי טבלאות דרך קשר 'אחד לרבים' או 'רבים לרבים'.

תיאור

הפונקציה Relate מקשרת שתי רשומות דרך קשר גומלין מסוג אחד לרבים או רבים לרבים ב- Microsoft Dataverse. הפונקציה Unrelate הופכת את התהליך ומסירה את הקישור.

עבור קשרים של 'אחד לרבים', הטבלה Many ('רבים') כוללת שדה מפתח זר שמצביע על רשומה של הטבלה One (אחד). הפונקציה Relate מגדירה שדה זה כך שיצביע על רשומה ספציפית של הטבלה One ('אחד'), בעוד שהפונקציה Unrelate מגדירה שדה זה לריק. אם השדה כבר מוגדר כאשר מתבצעת קריאה אל Relate, הקישור הקיים יאבד לטובת הקישור החדש. באפשרותך גם להגדיר שדה זה באמצעות הפונקציה Patch או פקד Edit form; אינך צריך להשתמש בפונקציה Relate.

עבור קשרי גומלין מסוג רבים לרבים, המערכת שמקשרת את הרשומות שומרת טבלת צירוף מוסתר. אינך יכול לגשת ישירות לטבלת הצירוף; ניתן לקרוא אותה רק דרך חיזוי של אחד לרבים ולהגדיר דרך הפונקציות Relate ו- Unrelate. לאף טבלה קשורה אין מפתח זר.

יבוצע רענון לנתונים עבור הטבלה שציינת בארגומנט הראשון כך שהם ישקפו את השינוי, אולם הנתונים עבור הטבלה שציינת בארגומנט השני לא ישקפו זאת. יש לרענן נתונים אלה ידנית בעזרת הפונקציה Refresh כדי להציג את תוצאת הפעולה.

פונקציות אלה לעולם אינן יוצרות או מוחקות רשומה. הן רק מקשרות או מבטלות קישור של שתי רשומות שכבר קיימות.

באפשרותך להשתמש בפונקציות אלה רק בנוסחאות של אופן פעולה.

הערה

פונקציות אלה מהוות חלק מתכונת תצוגה מקדימה, ואופן הפעולה שלהן זמין רק כאשר התכונה נתונים יחסיים, קבוצות אפשרויות ותכונות חדשות אחרות עבור CDS מופעלת. זוהי הגדרה ברמת היישום שמופעלת כברירת מחדל עבור יישומים חדשים. כדי למצוא מתג תכונה זה, בחר הגדרות, ולאחר מכן בחר תכונות עתידיות. המשוב שלך חשוב לנו - ספר לנו מה אתה חושב בפורומי הקהילה של Power Apps.

תחביר

Relate( Table1RelatedTable, Table2Record )

  • Table1RelatedTable - נדרש. עבור רשומה של Table1, הרשומות של הטבלה Table2 יקושרו דרך קשר של 'אחד לרבים' או 'רבים לרבים'.
  • Table2Record - נדרש. הרשומה Table2 שיש להוסיף לקשר.

Unrelate( Table1RelatedTable, Table2Record )

  • Table1RelatedTable - נדרש. עבור רשומה של Table1, הרשומות של הטבלה Table2 יקושרו דרך קשר של 'אחד לרבים' או 'רבים לרבים'.
  • Table2Record - נדרש. הרשומה Table2 שיש להסיר מהקשר.

דוגמאות

שקול את הטבלה מוצרים עם הקשרים הבאים כפי שניתן לראות במציג הטבלאות של פורטל Power Apps:

שם תצוגה של קשר גומלין טבלה קשורה סוג קשר
הזמנת מוצר הזמנה יחיד לרבים
מוצר ↔ איש קשר איש קשר רבים לרבים

מוצרים והזמנות קשורים דרך קשר גומלין מסוג אחד לרבים. כדי לקשר את הרשומה הראשונה של הטבלה שיריונים עם הרשומה הראשונה של הטבלה מוצרים:

Relate( First( Products ).Reservations, First( Reservations ) )

כדי להסיר את קשר הגומלין בין רשומות אלה:

Unrelate( First( Products ).Reservations, First( Reservations ) )

מעולם לא יצרנו או הסרנו רשומה, רק קשר הגומלין בין הרשומות השתנה.

מוצרים ואנשי קשר קשורים דרך קשר גומלין מסוג רבים לרבים. כדי לקשר את הרשומה הראשונה של הטבלה אנשי קשר עם הרשומה הראשונה של הטבלה מוצרים:

Relate( First( Products ).Contacts, First( Contacts ) )

משום שקשרי גומלין מסוג רבים לרבים הם סימטריים, יכולנו גם לעשות זאת בכיוון ההפוך:

Relate( First( Contacts ).Products, First( Products ) )

כדי להסיר את קשר הגומלין בין רשומות אלה:

Unrelate( First( Products ).Contacts, First( Contacts ) )

לחלופין:

Unrelate( First( Contacts ).Products, First( Products ) )

הפירוט שלהלן יבצע את הפעולות האלו בטבלאות האלו באמצעות יישום עם פקד Gallery‎ ופקד Combo box לבחירת הרשומות המעורבות.

דוגמאות אלה תלויות בנתוני הדגימה המותקנים בסביבתך. צור סביבת ניסיון כולל נתונים לדוגמה או הוסף נתונים לדוגמה לסביבה קיימת.

יחיד לרבים

הפונקציה Relate

ראשית תיצור יישום לדוגמה כדי להציג ולהקצות מחדש את ההזמנות המשויכות למוצר.

  1. צור יישום Tablet מאפס.

  2. בכרטיסיה תצוגה, בחר מקורות נתונים.

  3. בחלונית נתונים, בחר הוסף נתונים> בחר מוצרים.
    הטבלה 'מוצרים' היא חלק מהנתונים לדוגמה שנטענו לעיל.

  4. בכרטיסיה הוספה, הוסף פקד Gallery‎ אנכי ריק.

  5. ודא שהפקד שהוספת נקרא Gallery1, ולאחר מכן העבר ושנה את גודלו כדי למלא את הצד השמאלי של המסך.

  6. בכרטיסיה מאפיינים, הגדר את המאפיין Items‎ של Gallery1 למוצרים ואת הפריסה שלו לתמונה וכותרת.

    קביעת התצורה של גלריית מוצרים.

  7. ב- Gallery1, ודא שהפקד Label‎ נקרא Title1, ולאחר מכן הגדר את המאפיין Text‎ שלו ל- ThisItem.Name.

    קביעת תצורת התווית ב- Gallery1.

  8. בחר את המסך כדי להימנע מהוספת הפריט הבא אל Gallery1. הוסף פקד Gallery אנכי ריק שני וודא שהוא נקרא Gallery2.

    Gallery2 יציג את ההזמנות עבור כל מוצר שהמשתמש בוחר ב- Gallery1.

  9. העבר ושנה את גודל Gallery2 כך שימלא את הרביע העליון הימני של המסך.

  10. (אופציונלי) הוסף את פקד Label‎ הכחול מעל Gallery2, כפי שמציג האיור הבא.

  11. בשורת הנוסחאות, הגדר את המאפיין Items‎ של Gallery2 ל- Gallery1.Selected.Reservations.

    קביעת התצורה של פריטי Gallery2.

  12. בחלונית המאפיינים, הגדר את פריסה של Gallery2 לכותרת.

    קביעת התצורה של פריסת Gallery2.

  13. ב- Gallery2, הוסף פקד Combo box, ודא שהוא נקרא ComboBox1, ולאחר מכן הזז ושנה את גודלו כדי להימנע מחסימת הפקדים האחרים ב- Gallery2.

  14. בכרטיסיה מאפיינים, הגדר את המאפיין Items‎ של ComboBox1 למוצרים.

    הגדרת המאפיין 'פריטים' ל'מוצרים'.

  15. גלול למטה בכרטיסיה מאפיינים והגדר את המאפיין Allow multiple selection של ComboBox1 לכבוי.

    הגדרת 'אפשר בחירה מרובה' ל'כבוי'.

  16. בשורת הנוסחאות, הגדר את המאפיין DefaultSelectedItems של ComboBox1 ל- ThisItem.'Product Reservation'.

    הגדרת DefaultSelectedItems עבור ReserveCombo.

  17. ב- Gallery2, הגדר את המאפיין OnSelect של NextArrow2 לנוסחה זו:

    Relate( ComboBox1.Selected.Reservations, ThisItem )
    

    כאשר המשתמש בוחר סמל זה, ההזמנה הנוכחית משתנה למוצר שהמשתמש בחר ב- ComboBox1.

    קביעת התצורה של NextArrow2.

  18. הקש F5 כדי לבדוק את היישום במצב תצוגה מקדימה.

באמצעות יישום זה, המשתמש יכול להעביר הזמנה ממוצר אחד לשני. עבור הזמנה במוצר אחד, המשתמש יכול לבחור מוצר שונה ב- ComboBox1 ולאחר מכן לבחור NextArrow2 כדי לשנות הזמנה זו.

הדגמת הפונקציה Relate ביישום של אחד לרבים.

הפונקציה Unrelate

בשלב זה, באפשרותך להעביר את קשר הגומלין מרשומה אחת לשנייה, אבל אין באפשרותך להסיר לגמרי את קשר הגומלין. באפשרותך להשתמש בפונקציה Unrelate כדי לנתק רשומת הזמנה מכל מוצר.

  1. בכרטיסיה תצוגה, בחר מקורות נתונים.

  2. בחלונית נתונים, בחר הוסף מקור נתונים>Microsoft Dataverse>הזמנות>התחבר.

  3. ב- Gallery2, הגדר את הנוסחה OnSelect עבור NextArrow2 לנוסחה זו:

    If( IsBlank( ComboBox1.Selected ),
        Unrelate( Gallery1.Selected.Reservations, ThisItem ),
        Relate( ComboBox1.Selected.Reservations, ThisItem )
    );
    Refresh( Reservations )
    

    קביעת התצורה של הסמל 'ימין'.

  4. העתק את Gallery2 ללוח על-ידי בחירה בו והקשת Ctrl-C.

  5. הדבק שכפול של Gallery2 באותו מסך על-ידי הקשת Ctrl-V, ולאחר מכן העבר אותו אל הרביע התחתון הימני של המסך.

  6. (אופציונלי) אם הוספת תווית מעל Gallery2, חזור על שני השלבים הקודמים עבור תווית זו.

  7. ודא שהשכפול של Gallery2 נקרא Gallery2_1, ולאחר מכן הגדר את המאפיין Items‎ שלו לנוסחה זו:

    Filter( Reservations, IsBlank( 'Product Reservation' ) )
    

    מופיעה הודעת הקצאה, אבל אין לה חשיבות עם כמות נתונים קטנה כמו בדוגמה זו.

    הגדרת המאפיין 'פריטים' של Gallery2_1.

עם שינויים אלה, המשתמשים יכולים לנקות את הבחירה ב- ComboBox1 עבור איש קשר אם אותו אדם לא הזמין מוצר. אנשי קשר שלא הזמינו מוצר מופיעים ב- Gallery2_1 שם משתמשים יכולים להקצות כל איש קשר למוצר.

הדגמת הפונקציות Relate ו- Unrelate ביישום של אחד לרבים.

רבים לרבים

יצירת קשר גומלין מסוג רבים לרבים

הנתונים לדוגמה אינם כוללים קשר 'רבים לרבים', אולם תיצור קשר שכזה בין הטבלה 'מוצרים' והטבלה 'אנשי קשר'. משתמשים יכולים לקשר כל מוצר ליותר מאיש קשר אחד וכל איש קשר ליותר ממוצר אחד.

  1. מתוך דף זה, בחר נתונים בסרגל הניווט השמאלי ולאחר מכן בחר טבלאות.

    פתח רשימת טבלאות.

  2. שנה את מסנן הטבלאות כך שיכלול את כל הטבלאות.

    כברירת מחדל, טבלאות לדוגמה אינן מופיעות.

    הסר את מסנן הטבלאות.

  3. גלול מטה, פתח את הטבלה מוצר ובחר קשרים.

  4. בחר הוסף קשר>רבים לרבים.

  5. בחר את הטבלה איש קשר עבור הקשר.

  6. בחר בוצע>שמור טבלה.

קישור וניתוק של אנשי קשר עם מוצר אחד או יותר

אתה תיצור יישום אחר הדומה ליישום שיצרת קודם לכן בנושא זה, אבל היישום החדש יציע קשר גומלין מסוג רבים לרבים. כל איש קשר יוכל להזמין מוצרים מרובים במקום אחד בלבד.

  1. ביישום ריק עבור מחשבי Tablet, צור Gallery1 כפי שהליך ראשון בנושא זה מתאר.

  2. הוסף פקד Gallery אנכי ריק נוסף, ודא שהוא נקרא Gallery2 ולאחר מכן העבר אותו אל הפינה הימנית העליונה של המסך.

    בהמשך נושא זה, תוסיף פקד Combo box תחת Gallery2.

  3. בשורת הנוסחאות, הגדר את המאפיין Gallery2 של Items‎ ל- Gallery1.Selected.Contacts.

    קביעת תצורה של ContactsGallery – מאפיין פריטים.

  4. בכרטיסיה מאפיינים, הגדר את פריסה לתמונה וכותרת.

    קביעת תצורה של ContactsGallery – פריסה.

  5. ב- Gallery2, ודא שהפקד Label‎ נקרא Title2, ולאחר מכן הגדר את המאפיין Text‎ שלו ל- ThisItem.'Full Name.

    לא יופיע טקסט בפקד זה עד שלא תסיים את ההליך ותקצה איש קשר למוצר.

    הצגת שם איש קשר.

  6. מחק את NextArrow2, הוסף סמל ביטול וודא שהוא נקרא icon1.

  7. הגדר את המאפיין OnSelect של הסמל ביטול לנוסחה זו:

    Unrelate( Gallery1.Selected.Contacts, ThisItem )
    

    קביעת התצורה של סמל 'ביטול'.

  8. בכרטיסיה תצוגה, בחר מקורות נתונים.

  9. בחלונית נתונים, בחר הוסף מקור נתונים>Microsoft Dataverse>אנשי קשר>התחבר.

  10. תחת Gallery2, הוסף פקד Combo box, ודא שהוא נקרא ComboBox1, ולאחר מכן הגדר את המאפיין Items‎ שלו לאנשי קשר.

    קביעת התצורה של המאפיין 'פריטים' של התיבה המשולבת.

  11. בכרטיסיה מאפיינים, הגדר את אפשר בחירה מרובה לערך כבוי.

    קביעת התצורה של המאפיין 'פריסה' של התיבה המשולבת.

  12. הוסף סמל הוספה, והגדר את מאפיין OnSelect שלו לנוסחה זו:

    Relate( Gallery1.Selected.Contacts, ComboBox1.Selected )
    

    קביעת תצורה של סמל 'הוספה'.

בעזרת יישום זה, משתמשים יכולים כעת לקשר ולנתק בחופשיות ערכת אנשי קשר לכל מוצר.

  • כדי להוסיף איש קשר למוצר, בחר את איש הקשר בתיבה המשולבת שבתחתית המסך ובחר את סמל הוספה.

  • כדי להסיר איש קשר ממוצר, בחר את סמל ביטול עבור איש קשר זה.

    בניגוד לקשר גומלין מסוג אחד לרבים, קשר גומלין מסוג רבים לרבים מאפשר למשתמשים לשייך את אותו איש קשר למוצרים מרובים.

הדגמת הפונקציות Relate ו- Unrelate ביישום של רבים לרבים.

בסדר הפוך: קישור וניתוק מוצרים מאנשי קשר מרובים

קשרי גומלין מסוג רבים לרבים הם סימטריים. באפשרותך להרחיב את הדוגמה כדי להוסיף מוצרים לאיש קשר ולאחר מכן להפוך בין שני המסכים כדי להציג כיצד קשר הגומלין מופיע מכל כיוון.

  1. הגדר את המאפיין OnVisible של Screen1 לערך רענון ( מוצרים ).

    בעת עדכון קשר 'אחד לרבים' או 'רבים לרבים', מתבצע רענון רק לנתונים של טבלת הארגומנט הראשונה של קריאת Relate או Unrelate. יש לרענן את הישות השניה באופן ידני אם ברצונך להחליף בין המסכים של היישום.

    הגדרת המאפיין OnVisible לפונקציה Refresh.

  2. שכפל את Screen1.

    השכפול ייקרא Screen1_1 וייצור את הבסיס לבחינת קשרי הגומלין מצד אנשי הקשר.

    שכפול מסך.

  3. כדי ליצור את התצוגה ההפוכה, שנה נוסחאות אלה בפקדים של Screen1_1:

    • Screen1_1.OnVisible = Refresh( Contacts )
    • Gallery1_1.Items = Contacts
    • Title1_1.Text = ThisItem.'Full Name'
    • Label1_1.Text = "Selected Contact Products"
    • Gallery2_1.Items = Gallery1_1.Selected.Products
    • Title2_1.Text = ThisItem.Name
    • Icon1_1.OnSelect = Unrelate( Gallery1_1.Selected.Products, ThisItem )
    • ComboBox1_1.Items = Products
    • Icon2_1.OnSelect = Relate( Gallery1_1.Selected.Products, ComboBox1_1.Selected )

    התוצאה תיראה דומה מאוד למסך הקודם אך מגיעה לקשר הגומלין מצד אנשי הקשר.

    הצגת קשר גומלין מסוג רבים לרבים המתחיל באנשי קשר.

  4. הוסף סמל חצים למעלה למטה והגדר את המאפיין OnSelect שלו לערך Navigate( Screen1, None ). בצע אותו דבר ב- Screen1 עם הנוסחה Navigate( Screen1_1, None ).

    הוספת ניווט בין מסכים.

בעזרת מסך חדש זה, משתמשים יכולים להוסיף איש קשר למוצר ולאחר מכן להפוך לתצוגה של אנשי קשר ולראות את המוצר המשויך. קשרי הגומלין הם סימטריים ומשותפים לשני המסכים.

הדגמת קשר גומלין מסוג רבים לרבים מכל צד.