אופרטורים ומזהים ב- Power Apps
חל על: אפליקציות קנבס אפליקציות מונחות דגמים Power Pages
חלק מהאופרטורים הללו תלויים בשפת המחבר. למידע נוסף על תמיכת שפה ביישומי בד ציור, ראה יישומים כלליים.
סימן | סוג | דוגמה | Description |
---|---|---|---|
'...' | מזהה | 'שם חשבון' | מזהים שמכילים תווים מיוחדים, כולל רווחים, מוקפים בגרשיים בודדים |
"..." | מחרוזת טקסט | "שלום, עולם" | מחרוזות טקסט מוקפות במירכאות כפולות |
$"..." | אינטרפולציה מחרוזת | $"יקירי {FirstName}," | נוסחאות שמוטבעות במחרוזת טקסט |
. | בורר מאפיינים | Slider1.Value Color.Red Acceleration.X |
חילוץ מאפיין מטבלה, פקד, אות או ספירה. לתאימות לאחור, אפשר להשתמש גם ב- !. |
. [תלוי שפה] |
מפריד עשרוני | 1.23 | מפריד בין מספרים שלמים לשברים של מספר. התו תלוי בשפה. |
( ) | סוגריים | מסנן (T, A < 10) (1 + 2) * 3 |
אוכפת את סדר העדיפויות, ומקבצת ביטויים בביטוי גדול יותר |
+ | אופרטורים אריתמטיים | 1 + 2 | הוספה |
- | 2 - 1 | חיסור | |
* | 2*3 | הכפלה | |
/ | 2/3 | חלוקה (עיין גם בפונקציה Mod) | |
^ | 2 ^ 3 | העלאה בחזקה, שווה ערך לפונקציה Power | |
% | 20% | אחוז (שווה ערך ל- "* 1/100") | |
= | אופרטורים של השוואה | מחיר = 100 | שווה ל |
> | מחיר > 100 | גדול מ- | |
>= | מחיר >= 100 | גדול או שווה ל- | |
< | מחיר < 100 | קטן מ- | |
<= | מחיר <= 100 | קטן או שווה ל- | |
<> | מחיר <> 100 | לא שווה ל- | |
& | אופרטור של שרשור מחרוזות | "שלום" & " " & "עוֹלָם" | הפיכת מחרוזות מרובות לרצופות |
&& או ו | אופרטורים לוגיים | מחיר < 100 && Slider1.Value = 20 או Price < 100 And Slider1.Value = 20 |
צירוף לוגי, שווה ערך לפונקציה And |
|| או או | מחיר < 100 || Slider1.Value = 20 או מחיר < 100 או Slider1.Value = 20 | ניתוק לוגי, שווה ערך לפונקציה Or | |
! או Not | !(מחיר < 100) או לא (מחיר < 100) | שלילה לוגית, שווה ערך לפונקציה Not | |
מדוייק | מפעילי חברות | גלריה1.נבחרו בדיוקבפריטים שמורים | השתייכות לאוסף או טבלה |
מדוייק | "Windows" בדיוק ב"כדי להציג חלונות במערכת ההפעלה Windows..." | בדיקת מחרוזת משנה (תלוי רישיות) | |
ב | גלריה1.נבחרה בפריטים שמורים | השתייכות לאוסף או טבלה | |
ב | "ה" ב"המקלדת והצג..." | בדיקת מחרוזת משנה (אינו תלוי רישיות) | |
@ | מפעיל ביעור | MyTable[@fieldname] | הבהרת שדה |
@ | [@MyVariable] | הבהרה כללית | |
, [תלוי שפה] |
מפריד רשימה | אם( X < 10, "נמוך", "טוב") { X: 12, Y: 32 } [1, 2, 3] |
מפריד: תו זה תלוי בשפה. |
; [תלוי שפה] |
שרשור נוסחאות | אסוף (ת, א); ניווט (S1, "") | הפרדת בקשות של פונקציות במאפייני אופן פעולה. אופרטור השרשור תלוי בשפה. |
כְּמוֹ | בתור מפעיל | כל הלקוחות כלקוח | עוקפת את ThisItem ואת ThisRecord בגלריות ומתעדת פונקציות של טווח. כְּמוֹ שימושי למתן שם טוב יותר וספציפי וחשוב במיוחד בתרחישים מקוננים. |
עַצמִי | מפעיל עצמי | מילוי עצמי | גישה למאפיינים של הפקד הנוכחי |
אב | מפעיל אב | הורה. מילוי | גישה למאפיינים של גורם מכיל של פקד |
פריט זה | מפעיל פריט זה | ThisItem.FirstName | גישה לשדות של הפקדים Gallery או Form |
התקליט הזה | מפעיל ThisRecord | ThisRecord.FirstName | גישה לרשומה המלאה ולשדות הפרטניים של הרשומה בתוך ForAll, Sum, With ופונקציות טווח של רשומות אחרות. ניתנת לדריסה עם האופרטור As. |
הערה
ניתן להשתמש באופרטור @ גם כדי לאמת את סוג אובייקט הרשומה כנגד מקור נתונים. לדוגמה, Collect(coll,Account@{'Account Number: 1111')
האופרטורים in ו- exactin
השתמש באופרטורים in וגם exactin כדי למצוא מחרוזת בתוך מקור נתונים, כמו אוסף או טבלה שיובאו. האופרטור in מזהה התאמות ללא קשר לאירוע, והאופרטור exactin מזהה התאמות רק אם הן נכתבות באותיות גדולות באותו אופן. הנה דוגמה:
צור או יבא אוסף בשם מלאי והצג אותו בגלריה, כפי שההליך הראשון בנושא הצגת תמונות וטקסט בגלריה מתאר.
הגדר את המאפיין Items של הגלריה לנוסחה זו:
מסנן (מלאי, "E" בשם המוצר)הגלריה מציגה את כל המוצרים פרט ל- Callisto, משום ששם המוצר הזה הוא השם היחיד שאינו מכיל את האות שציינת.
שנה את המאפיין Items של הגלריה לנוסחה זו:
מסנן (מלאי, "E" במדויק בשם המוצר)הגלריה מציגה רק את Europa משום ששמה מכיל את האות שציינת באירוע שציינת.
האופרטורים ThisItem, ThisRecord ו-As
כמה פקדים ופונקציות מיישמים נוסחאות על רשומות בודדות בטבלה. כדי להתייחס לרשומה ספציפית בנוסחה, השתמש באחת מהפעולות הבאות:
אופרטור | חל על | תיאור |
---|---|---|
פריט זה | גָלֶרֵיָה לִשְׁלוֹט ערוך טופס לִשְׁלוֹט טופס תצוגה לִשְׁלוֹט |
שם ברירת המחדל עבור הרשומה הנוכחית בפקד גלריה או טופס. |
התקליט הזה | ForAll, מסנן, עם, סכום ושאר טווח רשומה פונקציות | שם ברירת המחדל עבור הרשומה הנוכחית ב- ForAll ופונקציות טווח אחרות של רשומות. |
כשם | שליטה בגלריה ForAll, מסנן, עם, סכום ופונקציות אחרות של היקף רשומות |
מגדיר שם עבור הרשומה הנוכחית, מחליף ברירת מחדל של ThisItem או ThisRecord. השתמש ב- As כדי שהנוסחאות יהיו קלות יותר להבנה ולפתרון העמימות בעת הקינון. |
אופרטור ThisItem
לדוגמה, בפקד Gallery להלן, המאפיין Items מוגדר למקור הנתונים עובדים (כמו הטבלה עובדים שכלולה בדוגמה של Northwind Traders):
Employees
הפריט הראשון בגלריה הוא תבנית המשוכפלת עבור כל עובד. בתבנית, הנוסחה לתמונה משתמשת ב- ThisItem כדי להתייחס לפריט הנוכחי:
ThisItem.Picture
באופן דומה, גם הנוסחה לשם משתמשת ב- ThisItem:
ThisItem.'First Name' & " " & ThisItem.'Last Name'
האופרטור ThisRecord
ThisRecord משמש בפונקציות שיש להן היקף רשומה. לדוגמה, אנו יכולים להשתמש בפונקציה Filter עם המאפיין Items של הגלריה שלנו כדי להציג רק שמות פרטיים שמתחילים באות M:
Filter( Employees, StartsWith( ThisRecord.Employee.'First Name', "M" ) )
ThisRecord הוא אופציונלי ומשתמע על ידי שימוש ישיר בשדות, לדוגמה, במקרה זה, יכולנו לכתוב:
Filter( Employees, StartsWith( 'First Name', "M" ) )
אם כי לא חובה, באמצעות ThisRecord אפשר להקל על ההבנה של נוסחאות. ייתכן שהיא תידרש במצבים דו-משמעיים שבהם שם שדה עשוי להיות גם שם של קשרי גומלין. ThisRecord הוא אופציונלי בעוד ש ThisItem נדרש תמיד.
השתמש ב- ThisRecord כדי להתייחס לכל הרשומה עם Patch, Collect ופונקציות טווח רשומות אחרות. לדוגמה, הנוסחה הבאה מגדירה את הסטטוס של כל העובדים הלא פעילים לפעילים:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees,
Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )
כאופרטור
השתמש באופרטור As כדי לתת שם לרשומה בגלריה או בפונקציית טווח רשומה, תוך ביטול ברירת המחדל של ThisItem או ThisRecord. מתן שם לרשומה יכול להקל על הבנת הנוסחאות שלך ועשוי להידרש במצבים מקוננים כדי לגשת לרשומות בטווחים אחרים.
לדוגמה, באפשרותך לשנות את המאפיין Items של הגלריה שלנו שישתמש באופרטור As כדי לזהות שאנחנו עובדים עם עובד:
Employees As Employee
הנוסחאות לתמונה ושם מותאמות לשימוש בשם זה עבור הרשומה הנוכחית:
Employee.Picture
Employee.'First Name' & " " & Employee.'Last Name'
As ניתן להשתמש גם עם פונקציות של היקף רשומות כדי להחליף את שם ברירת המחדל ThisRecord. אנו יכולים ליישם זאת על הדוגמה הקודמת שלנו כדי להבהיר את הרשומה שאיתה אנו עובדים:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees As Employee,
Patch( Employees, Employee, { Status: 'Status (Employees)'.Active } ) ) )
כאשר מקננים גלריות ופונקציות של טווח רשומות, ThisItem ו- ThisRecord תמיד מתייחסים לטווח הפנימי ביותר ומשאירים רשומות בטווחים חיצוניים לא זמינים. השתמש באופרטור As כדי להפוך את כל טווחי הרשומות לזמינים על ידי מתן שם ייחודי לכל אחד.
לדוגמה, נוסחה זו מייצרת תבנית לוח שחמט כמחרוזת טקסט על ידי קינון שתי פונקציות ForAll:
Concat(
ForAll( Sequence(8) As Rank,
Concat(
ForAll( Sequence(8) As File,
If( Mod(Rank.Value + File.Value, 2) = 1, " X ", " . " )
),
Value
) & Char(10)
),
Value
)
הגדרת מאפיין Text של פקד Label לנוסחה זו תציג:
בוא נפרק את מה שקורה כאן:
- נתחיל באיטרציה של טבלה ללא שם של 8 רשומות ממוספרות מהפונקציה Sequence. לולאה זו מיועדת לכל שורה בלוח, המכונה בדרך כלל דרגה וכך אנו נותנים לה את השם הזה.
- עבור כל שורה, אנו חוזרים על טבלה אחרת ללא שם הכוללת 8 עמודות, ונותנים את השם הנפוץ קובץ.
- אם Rank.Value + File.Value הוא מספר לא זוגי, הריבוע מקבל את X, ואם לא אז נקודה. החלק הזה של הנוסחה מתייחס אל שתי הלולאות של ForAll, מה שאפשרי על ידי השימוש באופרטור As.
- Concat משמשת פעמיים, תחילה להרכבת העמודות ולאחר מכן את השורות, כאשר Char(10) נזרק פנימה כדי ליצור שורה חדשה.
דוגמה דומה אפשרית עם פקדים של Gallery מקוננת במקום הפונקציות ForAll. נתחיל עם הגלריה האנכית של דרגה. לפקד גלריה זה תהיה נוסחה פריטים של:
Sequence(8) as Rank
בתוך הגלריה נניח גלריה אופקית עבור קוֹבץ, שתשוכפל עבור כל דרגה, עם מאפיין Items של:
Sequence(8) as File
ולבסוף, בתוך הגלריה הזו נוסיף פקד Label שישוכפל עבור כל קובץ וכל דרגה. אנו נגדיל אותו כדי למלא את כל החלל ונשתמש במאפיין Fill כדי לספק לצבע את הנוסחה הזו:
If( Mod( Rank.Value + File.Value, 2 ) = 1, Green, Beige )
האופרטורים Self ו- Parent
קיימות שלוש דרכים להפניה לפקד ולמאפיינים שלו בנוסחה:
שיטה | תיאור |
---|---|
לפי שם פקד | ניתן להפנות לכל פקד לפי שם מכל מקום ביישום. לדוגמה, Label1.Fill מתייחס למאפיין המילוי של הפקד ששמו הוא Label1. |
מפעיל עצמי | לעתים קרובות זה נוח להפנות למאפיין אחר של אותו פקד בעת כתיבת נוסחה. במקום להשתמש בהפניה מוחלטת לפי שם, אפשרות קלה וניידת יותר היא להשתמש בהפניה יחסית לעצמו. האופרטור Self מספק גישה קלה זו לפקד הנוכחי. לדוגמה, Self.Fill מתייחס לצבע המילוי של הפקד הנוכחי. |
אב מפעיל | פקדים מסוימים מארחים פקדים אחרים, כגון הפקדים Screen ו- Gallery. פקד האירוח של הפקדים הכלולים בתוכו נקרא אב. בדומה לאופרטור Self, האופרטור Parent מספק הפניה יחסית קלה לפקד הגורם המכיל. לדוגמה, Parent.Fill מתייחס לפקד המילוי של הפקד שהוא הגורם המכיל עבור הפקד הנוכחי. |
Self ו אב הם אופרטורים ולא מאפיינים בפקדים עצמם. אין תמיכה בהפניה ל- Parent.Parent, Self.Parent או Parent.Self.
שמות מזהים
שמות המשתנים, מקורות הנתונים, העמודות ואובייקטים אחרים יכולים להכיל כל Unicode.
השתמש בגרשיים בודדים מסביב לשם המכיל רווח או תו מיוחד אחר.
השתמש בשני גרשיים בודדים יחד כדי לייצג מרכאה יחידה בשם. שמות שאינם מכילים תווים מיוחדים לא דורשים גרשיים בודדים.
הנה כמה שמות עמודות לדוגמה שבהם אתה עשוי להיתקל בטבלה, והאופן שבו הם מיוצגים בנוסחה:
שם עמודה במסד נתונים | הפניה לעמודה בנוסחה |
---|---|
SimpleName | SimpleName |
NameWith123Numbers | NameWith123Numbers |
שם עם רווחים | 'Name with spaces' |
שם עם מרכאות "כפולות" | 'Name with "double" quotes' |
שם עם גרשיים 'בודדים' | 'Name with ''single'' quotes' |
שם עם סימן @ | 'Name with an @ at sign' |
מרכאות כפולות משמשות כדי להקצות מחרוזות טקסט.
שמות תצוגה ושמות לוגיים
מקורות נתונים מסוימים כגון SharePoint ו- Microsoft Dataverse הם בעלי שני שמות שונים כדי להפנות לאותן טבלה או עמודת נתונים:
שם לוגי - שם שמובטח שהוא ייחודי, אינו משתנה לאחר יצירתו, בדרך כלל אינו מאפשר רווחים או תווים מיוחדים אחרים ואינו ממוקם בשפות שונות. כתוצאה מכך השם יכול להיות מוצפן. שמות אלה משמשים מפתחים מקצועיים. לדוגמה, cra3a_customfield. שם זה מכונה גם שם סכימה או פשוט שם.
שם תצוגה - שם ידידותי למשתמש ונועד להיראות על ידי משתמשי קצה. ייתכן ששם זה אינו ייחודי, הוא עשוי להשתנות במשך הזמן, הוא עשוי להכיל רווחים וכל תו Unicode, וייתכן שיותאם לשפות אחרות. בהתאמה לדוגמה שלמעלה, שם תצוגה עשוי להיות שדה מותאם עם רווח בין המילים.
מכיוון שקל יותר להבין שמות תצוגה, יישומי בד ציור יציעו אותם כאפשרויות ולא יציעו שמות לוגיים. על אף ששמות לוגיים לא מוצעים, עדיין ניתן להשתמש בהם אם הם הוקלדו באופן עקיף.
לדוגמה, נניח שהוספת שדה מותאם אישית לטבלה ב- Dataverse. המערכת תקצה עבורך שם לוגי שתוכל לשנות רק בעת יצירת השדה. התוצאה תיראה דומה לתוצאה הבאה:
בעת חיבור הפניה לשדה של 'תיקי לקוחות', ההצעה תיווצר כך שתשתמש ב'שדה מותאם אישית' משום שזהו שם התצוגה. יש להשתמש בגרשיים בודדים מכיוון שהשם הזה כולל רווח:
לאחר בחירת ההצעה, 'שדה מותאם אישית' מוצג בשורת הנוסחאות והנתונים מאוחזרים:
על אף שהוא לא מוצע, נוכל להשתמש גם בשם הלוגי עבור שדה זה. התוצאה תהיה אחזור של אותם נתונים. אין צורך בגרשיים בודדים מכיוון שהשם הזה לא מכיל רווחים או תווים מיוחדים:
מאחורי הקלעים, נשמר מיפוי בין שמות התצוגה הנראים בנוסחאות לשמות הלוגיים הבסיסיים. מכיוון שיש להשתמש בשמות לוגיים כדי ליצור אינטראקציה עם מקור הנתונים, מיפוי זה משמש להמרה משם התצוגה הנוכחי לשם הלוגי באופן אוטומטי וזה מה שנראה בתעבורת הרשת. מיפוי זה משמש גם להמרה חזרה לשמות לוגיים כדי לעבור לשמות תצוגה חדשים, לדוגמה, אם שם תצוגה משתנה או אם יצרן בשפה אחרת עורך את האפליקציה.
הערה
שמות לוגיים לא מתורגמים בעת העברת יישום בין סביבות. עבור שמות של שדות וטבלאות במערכת Dataverse, זו אינה אמורה להוות בעיה מכיוון ששמות לוגיים עקביים בכל הסביבות. אבל לכל השדות המותאמים אישית, כגון cra3a_customfield בדוגמה זו לעיל, עשויה להיות קידומת סביבה שונה (cra3a במקרה זה). עדיף להשתמש בשמות תצוגה משום שניתן להתאים אותם לשמות תצוגה בסביבה החדשה.
הבהרת שם
מכיוון ששמות תצוגה אינם ייחודיים, אותו שם תצוגה יכול להופיע יותר מפעם אחת באותה טבלה. כאשר זה קורה, השם הלוגי יתווסף לסוף שם התצוגה בסוגריים עבור אחד או יותר מהשמות המתנגשים. בהתבסס על הדוגמה לעיל, אם היה שדה שני עם אותו שם תצודה של שדה מותאם אישית עם שם לוגי של cra3a_customfieldalt, ההצעות היו מראות:
מחרוזות להבהרת שמות מתווספות במצבים אחרים שבהם מתרחשות התנגשויות בשמות, כגון שמות של טבלאות, אפשרויות בחירה ופריטים אחרים של Dataverse.
אופרטור הבהרה
פונקציות מסוימות יוצרות טווחי רשומות לקבלת גישה לשדות הטבלה במהלך עיבוד כל רשומה, כגון Filter, AddColumns, וSum. שמות שדות שנוספו עם טווח הרשומה עוקפים את אותם שמות ממקום אחר ביישום. כשזה מתרחש, אתה עדיין יכול לגשת לערכים מחוץ לטווח הרשומה בעזרת אופרטור ההבהרה @.
- כדי לגשת לערכים מטווחי רשומות מקוננות, השתמש באופרטור @ עם שם הטבלה המופעלת בעת השימוש בתבנית זו:
טבלה[@שם שדה] - כדי לקבל גישה לערכים כלליים, כגון מקורות נתונים, אוספים ומשתני הקשר, השתמש בתבנית [@ObjectName] (ללא הקצאת טבלה).
לקבלת מידע נוסף ודוגמאות, ראה טווחי רשומות.