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

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

אימות הפעלת התוסף:
בכל דף, צרו בלוק פרטים (לדוגמה, users) ובדקו אם קיימת אפשרות תצורת תבנית מתאימה בתצורת הפעולה:


צרו את אוסף הישויות הראשי, אוסף החוזים ואוסף פריטי המוצר שתכננו לעיל (בחרו שדות ליבה בלבד).
| קטגוריית שדה | שם תצוגה של שדה | Field Name | Field Interface |
|---|---|---|---|
| שדות מפתח ראשי ומפתח זר | |||
| מזהה | id | Integer | |
| מזהה קונה | buyer_id | Integer | |
| מזהה מוכר | seller_id | Integer | |
| שדות קישור | |||
| פריטי חוזה | contract_items | One to many | |
| קונה (צד א') | buyer | Many to one | |
| מוכר (צד ב') | seller | Many to one | |
| שדות כלליים | |||
| מספר חוזה | contract_no | Single line text | |
| תאריך התחלת אספקה | start_date | Datetime (with time zone) | |
| תאריך סיום אספקה | end_date | Datetime (with time zone) | |
| יחס מקדמה (%) | deposit_ratio | Percent | |
| ימי תשלום לאחר אספקה | payment_days_after | Integer | |
| שם חשבון בנק (מוטב) | bank_account_name | Single line text | |
| שם בנק | bank_name | Single line text | |
| מספר חשבון בנק (מוטב) | bank_account_number | Single line text | |
| סכום כולל | total_amount | Number | |
| קודי מטבע | currency_codes | Single select | |
| יחס יתרה (%) | balance_ratio | Percent | |
| ימי יתרה לאחר אספקה | balance_days_after | Integer | |
| מקום אספקה | delivery_place | Long text | |
| שם חותם צד א' | party_a_signatory_name | Single line text | |
| תפקיד חותם צד א' | party_a_signatory_title | Single line text | |
| שם חותם צד ב' | party_b_signatory_name | Single line text | |
| תפקיד חותם צד ב' | party_b_signatory_title | Single line text | |
| שדות מערכת | |||
| נוצר ב- | createdAt | Created at | |
| נוצר על ידי | createdBy | Created by | |
| עודכן לאחרונה ב- | updatedAt | Last updated at | |
| עודכן לאחרונה על ידי | updatedBy | Last updated by |
| קטגוריית שדה | שם תצוגה של שדה | Field Name | Field Interface |
|---|---|---|---|
| שדות מפתח ראשי ומפתח זר | |||
| מזהה | id | Integer | |
| שדות כלליים | |||
| שם צד | party_name | Single line text | |
| כתובת | address | Single line text | |
| איש קשר | contact_person | Single line text | |
| טלפון איש קשר | contact_phone | Phone | |
| תפקיד | position | Single line text | |
| אימייל | |||
| אתר אינטרנט | website | URL | |
| שדות מערכת | |||
| נוצר ב- | createdAt | Created at | |
| נוצר על ידי | createdBy | Created by | |
| עודכן לאחרונה ב- | updatedAt | Last updated at | |
| עודכן לאחרונה על ידי | updatedBy | Last updated by |
| קטגוריית שדה | שם תצוגה של שדה | Field Name | Field Interface |
|---|---|---|---|
| שדות מפתח ראשי ומפתח זר | |||
| מזהה | id | Integer | |
| מזהה חוזה | contract_id | Integer | |
| שדות קישור | |||
| חוזה | contract | Many to one | |
| שדות כלליים | |||
| שם מוצר | product_name | Single line text | |
| מפרט / דגם | spec | Single line text | |
| כמות | quantity | Integer | |
| מחיר יחידה | unit_price | Number | |
| סכום כולל | total_amount | Number | |
| תאריך אספקה | delivery_date | Datetime (with time zone) | |
| הערה | remark | Long text | |
| שדות מערכת | |||
| נוצר ב- | createdAt | Created at | |
| נוצר על ידי | createdBy | Created by | |
| עודכן לאחרונה ב- | updatedAt | Last updated at | |
| עודכן לאחרונה על ידי | updatedBy | Last updated by |
הזינו נתוני דוגמה:


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

צרו בלוק תצוגה, אשרו את הנתונים, והפעילו את פעולת 'הדפסת תבנית':


הוסיפו תצורת תבנית, למשל 'חוזה אספקה ורכש':


לאחר מכן, נעבור ללשונית 'רשימת שדות', שם נוכל לראות את כל השדות של האובייקט הנוכחי. לאחר שנלחץ על "העתק", נוכל להתחיל למלא את התבנית.

קובץ תבנית חוזה ב-Word
הכינו מראש את תבנית החוזה (קובץ docx.), לדוגמה: SUPPLY AND PURCHASE CONTRACT.docx
בדוגמה זו, אנו מספקים גרסה פשוטה של "חוזה אספקה ורכש", המכילה מצייני מיקום לדוגמה:
{d.contract_no}: מספר חוזה{d.buyer.party_name}、{d.seller.party_name}: שמות הקונה והמוכר{d.total_amount}: סכום החוזה הכולללאחר מכן, תוכלו להעתיק ולהדביק את השדות מהאוסף שלכם לתוך Word.
מילוי שדות בסיסיים:
לדוגמה, מספר החוזה בחלק העליון, או אובייקט הישות החותמת על החוזה. נלחץ על "העתק" ונדביק אותו ישירות למיקום הריק המתאים בחוזה.


בתבניות, לעיתים קרובות אנו צריכים לעצב שדות, במיוחד שדות תאריך. פורמט התאריך המועתק ישירות הוא בדרך כלל ארוך (כגון Wed Jan 01 2025 00:00:00 GMT), ויש לעצב אותו כדי להציג את הסגנון הרצוי לנו.
עבור שדות תאריך, תוכלו להשתמש בפונקציה formatD() כדי לציין את פורמט הפלט:
דוגמה:
לדוגמה, אם השדה המקורי שהעתקנו הוא {d.created_at}, ואנו צריכים לעצב את התאריך לפורמט 2025-01-01, אז שנו שדה זה ל:
סגנונות עיצוב תאריכים נפוצים:
YYYY - שנה (ארבע ספרות)MM - חודש (שתי ספרות)DD - יום (שתי ספרות)HH - שעה (פורמט 24 שעות)mm - דקותss - שניותדוגמה 2:
נניח שיש שדה סכום, כגון {d.total_amount} בחוזה. אנו יכולים להשתמש בפונקציה formatN() כדי לעצב מספרים, תוך ציון מספר המקומות העשרוניים ומפריד אלפים.
תחביר:
2 פירושו שתי ספרות אחרי הנקודה העשרונית.true או false.דוגמה 1: עיצוב סכום עם מפריד אלפים ושתי ספרות אחרי הנקודה העשרונית
פעולה זו תעצב את d.amount לשתי ספרות אחרי הנקודה העשרונית ותוסיף מפריד אלפים.
דוגמה 2: עיצוב סכום למספר שלם ללא מקומות עשרוניים
פעולה זו תעצב את d.amount למספר שלם ותוסיף מפריד אלפים.
דוגמה 3: עיצוב סכום עם שתי ספרות אחרי הנקודה העשרונית אך ללא מפריד אלפים
כאן מפריד האלפים מושבת, ונשמרות רק שתי ספרות אחרי הנקודה העשרונית.
צרכי עיצוב סכומים נוספים:
עבור שדות מחרוזת, תוכלו להשתמש ב-:upperCase כדי לציין את פורמט הטקסט, כגון המרת רישיות.
תחביר:
שיטות המרה נפוצות:
upperCase - המר לכל האותיות הגדולותlowerCase - המר לכל האותיות הקטנותupperCase:ucFirst - הפוך אות ראשונה לגדולהדוגמה:
כאשר אנו צריכים להדפיס טבלה המכילה מספר פריטי משנה (כגון פרטי מוצר), אנו בדרך כלל צריכים להשתמש בהדפסה בלולאה. בדרך זו, המערכת תיצור שורת תוכן עבור כל פריט ברשימה עד שכל הפריטים יעברו.
נניח שיש לנו רשימת מוצרים (לדוגמה, contract_items), המכילה מספר אובייקטי מוצר. לכל אובייקט מוצר יש מספר מאפיינים, כגון שם מוצר, מפרט, כמות, מחיר יחידה, סכום כולל והערות.
שלב 1: מילוי שדות בשורה הראשונה של הטבלה
ראשית, בשורה הראשונה של הטבלה (לא בכותרת), אנו נעתיק ונמלא ישירות את משתני התבנית. משתנים אלה יוחלפו בנתונים המתאימים ויוצגו בפלט.
לדוגמה, השורה הראשונה של הטבלה היא כדלקמן:
| Product Name | Specification / Model | Quantity | Unit Price | Total Amount | Remark |
|---|---|---|---|---|---|
| {d.contract_items[i].product_name} | {d.contract_items[i].spec} | {d.contract_items[i].quantity} | {d.contract_items[i].unit_price} | {d.contract_items[i].total_amount} | {d.contract_items[i].remark} |
כאן, d.contract_items[i] מייצג את הפריט ה-i ברשימת המוצרים, ו-i הוא אינדקס המייצג את סדר המוצר הנוכחי.
שלב 2: שינוי האינדקס בשורה השנייה
לאחר מכן, בשורה השנייה של הטבלה, נשנה את אינדקס השדה ל-i+1 ונמלא רק את המאפיין הראשון. זאת מכיוון שבעת הדפסה בלולאה, אנו צריכים לאחזר את פריט הנתונים הבא מהרשימה ולהציג אותו בשורה הבאה.
לדוגמה, השורה השנייה ממולאת כדלקמן:
| Product Name | Specification / Model | Quantity | Unit Price | Total Amount | Remark |
|---|---|---|---|---|---|
| {d.contract_items[i+1].product_name} |
בדוגמה זו, שינינו את [i] ל-[i+1], כך שנוכל לקבל את נתוני המוצר הבאים ברשימה.
שלב 3: הדפסה אוטומטית בלולאה במהלך רינדור התבנית
כאשר המערכת מעבדת תבנית זו, היא תפעל לפי ההיגיון הבא:
d.contract_items, ותמלא בלולאה כל שורה בפורמט הטבלה עד שכל פרטי המוצר יודפסו.ה-i בכל שורה יגדל, מה שיבטיח שכל שורה תציג מידע שונה על המוצר.


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