2.3 · الطبعات والتقارير (محرر الطبعات)

المستوى 2 · المتوسط: البيانات والاستعلامات والتقارير

2.3الطبعات والتقارير (محرر الطبعات)

الهدف: إنشاء طبعات (قوائم، فواتير، ملصقات) بمحرر الطبعات وطباعتها أو تصديرها إلى PDF، مع الفواصل والمجاميع.
الوقت المقدّر: 11 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

الأساسي في 30 ثانية

  • الطبعات هي المستندات المطبوعة أو المصدَّرة التي ينتجها التطبيق (فواتير، سندات تسليم، قوائم، إحصائيات، ملصقات)؛ ويقترح WinDev محرر طبعات مرئيًا مخصصًا.
  • تنقسم الطبعة إلى كتل تُطبع في أوقات مختلفة: بداية المستند، أعلى الصفحة، الجسم (يتكرر لكل سجل)، أسفل الصفحة، نهاية المستند.
  • الفواصل هي آلية التقارير بعينها: التجميع (حسب العميل، الشهر، الفئة) يُنشئ كتلة بداية وكتلة نهاية فاصل توضع فيهما المجاميع الفرعية — بشرط أن تكون البيانات مرتّبة.

حالة مصغّرة متسلسلة — ياسين يُصدر فاتورة التجارة

ياسين، مطوّر WinDev في شركة صغيرة لتجارة العتاد الكهربائي بوهران، عليه إنتاج فواتير العملاء لتطبيق الإدارة. يُنشئ طبعة في محرر الطبعات ويربطها بـمصدر بيانات: استعلام مُحضَّر مسبقًا (طلب + سطور + عميل)، مصفّى ومرتّب. يضع الحقول في كتلة الجسم (تتكرر لكل سطر)، وترويسة الفاتورة في كتلة بداية المستند، والشعار والعنوان في أعلى الصفحة، ثم المجموع العام في نهاية المستند. وبما أن الفواتير تسرد أحيانًا عدة طلبات لكل عميل، يضع فاصلًا حسب العميل للحصول على مجاميع فرعية. وأخيرًا، يخطط لـتصدير PDF للإرسال بالبريد الإلكتروني ولـمعاملات (رقم الطلب) لإعادة استخدام الطبعة.

حالة مستقلة لهذا القسم: تعود في الدرس والمخطط والسكربت وتحدي 48 ساعة للقسم 2.3.

1. مستندات، لا كود

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

2. كتل الطبعة

المفهوم المفتاح هو الكتل: مناطق تُطبع في أوقات مختلفة. بداية المستند (مرة واحدة: صفحة الغلاف، ترويسة الفاتورة)، أعلى الصفحة (في كل صفحة: الشعار، العنوان)، الجسم (يتكرر لكل سجل — وهو القلب)، أسفل الصفحة (رقم الصفحة، ملاحظات)، نهاية المستند (المجاميع العامة، التوقيع).

3. الفواصل والتصدير

وتُضاف إليها كتل الفاصل: عند التجميع (حسب العميل، الشهر، الفئة)، تُقدّم كتلة بداية الفاصل المجموعة، وتعرض كتلة نهاية الفاصل مجاميعها الفرعية — بشرط ضروري هو أن تكون البيانات مرتّبة على هذا الحقل. ومن النقاط العملية: يمكن عرض الطبعة أو طباعتها أو تصديرها (وخصوصًا PDF، وهو مطلوب جدًا)، ويمكن تمرير معاملات إليها (الفترة، العميل). وممارسة جيدة: تحضير البيانات عبر استعلام بدلًا من مضاعفة الحسابات في الطبعة.

خطأ شائع في الفهم: «الطبعة تحسب مجاميعها وحدها؛ والجسم يُطبع مرة واحدة؛ ويمكن التجميع دون فرز». لا، خطأ ثلاثي. المجاميع الفرعية حسب المجموعة تُستخلص عبر الفواصل، لا تلقائيًا. وكتلة الجسم تتكرر لكل سجل (إنها قلب الطبعة)، وكتلة بداية المستند وحدها تُطبع مرة واحدة. والفاصل يتطلب أن تكون البيانات مرتّبة على حقل التجميع، وإلا عادت مجموعة لاحقًا وأنتجت مجاميع فرعية خاطئة. لذلك يحضّر ياسين بياناته عبر استعلام مرتّب.
كتل الطبعة كل كتلة تُطبع في لحظة محددة؛ وتضيف الفواصل المجاميع الفرعية حسب المجموعة. بداية المستندمرة واحدة (ترويسة الفاتورة)+أعلى الصفحةكل صفحة (الشعار، العنوان)+الجسميتكرر لكل سجل+نهاية المستندالمجاميع العامة الفاصل = التجميع حسب العميل/الشهر + مجاميع فرعية (بيانات مرتّبة إلزامية).
كل كتلة تُطبع في لحظة محددة؛ وتضيف الفواصل المجاميع الفرعية حسب المجموعة.
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) ياسين، مطوّر WinDev في شركة صغيرة لتجارة العتاد الكهربائي بوهران، يتعلم أن الطبعات هي المستندات المطبوعة أو المصدَّرة للتطبيق (فواتير، قوائم، إحصائيات، ملصقات) وأن محرر الطبعات في WinDev نقطة قوة حقيقية. 2) ويحفظ أن الطبعة تنقسم إلى كتل: بداية المستند (مرة واحدة)، أعلى الصفحة (كل صفحة)، الجسم (يتكرر لكل سجل)، أسفل الصفحة، ونهاية المستند (المجاميع العامة)، وأن الفواصل تضيف المجاميع الفرعية حسب المجموعة إذا كانت البيانات مرتّبة. 3) لفواتيره، يربط الطبعة باستعلام، ويضع السطور في الجسم، والترويسة في بداية المستند، ويخطط لتصدير PDF ولمعامل رقم الطلب. الدرس: تحضير البيانات عبر استعلام بدلًا من مضاعفة الحسابات في الطبعة.

🔎 مثال ملموس — 🔎 مثال ملموس — الفاصل وتصدير PDF

الحصول على مجاميع فرعية حسب العميل ثم النشر: يجمع ياسين بين الفواصل والمعاملات والتصدير.

// Lancer l'apercu de l'etat facture pour une commande donnee
iApercu("ETAT_Facture", {pNumCommande})

// Structure des blocs
Debut de document -> en-tete (raison sociale, coordonnees)
Haut de page      -> logo + titre
Corps             -> une ligne par article
Rupture client    -> sous-total par client (donnees TRIEES)
Fin de document   -> total general

Lecture   : le corps se repete par enregistrement ; les ruptures font les sous-totaux
Reflexe   : preparer les donnees via une REQUETE triee + prevoir l'export PDF

القراءة: كتلة الجسم تكرر كل سطر، وفاصل العميل يضع المجاميع الفرعية في نهاية المجموعة.

الدرس: يجب أن تكون البيانات مرتّبة حتى تكون الفواصل صحيحة، والطبعة قابلة لإعادة الاستخدام بفضل المعامل {pNumCommande}.

مفردات القسم

طبعة
المستند المطبوع أو المصدَّر الذي ينتجه التطبيق: فاتورة، سند تسليم، قائمة، إحصائية، ملصق.

مثال بسيط: ينشئ ياسين طبعة «فاتورة عميل» للتجارة.

ما ليس كذلك: نافذة إدخال معروضة على الشاشة.

رد فعل: إنتاج مستند → طبعة.

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

مثال بسيط: يضع ياسين سطور الفاتورة في الجسم.

ما ليس كذلك: كتلة واحدة تُطبع دفعة واحدة.

رد فعل: التكرار لكل سجل → كتلة الجسم.

الفاصل (التجميع)
التجميع حسب قيمة (عميل، شهر، فئة): كتلة البداية تُقدّم المجموعة، وكتلة النهاية تعرض مجاميعها الفرعية.

مثال بسيط: يضع ياسين فاصلًا حسب العميل للمجاميع الفرعية.

ما ليس كذلك: مجرد فرز دون مجموع فرعي.

رد فعل: مجاميع فرعية حسب المجموعة → فاصل.

مصدر البيانات
ما تستند إليه الطبعة: ملف من التحليل، أو استعلام (موصى به)، أو متغيرات.

مثال بسيط: يربط ياسين الفاتورة باستعلام طلب + سطور + عميل.

ما ليس كذلك: قيم تُدخل يدويًا في الطبعة.

رد فعل: تحضير البيانات بعناية → استعلام كمصدر.

تصدير PDF
يمكن عرض الطبعة أو طباعتها أو تصديرها — وPDF هو الصيغة الأكثر طلبًا (بريد إلكتروني، أرشفة، نشر).

مثال بسيط: يرسل ياسين الفاتورة PDF بالبريد إلى العميل.

ما ليس كذلك: الطباعة على الورق فقط، دون ملف قابل للنشر.

رد فعل: نشر أو أرشفة مستند → تصدير PDF.

في التطبيق — عمليًا — إنشاء طبعة بمجاميع

  1. حضّر أولًا استعلامًا يوفّر بالضبط البيانات المطلوبة (مصفّاة، مرتّبة) بدلًا من حساب كل شيء في الطبعة، كما يفعل ياسين.
  2. أنشئ الطبعة على هذا المصدر وضع الحقول في كتلة الجسم (التي تتكرر لكل سجل).
  3. أضف كتلتي أعلى الصفحة (الشعار، العنوان) وأسفل الصفحة (رقم الصفحة)، ثم نهاية المستند للمجموع العام.
  4. عرّف فاصلًا (حسب العميل، حسب الشهر) للحصول على مجاميع فرعية حسب المجموعة، وخطط لتصدير PDF وكذلك لمعاملات (الفترة، العميل).
تنتج مستندات مهنية (فواتير، قوائم، إحصائيات) بتجميعات ومجاميع فرعية ومجموع عام، قابلة للطباعة أو التصدير إلى PDF.

سكربت خطوة بخطوة — إصدار الفاتورة كما يفعل ياسين (5 دقائق)

1) حضّر استعلامًا طلب + سطور + عميل، مصفّى ومرتّب حسب العميل. 2) أنشئ طبعة واربطها بهذا الاستعلام. 3) ضع السطور في كتلة الجسم، والترويسة في بداية المستند، والمجموع العام في نهاية المستند. 4) ضع فاصلًا حسب العميل للمجاميع الفرعية. 5) أضف معاملًا {pNumCommande} واختبر المعاينة (iApercu)، ثم صدّر إلى PDF.

دون فرز على حقل التجميع، قد تظهر مجموعة من جديد وتفسد المجاميع الفرعية: رتّب المصدر.

قالب للنسخ واللصق — طبعتي للفاتورة

Source del'etat : REQUETE (commande + lignes + client) filtree et TRIEE
Debut de document : en-tete (raison sociale, coordonnees)
Haut de page      : logo + titre
Corps             : une ligne par article  (repete par enregistrement)
Bas de page       : numero de page
FIN de document   : TOTAL general
Rupture (client)  : sous-total par client -> donnees TRIEES imperativement
Parametre         : {pNumCommande}   Export : PDF

فاتورة عميل

ينتج ياسين الفاتورة بترويسة وسطور ومجموع عام، قابلة للتصدير إلى PDF.

قائمة إعادة التزويد

يصدر ياسين قائمة المنتجات دون حد المخزون، مرتّبة حسب المورّد.

إحصائيات شهرية

يجمع ياسين المبيعات حسب الشهر بفاصل ومجاميع فرعية.

ملصقات المنتجات

يولّد ياسين صفائح ملصقات لمقالات التجارة.

✓ ممارسات جيدة

  • حضّر البيانات عبر استعلام (مصفّى، مرتّب) بدلًا من حساب كل شيء في الطبعة.
  • ضع السطور في كتلة الجسم والمجموع في نهاية المستند.
  • خطط لـتصدير PDF ولـمعاملات لإعادة الاستخدام.

✗ أخطاء شائعة

  • نسيان الفرز قبل الفاصل → مجاميع فرعية خاطئة.
  • وضع السطور في مكان غير كتلة الجسم.
  • مضاعفة الحسابات في الطبعة بدلًا من تحضير استعلام.

النقاط الأساسية

  • الطبعات تنتج مستندات التطبيق (فواتير، قوائم، إحصائيات، ملصقات).
  • تنقسم الطبعة إلى كتل: بداية المستند، أعلى الصفحة، الجسم (لكل سجل)، أسفل الصفحة، نهاية المستند.
  • الفواصل هي آلية التقارير: مجاميع فرعية حسب المجموعة، بشرط فرز البيانات.
  • ممارسة جيدة: تحضير البيانات عبر استعلام، والتخطيط للمعاملات وتصدير PDF.

تحدي 48 ساعة — طبّقه غدًا

كما يفعل ياسين، أنشئ طبعة مرتبطة بـاستعلام مرتّب، وضع السطور في كتلة الجسم والمجموع في نهاية المستند. أضف فاصلًا حسب العميل (أو حسب الشهر) للحصول على مجاميع فرعية، ثم صدّر الطبعة إلى PDF. اشرح في جملة واحدة لماذا يجب أن تكون البيانات مرتّبة على حقل التجميع.

قائمة الخروج من القسم
  • أنشئ طبعة مرتبطة باستعلام وأضع الحقول الصحيحة في الكتلة الصحيحة.
  • أعرف كيف أحصل على مجاميع فرعية حسب المجموعة بفاصل.
  • أعرف كيف أصدّر طبعة إلى PDF مع معاملات.
تقييم ذاتي 1-5: هل أفهم دور كل كتلة في الطبعة؟تقييم ذاتي 1-5: هل أعرف كيف أضع فاصلًا سليمًا (بيانات مرتّبة) وأصدّر إلى PDF؟

أسئلة شائعة

كيف أحصل على مجاميع فرعية حسب المجموعة في طبعة؟

باستخدام الفواصل: نعرّف تجميعًا على حقل (العميل، الشهر، الفئة)، وهذا يُنشئ كتلة بداية وكتلة نهاية فاصل — وفي كتلة النهاية توضع المجاميع الفرعية. وشرط ضروري: أن تكون البيانات مرتّبة على هذا الحقل، وإلا عادت مجموعة لاحقًا وتصبح المجاميع الفرعية خاطئة.

هل أحسب المجاميع في الطبعة أم في المصدر؟

حضّر البيانات عبر استعلام (مصفّى، مرتّب، وربما بدوال تجميعية): فتكتفي الطبعة عندئذ بالعرض ووضع المجاميع الفرعية عند الفواصل. أما مضاعفة الحسابات في الطبعة فتجعلها أعقد وأقل قابلية لإعادة الاستخدام؛ والممارسة الجيدة هي تحضير البيانات مسبقًا.

تحقّق من فهمك

كيف نحصل على مجاميع فرعية حسب المجموعة في طبعة؟

موارد إضافية (اختياري، للتعمّق أكثر)

اختبار المستوى 2أسئلة جديدة وأصعب للتحقق من مكتسباتك