הערה
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות להיכנס או לשנות מדריכי כתובות.
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות לשנות מדריכי כתובות.
חל על: יישומי בד ציור
יישומים מונחי-דגמים
Power Pages
חלק מהאופרטורים הללו תלויים בשפת המחבר. למידע נוסף על תמיכת שפה ביישומי בד ציור, ראה יישומים כלליים.
סימן | סוג | דוגמה | Description |
---|---|---|---|
'...' | מזהה | 'שם תיק לקוח' | מזהים שמכילים תווים מיוחדים, כולל רווחים, מוקפים בגרשיים בודדים |
"..." | מחרוזת טקסט | "Hello, World" | מחרוזות טקסט מוקפות במירכאות כפולות |
$"..." | אינטרפולציה של מחרוזת | $"שלום {FirstName}," | נוסחאות שמוטבעות במחרוזת טקסט |
. | בורר מאפיינים |
Slider1.Value Color.Red Acceleration.X |
חילוץ מאפיין מטבלה, פקד, אות או ספירה. לתאימות לאחור, אפשר להשתמש גם ב- !. |
. [תלוי שפה] |
מפריד עשרוני | 1.23 | מפריד בין מספרים שלמים לשברים של מספר. התו תלוי בשפה. |
( ) | סוגריים |
Filter(T, A < 10) (1 + 2) * 3 |
אוכפת את סדר העדיפויות, ומקבצת ביטויים בביטוי גדול יותר |
+ | אופרטורים אריתמטיים | 1 + 2 | הוספה |
- | 2 - 1 | חיסור | |
* | 2 * 3 | הכפלה | |
/ | 2 / 3 | חלוקה (עיין גם בפונקציה Mod) | |
^ | 2 ^ 3 | העלאה בחזקה, שווה ערך לפונקציה Power | |
% | 20% | אחוז (שווה ערך ל- "* 1/100") | |
= | אופרטורים של השוואה | Price = 100 | שווה ל |
> | Price > 100 | גדול מ- | |
>= | Price >= 100 | גדול או שווה ל- | |
< | Price < 100 | קטן מ- | |
<= | Price <= 100 | קטן או שווה ל- | |
<> | Price <> 100 | לא שווה ל- | |
& | אופרטור של שרשור מחרוזות | "hello" & " " & "world" | הפיכת מחרוזות מרובות לרצופות |
&& או And | אופרטורים לוגיים |
Price < 100 && Slider1.Value = 20 או Price < 100 And Slider1.Value = 20 |
צירוף לוגי, שווה ערך לפונקציה And |
|| או Or | Price < 100 || Slider1.Value = 20 or Price < 100 Or Slider1.Value = 20 | ניתוק לוגי, שווה ערך לפונקציה Or | |
! או Not | !(Price < 100) or Not (Price < 100) | שלילה לוגית, שווה ערך לפונקציה Not | |
exactin | אופרטורים של חברות | Gallery1.Selected exactin SavedItems | השתייכות לאוסף או טבלה |
exactin | "Windows" exactin “To display windows in the Windows operating system...” | בדיקת מחרוזת משנה (תלוי רישיות) | |
ב- | Gallery1.Selected in SavedItems | השתייכות לאוסף או טבלה | |
ב- | "The" in "The keyboard and the monitor..." | בדיקת מחרוזת משנה (אינו תלוי רישיות) | |
@ | אופרטור הבהרה | MyTable[@fieldname] | הבהרת שדה |
@ | [@MyVariable] | הבהרה כללית | |
, [תלוי שפה] |
מפריד רשימה |
If( X < 10, "Low", "Good" ) { X: 12, Y: 32 } [ 1, 2, 3 ] |
מפריד: תו זה תלוי בשפה. |
; [תלוי שפה] |
שרשור נוסחאות | Collect(T, A); Navigate(S1, "") | הפרדת בקשות של פונקציות במאפייני אופן פעולה. אופרטור השרשור תלוי בשפה. |
בתור | כאופרטור | AllCustomers As Customer | עוקפת את ThisItem ואת ThisRecord בגלריות ומתעדת פונקציות של טווח. הפונקציה As שימושית למתן שם טוב יותר וספציפי, והיא חשובה במיוחד בתרחישים מקוננים. |
עצמי | האופרטור Self | Self.Fill | גישה למאפיינים של הפקד הנוכחי |
אב | אופרטור אב | Parent.Fill | גישה למאפיינים של גורם מכיל של פקד |
ThisItem | אופרטור ThisItem | ThisItem.FirstName | גישה לשדות של הפקדים Gallery או Form |
ThisRecord | האופרטור ThisRecord | ThisRecord.FirstName | גישה לרשומה המלאה ולשדות הפרטניים של הרשומה בתוך ForAll, Sum, With ופונקציות טווח של רשומות אחרות. ניתנת לדריסה עם האופרטור As. |
הערה
ניתן להשתמש באופרטור @ גם כדי לאמת את סוג אובייקט הרשומה כנגד מקור נתונים. לדוגמה, Collect(coll,Account@{'Account Number': 1111})
השתמש באופרטורים in וגם exactin כדי למצוא מחרוזת בתוך מקור נתונים, כמו אוסף או טבלה שיובאו. האופרטור in מזהה התאמות ללא קשר לאירוע, והאופרטור exactin מזהה התאמות רק אם הן נכתבות באותיות גדולות באותו אופן. הנה דוגמה:
צור או יבא אוסף בשם מלאי והצג אותו בגלריה, כפי שההליך הראשון בנושא הצגת תמונות וטקסט בגלריה מתאר.
הגדר את המאפיין Items של הגלריה לנוסחה זו:
Filter(Inventory, "E" in ProductName)הגלריה מציגה את כל המוצרים פרט ל- Callisto, משום ששם המוצר הזה הוא השם היחיד שאינו מכיל את האות שציינת.
שנה את המאפיין Items של הגלריה לנוסחה זו:
Filter(Inventory, "E" exactin ProductName)הגלריה מציגה רק את Europa משום ששמה מכיל את האות שציינת באירוע שציינת.
כמה פקדים ופונקציות מיישמים נוסחאות על רשומות בודדות בטבלה. כדי להתייחס לרשומה ספציפית בנוסחה, השתמש באחת מהפעולות הבאות:
אופרטור | חל על | תיאור |
---|---|---|
ThisItem | פקד גלריה פקד עריכת צורה פקד הצגת צורה |
שם ברירת המחדל עבור הרשומה הנוכחית בפקד גלריה או טופס. |
ThisRecord | ForAll, Filter, With, Sum ופונקציות record scope אחרות | שם ברירת המחדל עבור הרשומה הנוכחית ב- ForAll ופונקציות טווח אחרות של רשומות. |
Asname | פקד גלריה ForAll, Filter, With, Sum ופונקציות טווח אחרות של רשומות |
מגדיר שם עבור הרשומה הנוכחית, מחליף ברירת מחדל של ThisItem או ThisRecord. השתמש ב- As כדי שהנוסחאות יהיו קלות יותר להבנה ולפתרון העמימות בעת הקינון. |
לדוגמה, בפקד Gallery להלן, המאפיין Items מוגדר למקור הנתונים עובדים (כמו הטבלה עובדים שכלולה בדוגמה של Northwind Traders):
Employees
הפריט הראשון בגלריה הוא תבנית המשוכפלת עבור כל עובד. בתבנית, הנוסחה לתמונה משתמשת ב- ThisItem כדי להתייחס לפריט הנוכחי:
ThisItem.Picture
באופן דומה, גם הנוסחה לשם משתמשת ב- ThisItem:
ThisItem.'First Name' & " " & ThisItem.'Last Name'
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 )
קיימות שלוש דרכים להפניה לפקד ולמאפיינים שלו בנוסחה:
שיטה | תיאור |
---|---|
לפי שם פקד | ניתן להפנות לכל פקד לפי שם מכל מקום ביישום. לדוגמה, Label1.Fill מתייחס למאפיין המילוי של הפקד ששמו הוא Label1. |
האופרטור Self | לעתים קרובות זה נוח להפנות למאפיין אחר של אותו פקד בעת כתיבת נוסחה. במקום להשתמש בהפניה מוחלטת לפי שם, אפשרות קלה וניידת יותר היא להשתמש בהפניה יחסית לעצמו. האופרטור Self מספק גישה קלה זו לפקד הנוכחי. לדוגמה, Self.Fill מתייחס לצבע המילוי של הפקד הנוכחי. |
האופרטור Parent | פקדים מסוימים מארחים פקדים אחרים, כגון הפקדים Screen ו- Gallery. פקד האירוח של הפקדים הכלולים בתוכו נקרא אב. בדומה לאופרטור Self, האופרטור Parent מספק הפניה יחסית קלה לפקד הגורם המכיל. לדוגמה, Parent.Fill מתייחס לפקד המילוי של הפקד שהוא הגורם המכיל עבור הפקד הנוכחי. |
Self ו- Parent הם אופרטורים ולא מאפיינים בפקדים עצמם. אין תמיכה בהפניה ל- 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. שמות שדות שנוספו עם טווח הרשומה עוקפים את אותם שמות ממקום אחר ביישום. כשזה מתרחש, אתה עדיין יכול לגשת לערכים מחוץ לטווח הרשומה בעזרת אופרטור ההבהרה @.
- כדי לגשת לערכים מטווחי רשומות מקוננות, השתמש באופרטור @ עם שם הטבלה המופעלת בעת השימוש בתבנית זו:
Table[@FieldName] - כדי לקבל גישה לערכים כלליים, כגון מקורות נתונים, אוספים ומשתני הקשר, השתמש בתבנית [@ObjectName] (ללא הקצאת טבלה).
לקבלת מידע נוסף ודוגמאות, ראה טווחי רשומות.