logologo
البدء
الدليل
التطوير
الإضافات
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
البدء
الدليل
التطوير
الإضافات
API
logologo
نظرة عامة
تعليمات الإعداد

بناء جملة القالب

الاستخدام الأساسي
معالجة التكرار

أدوات التنسيق

نظرة عامة
تنسيق النص
تنسيق الأرقام
تنسيق العملة
تنسيق التاريخ
تنسيق الفاصل الزمني
تنسيق المصفوفة

ميزات متقدمة

الحكم الشرطي
ميزات متقدمة
الأسئلة الشائعة
سيناريوهات التطبيق
Previous Pageالأسئلة الشائعة

#استخدام ميزة "الطباعة من القالب" لإنشاء عقود التوريد والشراء

في سيناريوهات سلاسل التوريد أو التجارة، غالبًا ما يكون من الضروري إنشاء "عقد توريد وشراء" موحد بسرعة، وتعبئة محتوياته ديناميكيًا بناءً على معلومات من مصادر البيانات مثل المشترين والبائعين وتفاصيل المنتجات. سنوضح لكم أدناه، باستخدام حالة استخدام مبسطة لـ "العقد" كمثال، كيفية تهيئة واستخدام ميزة "الطباعة من القالب" لربط معلومات البيانات بالعناصر النائبة في قوالب العقود، وبالتالي إنشاء مستند العقد النهائي تلقائيًا.


#1. نظرة عامة على الخلفية وهيكل البيانات

في مثالنا، توجد تقريبًا المجموعات الرئيسية التالية (مع حذف الحقول الأخرى غير ذات الصلة):

  • parties: تخزن معلومات الوحدات أو الأفراد للطرف الأول/الطرف الثاني، بما في ذلك الاسم والعنوان وجهة الاتصال ورقم الهاتف وما إلى ذلك.
  • contracts: تخزن سجلات العقود المحددة، بما في ذلك رقم العقد، ومفاتيح المشترين/البائعين الخارجية، ومعلومات الموقّعين، وتواريخ البدء/الانتهاء، والحساب المصرفي، وما إلى ذلك.
  • contract_line_items: تُستخدم لحفظ بنود متعددة ضمن هذا العقد (اسم المنتج، المواصفات، الكمية، سعر الوحدة، تاريخ التسليم، وما إلى ذلك).

template_print-2025-11-01-16-34-04

نظرًا لأن النظام الحالي يدعم طباعة سجل واحد فقط، سنقوم بالنقر على "طباعة" في صفحة "تفاصيل العقد"، وسيقوم النظام تلقائيًا باسترداد سجل العقود المطابق، بالإضافة إلى معلومات الأطراف المرتبطة وغيرها، وتعبئتها في مستندات Word أو PDF.


إشعار الترجمة بالذكاء الاصطناعي

تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.

#2. التحضير

#2.1 تحضير الإضافة

يرجى ملاحظة أن "الطباعة من القالب" هي إضافة تجارية تتطلب الشراء والتفعيل قبل التمكن من إجراء عمليات الطباعة.

template_print-2025-11-01-17-31-51

تأكيد تفعيل الإضافة:

في أي صفحة، قم بإنشاء كتلة تفاصيل (مثل users) وتحقق مما إذا كان هناك خيار تهيئة قالب مطابق في تهيئة الإجراء:

template_print-2025-11-01-17-32-09

template_print-2025-11-01-17-32-30

#2.2 إنشاء المجموعات

قم بإنشاء مجموعة الكيانات الرئيسية، ومجموعة العقود، ومجموعة بنود المنتجات المصممة أعلاه (اختر الحقول الأساسية فقط).

#مجموعة العقود (Contracts)

فئة الحقلاسم عرض الحقلاسم الحقلواجهة الحقل
حقول المفتاح الأساسي والمفتاح الأجنبي
IDidInteger
Buyer IDbuyer_idInteger
Seller IDseller_idInteger
حقول الربط
Contract Itemscontract_itemsOne to many
Buyer (Party A)buyerMany to one
Seller (Party B)sellerMany to one
حقول عامة
Contract Numbercontract_noSingle line text
Delivery Start Datestart_dateDatetime (with time zone)
Delivery End Dateend_dateDatetime (with time zone)
Deposit Ratio (%)deposit_ratioPercent
Payment Days After Deliverypayment_days_afterInteger
Bank Account Name (Beneficiary)bank_account_nameSingle line text
Bank Namebank_nameSingle line text
Bank Account Number (Beneficiary)bank_account_numberSingle line text
Total Amounttotal_amountNumber
Currency Codescurrency_codesSingle select
Balance Ratio (%)balance_ratioPercent
Balance Days After Deliverybalance_days_afterInteger
Delivery Placedelivery_placeLong text
Party A Signatory Nameparty_a_signatory_nameSingle line text
Party A Signatory Titleparty_a_signatory_titleSingle line text
Party B Signatory Nameparty_b_signatory_nameSingle line text
Party B Signatory Titleparty_b_signatory_titleSingle line text
حقول النظام
Created AtcreatedAtCreated at
Created BycreatedByCreated by
Last Updated AtupdatedAtLast updated at
Last Updated ByupdatedByLast updated by

#مجموعة الأطراف (Parties)

فئة الحقلاسم عرض الحقلاسم الحقلواجهة الحقل
حقول المفتاح الأساسي والمفتاح الأجنبي
IDidInteger
حقول عامة
Party Nameparty_nameSingle line text
AddressaddressSingle line text
Contact Personcontact_personSingle line text
Contact Phonecontact_phonePhone
PositionpositionSingle line text
EmailemailEmail
WebsitewebsiteURL
حقول النظام
Created AtcreatedAtCreated at
Created BycreatedByCreated by
Last Updated AtupdatedAtLast updated at
Last Updated ByupdatedByLast updated by

#مجموعة بنود العقد (Contract Line Items)

فئة الحقلاسم عرض الحقلاسم الحقلواجهة الحقل
حقول المفتاح الأساسي والمفتاح الأجنبي
IDidInteger
Contract IDcontract_idInteger
حقول الربط
ContractcontractMany to one
حقول عامة
Product Nameproduct_nameSingle line text
Specification / ModelspecSingle line text
QuantityquantityInteger
Unit Priceunit_priceNumber
Total Amounttotal_amountNumber
Delivery Datedelivery_dateDatetime (with time zone)
RemarkremarkLong text
حقول النظام
Created AtcreatedAtCreated at
Created BycreatedByCreated by
Last Updated AtupdatedAtLast updated at
Last Updated ByupdatedByLast updated by

#2.3 تهيئة الواجهة

إدخال بيانات نموذجية:

template_print-2025-11-01-17-32-59

template_print-2025-11-01-17-33-11

تهيئة قواعد الربط على النحو التالي، لحساب السعر الإجمالي والدفعات اللاحقة تلقائيًا:

template_print-2025-11-01-17-33-21

أنشئ كتلة عرض، وبعد تأكيد البيانات، قم بتمكين إجراء "الطباعة من القالب":

template_print-2025-11-01-17-33-33

#2.4 تهيئة إضافة الطباعة من القالب

template_print-2025-11-01-17-33-45

أضف تهيئة قالب جديدة، مثل "عقد التوريد والشراء":

template_print-2025-11-01-17-33-57

template_print-2025-11-01-17-34-08

بعد ذلك، ننتقل إلى علامة تبويب قائمة الحقول، حيث يمكننا رؤية جميع حقول الكائن الحالي. بعد النقر على "نسخ"، يمكننا البدء في تعبئة القالب.

template_print-2025-11-01-17-35-19

#2.5 تحضير ملف العقد

ملف قالب عقد Word

قم بإعداد قالب العقد (.docx) مسبقًا، على سبيل المثال: SUPPLY AND PURCHASE CONTRACT.docx

في هذا المثال، نقدم نسخة مبسطة من "عقد التوريد والشراء"، والتي تتضمن عناصر نائبة نموذجية:

  • {d.contract_no}: رقم العقد
  • {d.buyer.party_name}، {d.seller.party_name}: أسماء المشتري والبائع
  • {d.total_amount}: إجمالي مبلغ العقد
  • وعناصر نائبة أخرى مثل "جهة الاتصال" و"العنوان" و"الهاتف" وما إلى ذلك.

بعد ذلك، يمكنك نسخ الحقول من مجموعتك ولصقها في مستند Word.


#3. دليل متغيرات القالب

#3.1 تعبئة المتغيرات الأساسية وخصائص الكائن المرتبط

تعبئة الحقول الأساسية:

على سبيل المثال، رقم العقد في الأعلى، أو كائن الكيان الموقّع على العقد. ننقر على "نسخ"، ثم نلصقه مباشرة في المساحة الفارغة المقابلة في العقد.

template_print-2025-11-01-17-31-11

template_print-2025-11-01-17-30-51

#3.2 تنسيق البيانات

#تنسيق التاريخ

في القوالب، غالبًا ما نحتاج إلى تنسيق الحقول، خاصة حقول التاريخ. عادة ما يكون تنسيق التاريخ المنسوخ مباشرة طويلاً (مثل Wed Jan 01 2025 00:00:00 GMT)، ويحتاج إلى تنسيق لعرض النمط الذي نريده.

بالنسبة لحقول التاريخ، يمكنك استخدام دالة formatD() لتحديد تنسيق الإخراج:

{field_name:formatD(format_style)}

مثال:

على سبيل المثال، إذا كان الحقل الأصلي الذي نسخناه هو {d.created_at}، ونحتاج إلى تنسيق التاريخ ليصبح 2025-01-01، فسنقوم بتعديل هذا الحقل ليصبح:

{d.created_at:formatD(YYYY-MM-DD)}  // الإخراج: 2025-01-01

أنماط تنسيق التاريخ الشائعة:

  • YYYY - السنة (أربعة أرقام)
  • MM - الشهر (رقمان)
  • DD - اليوم (رقمان)
  • HH - الساعة (بتنسيق 24 ساعة)
  • mm - الدقائق
  • ss - الثواني

مثال 2:

{d.created_at:formatD(YYYY-MM-DD HH:mm:ss)}  // الإخراج: 2025-01-01 14:30:00

#تنسيق الأرقام

لنفترض وجود حقل للمبلغ، مثل {d.total_amount} في العقد. يمكننا استخدام دالة formatN() لتنسيق الأرقام، مع تحديد عدد المنازل العشرية وفاصل الآلاف.

الصيغة:

{field_name:formatN(decimal_places, thousands_separator)}
  • المنازل العشرية: يمكنك تحديد عدد المنازل العشرية التي تريد الاحتفاظ بها. على سبيل المثال، 2 تعني الاحتفاظ بمنزلتين عشريتين.
  • فاصل الآلاف: يحدد ما إذا كنت تريد استخدام فاصل الآلاف، وعادة ما يكون true أو false.

مثال 1: تنسيق المبلغ بفاصل آلاف ومنزلتين عشريتين

{d.amount:formatN(2, true)}  // الإخراج: 1,234.56

سيؤدي هذا إلى تنسيق d.amount بمنزلتين عشريتين وإضافة فاصل الآلاف.

مثال 2: تنسيق المبلغ كعدد صحيح بدون منازل عشرية

{d.amount:formatN(0, true)}  // الإخراج: 1,235

سيؤدي هذا إلى تنسيق d.amount كعدد صحيح وإضافة فاصل الآلاف.

مثال 3: تنسيق المبلغ بمنزلتين عشريتين ولكن بدون فاصل آلاف

{d.amount:formatN(2, false)}  // الإخراج: 1234.56

هنا يتم تعطيل فاصل الآلاف، ويتم الاحتفاظ بمنزلتين عشريتين فقط.

احتياجات تنسيق المبلغ الأخرى:

  • رمز العملة: لا توفر Carbone نفسها وظائف تنسيق رمز العملة مباشرة، ولكن يمكنك تحقيق ذلك عن طريق إضافة رموز العملات مباشرة في البيانات أو القوالب. على سبيل المثال:
    {d.amount:formatN(2, true)} ريال  // الإخراج: 1,234.56 ريال

#تنسيق السلاسل النصية

بالنسبة لحقول السلاسل النصية، يمكنك استخدام :upperCase لتحديد تنسيق النص، مثل تحويل حالة الأحرف.

الصيغة:

{field_name:upperCase:other_commands}

طرق التحويل الشائعة:

  • upperCase - التحويل إلى أحرف كبيرة بالكامل
  • lowerCase - التحويل إلى أحرف صغيرة بالكامل
  • upperCase:ucFirst - تحويل الحرف الأول إلى حرف كبير

مثال:

{d.party_a_signatory_name:upperCase}  // الإخراج: JOHN DOE

#3.3 الطباعة التكرارية

#كيفية طباعة قوائم الكائنات الفرعية (مثل تفاصيل المنتج)

عندما نحتاج إلى طباعة جدول يحتوي على بنود فرعية متعددة (مثل تفاصيل المنتج)، فإننا عادة ما نستخدم طريقة الطباعة التكرارية. بهذه الطريقة، سيقوم النظام بإنشاء صف من المحتوى لكل بند في القائمة حتى يتم اجتياز جميع البنود.

لنفترض أن لدينا قائمة منتجات (على سبيل المثال، contract_items)، والتي تحتوي على كائنات منتجات متعددة. كل كائن منتج له خصائص متعددة، مثل اسم المنتج، المواصفات، الكمية، سعر الوحدة، المبلغ الإجمالي، والملاحظات.

الخطوة 1: تعبئة الحقول في الصف الأول من الجدول

أولاً، في الصف الأول من الجدول (وليس الرأس)، نقوم بنسخ متغيرات القالب وتعبئتها مباشرة. سيتم استبدال هذه المتغيرات بالبيانات المقابلة، وعرضها في الإخراج.

على سبيل المثال، الصف الأول من الجدول هو كما يلي:

Product NameSpecification / ModelQuantityUnit PriceTotal AmountRemark
{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 NameSpecification / ModelQuantityUnit PriceTotal AmountRemark
{d.contract_items[i+1].product_name}

في هذا المثال، قمنا بتغيير [i] إلى [i+1]، وبالتالي يمكننا الحصول على بيانات المنتج التالي في القائمة.

الخطوة 3: الطباعة التكرارية التلقائية أثناء عرض القالب

عندما يقوم النظام بمعالجة هذا القالب، سيعمل وفقًا للمنطق التالي:

  1. سيتم تعبئة الصف الأول وفقًا للحقول التي قمت بتعيينها في القالب.
  2. ثم، سيقوم النظام تلقائيًا بحذف الصف الثاني، والبدء في استخراج البيانات من d.contract_items، وتعبئة كل صف بشكل تكراري بتنسيق الجدول حتى يتم طباعة جميع تفاصيل المنتج.

سيزداد i في كل صف، مما يضمن أن كل صف يعرض معلومات منتج مختلفة.


#4. رفع وتهيئة قالب العقد

#4.1 رفع القالب

  1. انقر على زر "إضافة قالب"، وأدخل اسم القالب، مثل "قالب عقد التوريد والشراء".
  2. ارفع ملف عقد Word (.docx) المُجهز مسبقًا، والذي يحتوي بالفعل على جميع العناصر النائبة.

template_print-2025-11-01-17-36-06

  1. بعد الانتهاء، سيعرض النظام هذا القالب في قائمة القوالب الاختيارية للاستخدام المستقبلي.
  2. ننقر على "استخدام" لتفعيل هذا القالب.

template_print-2025-11-01-17-36-13

في هذه المرحلة، اخرج من النافذة المنبثقة الحالية وانقر على "تنزيل القالب" للحصول على القالب الكامل الذي تم إنشاؤه.

نصائح:

  • إذا كان القالب يستخدم تنسيق .doc أو تنسيقات أخرى، فقد يحتاج إلى التحويل إلى .docx، وذلك حسب دعم الإضافة.
  • في ملفات Word، احرص على عدم تقسيم العناصر النائبة إلى فقرات متعددة أو مربعات نص لتجنب حدوث استثناءات في العرض.

نتمنى لكم استخدامًا موفقًا! من خلال ميزة "الطباعة من القالب"، يمكنكم توفير الكثير من العمل المتكرر في إدارة العقود، وتجنب أخطاء النسخ واللصق اليدوية، وتحقيق إخراج عقود موحد ومؤتمت.