שתף באמצעות


EditForm, NewForm, SubmitForm, ResetForm, ופונקציות ViewForm

חל על: אפליקציות קנבס

הצג, ערוך או צור פריט, שמור את התוכן ואפס את הפקדים בפקד Edit form.

מבט כולל

פונקציות אלה משנות את המצב של הפקד Edit form. פקד הטופס יכול להיות באחד מהמצבים הבאים:

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

תיאור

פונקציות אלה מופעלות לעתים קרובות מהנוסחה OnSelect של פקד Button‎ או Image‎, כך שהמשתמש יכול לשמור את פעולות העריכה, לבטל את פעולות העריכה או ליצור רשומה. ניתן להשתמש בפקדים ובפונקציות אלה יחד כדי ליצור פתרון מלא.

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

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

SubmitForm

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

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

SubmitFormבנוסף, בודק את המאפיין חוקי של הטופס, שהוא צבירה של כל המאפיינים החוקיים של פקדי הכרטיס שפקד הטופס מכיל. אם מתרחשת בעיה, הנתונים אינם נשלחים, והמאפיינים Error‎‎ ו- ErrorKind‎ של הפקד 'טופס' נקבעים בהתאם.

אם האימות עובר, SubmitForm שולח את השינוי למקור הנתונים.

  • אם פעולה זו מתבצעת בהצלחה, מופעל אופן הפעולה OnSuccess של 'טופס', והמאפיינים Error‎ ו- ErrorKind מנוקים. אם הטופס היה במצב FormMode.New, הוא מוחזר למצב FormMode.Edit.
  • אם פעולה זו אינה מתבצעת בהצלחה, מופעל אופן הפעולה OnFailure של 'טופס', והמאפיינים שגיאה ו- ErrorKind נקבעים בהתאם. מצב הטופס אינו משתנה.

EditForm

הפונקציה EditForm משנה את מצב פקד הטופס ל- FormMode.Edit. במצב זה, תוכן המאפיין Item‎ של הפקד 'טופס' משמש לאכלוס הטופס. אם הפונקציה SubmitForm פועלת כאשר הטופס נמצא במצב זה, רשומה משתנה ולא נוצרת. FormMode.Edit הוא ברירת המחדל עבור פקד הטופס.

הערה

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

NewForm

הפונקציה NewForm משנה את מצב פקד הטופס ל- FormMode.New. במצב זה, המערכת מתעלמת מתוכן המאפיין Item של הפקד 'טופס', וערכי ברירת המחדל של המאפיין DataSource‎ של 'טופס' מאכלסים את הטופס. אם הפונקציה SubmitForm פועלת כאשר הטופס נמצא במצב זה, נוצרת רשומה ולא משתנה.

ResetForm

הפונקציה ResetForm מאפסת את התוכן של טופס לערכים ההתחלתיים שלו, לפני שהמשתמש ביצע שינויים כלשהם. אם הטופס נמצא במצב FormMode.New, הטופס מאופס למצב FormMode.Edit. בנוסף, אופן הפעולה OnReset של הפקד 'טופס' פועל גם הוא. ניתן גם לאפס פקדים בודדים באמצעות הפונקציה Reset‎, אך רק מתוך הטופס.

ViewForm

הפונקציה ViewForm משנה את מצב פקד הטופס ל- FormMode.View. במצב זה, תוכן המאפיין Item‎ של הפקד 'טופס' משמש לאכלוס הטופס. לפונקציות SubmitFormResetForm ולפונקציות אין השפעה במצב זה.

המאפיין DisplayMode

ניתן לקרוא את המצב הנוכחי דרך המאפיין Mode‎. המצב קובע גם את הערך של המאפיין DisplayMode‎, שיכול לשמש כרטיסי נתונים ופקדים בפקד הטופס. לעתים קרובות, המאפיין DisplayMode‎ של כרטיס הנתונים מוגדר ל- Parent.DisplayMode (עם הפניה לטופס), בדומה למאפיין DisplayMode‎ של הפקד (עם הפניה לכרטיס הנתונים):

מצב DisplayMode תיאור
FormMode.Edit DisplayMode.Edit כרטיסי נתונים ופקדים ניתנים לעריכה, מוכנים לקבל שינויים ברשומה.
FormMode.חדש DisplayMode.Edit כרטיסי נתונים ופקדים ניתנים לעריכה, מוכנים לקבל רשומה חדשה.
FormMode.View DisplayMode.View כרטיסי נתונים ופקדים אינם ניתנים לעריכה וממוטבים להצגה.

תחביר

SubmitForm( FormName )

  • FormName - חובה. פקד הטופס שיישלח אל מקור הנתונים.

EditForm( FormName )

  • FormName - חובה. פקד הטופס שיועבר למצב FormMode.Edit.

NewForm( FormName )

  • FormName - חובה. פקד הטופס שיועבר למצב FormMode.New.

ResetForm( FormName )

  • FormName - חובה. פקד הטופס שיאופס לערכים הראשוניים. בנוסף, הפונקציה מעבירה את הטופס מהמצב FormMode.New למצב FormMode.Edit.

ViewForm( FormName )

  • FormName - חובה. פקד הטופס שיועבר למצב FormMode.View.

דוגמאות

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

  1. הוסף פקד 'לחצן', הגדר את המאפיין Text שלו כך שיראה שמור, והגדר את המאפיין OnSelect שלו לנוסחה הבאה:

    SubmitFormאני לא יכול לעשות את זה יותר. EditForm

  2. הגדר את המאפיין OnFailure של פקד 'טופס' ל- blank ואת המאפיין OnSuccess שלו לנוסחה הבאה:

    בְּחֲזָרָה()

  3. תן לפקד Label‎ את השם ErrorText, והגדר את המאפיין Text‎ שלו לנוסחה הבאה:

    EditForm. שגיאה

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

    • אם השליחה מצליחה, השינויים נשמרים. אם הפקד 'טופס' נמצא במצב חדש, נוצרת רשומה. ErrorText הוא ריק והמסך הקודם מופיע שוב.
    • אם השליחה נכשלת, ErrorText מציג הודעת שגיאה ידידותית למשתמש, והמסך הנוכחי נשאר גלוי כך שהמשתמש יכול לפתור את הבעיה ולנסות שוב.
  4. הוסף פקד 'לחצן', הגדר את המאפיין Text‎ שלו כך שיראה ביטול, והגדר את המאפיין OnSelect שלו לנוסחה הבאה:

    ResetForm(); לאחר מכן, לאחר ש- 1 EditForm חזרה()

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

  5. הוסף פקד 'לחצן', הגדר את המאפיין Text‎ שלו כך שיראה חדש, והגדר את המאפיין OnSelect שלו לנוסחה הבאה:

    NewForm(); לאחר מכן, לאחר ש- 1 EditForm Navigate( EditScreen, None )

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