2.1 · الفرز والتجميع (المجموعات)

المستوى 2 · متوسط: الفرز والتجميع والتحديد

2.1الفرز والتجميع (المجموعات)

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

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

  • الفرز (Sort) = ترتيب، التجميع (Group) = هيكلة: الفرز يرتب الأسطر، والتجميع ينشئ كتلاً مع ترويسة وتذييل — التجميع يتضمن فرزاً، والعكس غير صحيح.
  • Group Expert = حقل + ترتيب: نختار حقل التجميع، فيدرج Crystal قسمي الترويسة والتذييل — الترويسة تسمّي، والتذييل سيجمع.
  • التداخل بترتيب: المنطقة > العميل > الطلبات، من الأشمل إلى الأدق — يكفي مستويان أو ثلاثة.

حالة مستمرة — فارس وتقرير المبيعات غير المقروء

فارس، مراقب تسيير في الجزائر، يستلم كل شهر قائمة خام من 800 طلبية بترتيب عشوائي من القاعدة: يستحيل تقديمها للإدارة. يبدأ بالفرز (مساعد الفرز، حسب التاريخ)، ثم يدرج مجموعة حسب العميل عبر Group Expert: كل عميل يحصل على كتلته مع اسمه في الترويسة. ثم يضيف مستوى ثانياً — مجموعة المنطقة فوق مجموعة العميل — ويرتب الطلبات حسب التاريخ داخل كل عميل. القائمة المسطحة تصبح تقريراً هرمياً: المنطقة > العميل > الطلبات. تقرير «مبيعات فارس» هذا يعود في 2.2 (مجموع فرعي حسب العميل والمنطقة)، و2.3 (ترشيح على السنة الجارية)، و2.4 (معامل السنة والمنطقة)، و2.5 (نسخة ملخصة للإدارة).

الخيط المستمر للمستوى 2: تقرير مبيعات فارس يعود في الدرس والمخطط والنص الجاهز وتحدي 48 ساعة — ويستمر في 2.2 و2.3 و2.4 و2.5.

1. الفرز ثم التجميع

الفرز يرتب السجلات حسب حقل أو عدة حقول (تاريخ تصاعدي، مبلغ تنازلي، اسم أبجدي)، عبر مساعد فرز السجلات (Record Sort): نختار الحقل (الحقول) والاتجاه. التقرير المفروز يصبح فوراً أوضح من قائمة بالترتيب العشوائي للقاعدة. التجميع يذهب أبعد: إنه يُنَظِّم السجلات في مجموعات حسب قيمة حقل (حسب العميل، حسب المنطقة، حسب الشهر). ينشئ Crystal Reports عندها، لكل مجموعة، قسم ترويسة المجموعة (Group Header) وقسم تذييل المجموعة (Group Footer) حول أسطر تفاصيل المجموعة. يجمع فارس أولاً حسب العميل: كل طلبات العميل نفسه تجتمع معاً، مسماة في الترويسة.

2. كيف نجمع (Group Expert)

نستخدم مساعد التجميع (Insert Group / Group Expert): نختار حقل التجميع (مثلاً العميل) وترتيب المجموعات (تصاعدي، تنازلي). يدرج Crystal Reports قسمي المجموعة ويفرز تلقائياً السجلات حسب هذا الحقل — التجميع هو فرز + هيكلة. يمكن إنشاء عدة مستويات من المجموعات المتداخلة: التجميع حسب المنطقة، ثم داخل كل منطقة حسب العميل — هرمية (المنطقة > العميل > الطلبات). ترتيب المجموعات يحدد الهرمية: المجموعة الخارجية أولاً (المنطقة قبل العميل). يتحقق فارس من الترتيب في Group Expert قبل التأكيد.

3. ما الذي يفتحه التجميع

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

خطأ شائع في الفهم: « الفرز يكفي لهيكلة تقرير ». خطأ. الفرز يرتب الأسطر لكنه لا ينشئ كتلاً ولا عناوين أقسام ولا مجاميع فرعية: دون مجموعة، لا ترويسة مجموعة ولا تذييل للتجميع. قاعدة فارس: قائمة بسيطة للقراءة ← فرز وحده؛ تقرير منظم مع عناوين ومجاميع فرعية ← تجميع (وهو يفرز أصلاً على حقله)، ثم فرز تكميلي داخل كل مجموعة.
من القائمة المسطحة إلى التقرير المنظم الفرز، التجميع، التداخل: الهيكلة قبل المجاميع الفرز (Record Sort) ترتيبالأسطر (تاريخ، مبلغ، اسم)التجميع (Group Expert) كتل +ترويسة / تذييل المجموعةالتداخل (هرمية) المنطقة >العميل، الخارجي أولاً
الفرز، التجميع، التداخل: الهيكلة قبل المجاميع
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) يفرز فارس: طلباته الـ 800 تنتقل من الترتيب العشوائي للقاعدة إلى ترتيب مقروء (حسب التاريخ) عبر مساعد الفرز. 2) يُجَمِّع: مجموعة حسب العميل عبر Group Expert — ينشئ Crystal الترويسة (اسم العميل) والتذييل (الذي سيستقبل المجموع الفرعي في 2.2) ويفرز حسب هذا الحقل. 3) يُدَاخِل: مجموعة المنطقة فوق مجموعة العميل (المنطقة > العميل > الطلبات)، مع فرز الطلبات حسب التاريخ داخل كل عميل. الدرس: الفرز يرتب، والتجميع يهيكل في كتل مسماة جاهزة للمجاميع الفرعية.

🔎 مثال ملموس — 🔎 مثال عملي — التجميع حسب العميل

تقرير مبيعات فارس، من القائمة المسطحة إلى الكتل المنطقية:

Group Expert ← التجميع حسب العميل.
ترويسة المجموعة: « العميل: حداد ».
التفاصيل: طلباته (مفروزة حسب التاريخ).
تذييل المجموعة: مجموع العميل (انظر 2.2).

القراءة: كل عميل يشكل كتلة مسماة، وطلباته مرتبة، والتذييل ينتظر المجموع الفرعي.

الدرس: للهرمية، ضع المجموعة الخارجية (المنطقة) قبل المجموعة الداخلية (العميل).

مفردات القسم

فرز السجلات
ترتيب الأسطر حسب حقل أو عدة حقول (تاريخ تصاعدي، مبلغ تنازلي) عبر مساعد الفرز (Record Sort).

مثال بسيط: يفرز فارس طلباته الـ 800 حسب التاريخ التصاعدي.

ما ليس كذلك: تجميع في كتل مع ترويسات وتذييلات.

رد فعل: قائمة للقراءة = افرز أولاً.

التجميع (مجموعة)
تنظيم السجلات في كتل حسب قيمة حقل (حسب العميل، المنطقة، الشهر)، مع قسمي الترويسة وتذييل المجموعة.

مثال بسيط: يجمع فارس طلباته حسب العميل، ثم حسب المنطقة.

ما ليس كذلك: مجرد ترتيب أسطر دون هيكلة.

رد فعل: كتل + مجاميع فرعية مطلوبة = جمّع.

ترويسة / تذييل المجموعة
قسمان ينشئهما التجميع: الترويسة تعرض اسم المجموعة، والتذييل يستقبل مجاميعها الفرعية (2.2).

مثال بسيط: « العميل: حداد » في الترويسة، ومجموع العميل في التذييل.

ما ليس كذلك: ترويسة وتذييل صفحة التقرير.

رد فعل: سمِّ في الأعلى، واجمع في الأسفل.

مجموعات متداخلة
عدة مستويات متداخلة (المنطقة > العميل > الطلبات)؛ الترتيب يحدد الهرمية، والخارجي أولاً.

مثال بسيط: يضع فارس المنطقة فوق العميل في Group Expert.

ما ليس كذلك: عدة فرزات مستقلة دون هرمية.

رد فعل: الأشمل أولاً، والاقتصار على مستويين أو ثلاثة.

في التطبيق — عملياً — الفرز والتجميع

  1. افررز السجلات (مساعد الفرز) حسب حقل مناسب (تاريخ، مبلغ، اسم) وبالاتجاه المطلوب.
  2. أدرج مجموعة (Group Expert) على حقل (حسب العميل، حسب الشهر): تحقق أن Crystal أنشأ قسمي الترويسة/تذييل المجموعة.
  3. اعرض اسم المجموعة في ترويسة المجموعة (« العميل: … »)؛ واحجز تذييل المجموعة للمجاميع الفرعية (2.2).
  4. أنشئ مجموعات متداخلة (المنطقة > العميل) وافررز السجلات داخل كل مجموعة (حسب التاريخ/المبلغ).
تحول قائمة مسطحة إلى تقرير منظم: مفروز، ومجمع في كتل منطقية (مع ترويسات/تذييلات)، وهرمي عند الحاجة — جاهز للمجاميع الفرعية.

نص جاهز — اشرح التجميع للإدارة (30 ثانية)

« تقرير مبيعاتنا لم يعد قائمة من 800 سطر: إنه مجمع حسب المنطقة ثم حسب العميل، كل كتلة مسماة ومفروزة حسب التاريخ. في تذييل كل كتلة سنضع المجموع الفرعي — وهذه الخطوة التالية. نفس البيانات، لكنها أخيراً مقروءة: نرى كل عميل وكل منطقة دون بحث. »

يُقال مع عرض القائمة الخام ثم تقرير فارس المجمع، مع كتلة عميل مفتوحة.

قالب نسخ-لصق — خطة التجميع

[المستوى 1] المجموعة الخارجية: {Commandes.Region} (تصاعدي)
  ترويسة G1: « المنطقة: » + {Commandes.Region}
[المستوى 2] المجموعة الداخلية: {Commandes.Client} (تصاعدي)
  ترويسة G2: « العميل: » + {Commandes.Client}
  التفاصيل: {Commandes.DateCommande}، {Commandes.Montant} (مفروزة حسب التاريخ)
  تذييل G2: المجموع الفرعي للعميل (انظر 2.2)
  تذييل G1: المجموع الفرعي للمنطقة (انظر 2.2)

المبيعات حسب الشهر

يجمع فارس الطلبات حسب الشهر: كل شهر يشكل كتلة مسماة، جاهزة للمجموع الفرعي الشهري.

العملاء حسب الولاية

هرمية المنطقة > العميل: يضع فارس المنطقة في المجموعة الخارجية للتلخيص حسب المنطقة.

المنتجات حسب الفئة

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

مستويات كثيرة

أربعة مستويات متداخلة تجعل التقرير مربكاً: يعود فارس إلى مستويين ويفرز التفاصيل.

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

  • جمّع من الأشمل إلى الأدق (المنطقة قبل العميل).
  • افررز الأسطر داخل كل مجموعة (حسب التاريخ/المبلغ) لسهولة القراءة.
  • احصر التداخل في مستويين أو ثلاثة (بعده يصبح التقرير مربكاً).

✗ أخطاء شائعة

  • الخلط بين الفرز (ترتيب) والتجميع (هيكلة + مجاميع فرعية).
  • ترتيب مجموعات خاطئ يعكس الهرمية.
  • مستويات متداخلة كثيرة (تقرير مربك وطويل جداً).

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

  • الفرز = ترتيب الأسطر؛ التجميع = تنظيم في كتل (حسب العميل، الشهر…)، ينشئ ترويسة وتذييل المجموعة.
  • ترويسة المجموعة تعرض اسم المجموعة؛ والتذييل يستقبل المجاميع الفرعية (2.2).
  • مجموعات متداخلة ممكنة (هرمية) — والترتيب مهم (المجموعة الخارجية أولاً).
  • التجميع محوري: يحول قائمة مسطحة إلى تقرير قابل للاستغلال.

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

خذ تقريراً مسطحاً حقيقياً (تقرير فارس أو تقريرك): افرزه حسب حقل مناسب، وأضف مجموعة عبر Group Expert مع الاسم في الترويسة، ثم جرّب هرمية من مستويين (الخارجي أولاً).

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

أسئلة شائعة

ما الفرق بين الفرز والتجميع، ومتى نستخدم كلاً منهما؟

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

كيف أنشئ هرمية بمجموعات متداخلة؟

أدرج عدة مجموعات؛ وترتيبها يحدد الهرمية (الأول = المستوى الخارجي). لـ « المنطقة > العميل »: المجموعة 1 = المنطقة، والمجموعة 2 = العميل (متداخلة داخل كل منطقة). ينشئ Crystal Reports ترويسة المجموعة 1 (المنطقة)، وترويسة المجموعة 2 (العميل)، والتفاصيل (الطلبات)، وتذييل المجموعة 2 (مجموع العميل)، وتذييل المجموعة 1 (مجموع المنطقة)، وتذييل التقرير (المجموع العام) — هرم مجاميع. احترم هرمية منطقية (المنطقة > العميل، لا العكس)، واحصرها في مستويين أو ثلاثة، ودبّر ترقيم الصفحات (صفحة جديدة لكل مجموعة عند الحاجة)، وضع مجموعاً فرعياً في كل تذييل مجموعة.

تحقّق من فهمك

ماذا ينشئ التجميع حول أسطر التفاصيل؟

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

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