3.2 · التنسيق الشرطي

المستوى 3 · متقدم : الصيغ والتنسيق الشرطي

3.2التنسيق الشرطي

الهدف: كتابة صيغ الخصائص (اللون، الخلفية، الظهور) التي تُبرز المهم، باقتصاد واتساق.
الوقت المقدّر: 10 دقيقة · قراءة ذاتية · إذا كان لديك 5 دقائق فقط: اقرأ «الأساسي في 30 ثانية» + المخطط.

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

  • المظهر يتفاعل مع البيانات : لكل خاصية تنسيق زر صيغة (x-2) — نكتب فيه صيغة ترجع قيمة الخاصية، وتُقيَّم سطرا بسطر.
  • الصيغة ترجع النوع الصحيح : لونا للون (crRed، crYellow)، ومنطقيا للظهور، ونمطا للعريض — مثلا If {Montant} < 0 Then crRed Else crBlack.
  • نُنبه ولا نُزخرف : السالب بالأحمر، والعتبات مظللة، والحالات ملونة — باقتصاد وترميز لوني ثابت (الأحمر = مشكلة في كل مكان).

mini-cas filé — فارس يجعل أرصدته تتكلم

فارس، مراقب التسيير في الجزائر، يرسل كل أسبوع كشف أرصدة الزبائن : جدول أسود على أبيض تضيع فيه الديون في الكتلة — فلا ترى الإدارة شيئا. ينقر زر الصيغة (x-2) للون خط حقل الرصيد ويكتب If {Clients.Solde} < 0 Then crRed Else crBlack، ثم يلون الخلفية بالأصفر عندما يتجاوز التأخر 30 يوما. وفي الاثنين التالي، تقفز الأرصدة السالبة إلى العين بالأحمر : فينطلق اجتماع التحصيل من الحالات الحقيقية بدل إعادة قراءة الجدول كله.

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

1. الآلية : صيغة لكل خاصية (الزر x-2)

الـ تنسيق الشرطي يغير مظهر كائن (لون الخط، لون الخلفية، النمط، الحدود، الحجم، الظهور) حسب شرط على البيانات. والآلية : لكل خاصية تقريبا زر صيغة صغير (أيقونة « x-2 ») يفتح محررا نكتب فيه صيغة ترجع قيمة الخاصية — فيطبقها Crystal Reports ديناميكيا، قيمة بقيمة. مثال للون خط مبلغ : « If {Commandes.Montant} < 0 Then crRed Else crBlack » — السالب بالأحمر والباقي بالأسود.

النقطة المفتاح : الصيغة تُقيَّم عند كل occurrence للكائن (كل سطر)، فيختلف المظهر سطرا بسطر حسب البيانات. ويجب أن ترجع قيمة من نوع الخاصية : لونا للون (crRed، crBlack، crYellow، crNoColor)، ومنطقيا للظهور (صحيح = إخفاء عبر Suppress)، ونمطا للعريض. وخطأ النوع هو عطل المبتدئ الكلاسيكي.

2. الإبراز الهادف : الحالات الجارية والانضباط

الحالات النافعة فعلا : المبالغ السالبة بالأحمر (لون الخط)، والعتبة المتجاوَزة مظللة (خلفية صفراء عندما ينزل المخزون تحت 10 : If {Stocks.Quantite} < 10 Then crYellow Else crNoColor)، والحالات ملونة («متأخر» بالأحمر و«سليم» بالأخضر)، والمبالغ الكبيرة بالعريض. اختر الخاصية الصحيحة : لون الخط لتلوين الرقم، ولون الخلفية لتظليل الخلية كلها (أظهر)، والنمط العريض للتأكيد دون لون.

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

خطأ شائع في الفهم: «التنسيق الشرطي زخرفة : كلما كثرت الألوان كان التقرير أكثر احترافية». خطأ : إنها لغة تنبيه لا زخرفة. فكل لون يجب أن يجيب عن «ما الذي يجب أن تراه العين أولا ؟» — وبعد ثلاثة ترميزات لونية لا يقرأ أحد شيئا. لون واحد = رسالة واحدة، ونفسها في كل مكان : هذا كل شيء.
جعل المظهر يتفاعل مع البيانات الخاصية والصيغة والنوع المرجَع الخاصية + x-2اللون والخلفية والعريض والظهور+صيغة شرطيةIf … Then لون Else لون+تُقيَّم لكل سطرالنوع الصحيح المرجَع وترميز ثابت لوّن التنبيه ؛ أما إخفاء المقطع فآلية أخرى (2-5).
الخاصية والصيغة والنوع المرجَع
نص المخطط (SEO / قارئات الشاشة / الترجمة): 1) الخاصية : فارس يستهدف لون خط حقل الرصيد عبر الزر x-2، لا كامل التقرير. 2) الصيغة : If الرصيد < 0 Then crRed Else crBlack — لون حسب الشرط، يُقيَّم سطرا بسطر. 3) الانضباط : الأحمر محفوظ للمشكلة، والأصفر للعتبة الحرجة، ولا شيء آخر ملون. الدرس : لون واحد = رسالة واحدة، تتكرر في كل مكان بنفس الشكل.

شجرة الميلاد

«فارس وضع سبعة ألوان شرطية : فسألت الإدارة هل هذا تقرير أم زينة نهاية السنة.»
ومنذها لونان لا أكثر

تقرير يومض لا يُنبه إلى شيء.

🔎 مثال ملموس — الأرصدة بالأحمر والمخزونات الحرجة بالأصفر

فارس يطبق أول صيغتي مظهر ببنية Crystal.

خط الرصيد : If {Clients.Solde} < 0 Then crRed Else crBlack
خلفية المخزون : If {Stocks.Quantite} < 10 Then crYellow Else crNoColor
→ المعاينة : يختلف المظهر سطرا بسطر.

القراءة : تقع العين أولا على الأحمر والأصفر — وهو المقصود تماما.

الدرس : أرجِع لونا للون، ومنطقيا للظهور.

مفردات القسم

التنسيق الشرطي
تغيير مظهر كائن (اللون، الخط، الخلفية، الظهور…) حسب شرط على البيانات : فيتفاعل المظهر مع القيم.

مثال بسيط: الأرصدة السالبة عند فارس معروضة بالأحمر.

ما ليس كذلك: جدول أسود على أبيض تضيع فيه الديون.

رد فعل: كلما وجب أن تقفز قيمة إلى العين، اشترطها.

زر صيغة الخاصية (x-2)
زر صغير بجانب كل خاصية تنسيق تقريبا ؛ نكتب فيه الصيغة التي ترجع قيمة الخاصية.

مثال بسيط: الزر x-2 للون خط حقل الرصيد.

ما ليس كذلك: إعادة تلوين الخلايا يدويا واحدة واحدة.

رد فعل: ابحث عن x-2 قبل أي تعديل يدوي.

صيغة المظهر الشرطية
صيغة ترجع قيمة خاصية حسب شرط، مثلا If {Montant} < 0 Then crRed Else crBlack.

مثال بسيط: الخلفية الصفراء عند فارس عندما ينزل المخزون تحت 10.

ما ليس كذلك: صيغة ترجع نصا للون.

رد فعل: أرجِع دوما النوع الذي تنتظره الخاصية.

التقييم لكل occurrence
الصيغة تُقيَّم عند كل occurrence للكائن (كل سطر) : فيختلف المظهر سطرا بسطر.

مثال بسيط: كل رصيد زبون ملون حسب قيمته.

ما ليس كذلك: لون واحد ثابت لكامل العمود.

رد فعل: تحقق في المعاينة أنه يختلف فعلا لكل سطر.

ترميز لوني متسق
نفس دلالة الألوان في كامل التقرير (الأحمر = مشكلة/سالب)، باقتصاد.

مثال بسيط: الأحمر محفوظ للأرصدة السالبة والتأخرات عند فارس.

ما ليس كذلك: أحمر للنتائج الجيدة في جدول وللسيئة في آخر.

رد فعل: ثبّت ترميزين أو ثلاثة ولا تغيرهما.

في التطبيق — تطبيق تنسيق شرطي

  1. اختر حقلا (مثلا المبلغ)، وافتح تنسيقه وحدد زر الصيغة (x-2) بجانب خاصية (لون الخط).
  2. اكتب صيغة شرطية : If {Montant} < 0 Then crRed Else crBlack → السالب بالأحمر.
  3. جرّب خصائص أخرى : لون الخلفية حسب عتبة، والظهور (الإخفاء بشرط)، والعريض لقيمة لافتة.
  4. تحقق في المعاينة أن المظهر يختلف فعلا سطرا بسطر ؛ وحافظ على ترميز لوني ثابت (الأحمر = مشكلة).
تربط المظهر بالبيانات : فينبّه التقرير بصريا إلى المعلومة المفتاح — ميزة للمقروئية والقرار.

نص جاهز للقول — اعرض الكشف الذي يُنبه (30 ثانية)

«لم يعد جدولا يُقرأ كله : الأرصدة السالبة تظهر بالأحمر، والتأخرات فوق 30 يوما بالأصفر. ونفس الترميز في كل مكان — الأحمر يعني دوما مشكلة. ننطلق مباشرة من الحالات المُشار إليها في اجتماع التحصيل.»

يُقال عند عرض الكشف ؛ اعرض المعاينة بالألوان.

نموذج جاهز للنسخ — صيغ المظهر (بنية Crystal)

// السالب بالأحمر (لون الخط)
If {Clients.Solde} < 0 Then crRed Else crBlack
// المخزون الحرج مظلل (لون الخلفية)
If {Stocks.Quantite} < 10 Then crYellow Else crNoColor
// الحالة ملونة
If {Commandes.Statut} = "En retard" Then crRed
Else If {Commandes.Statut} = "OK" Then crGreen Else crBlack

مستقل

صيغتا لون في موضعهما ويصير كشفك يُنبه تلقائيا إلى ما يهم.

شركة صغيرة في الجزائر

فارس يلون الأرصدة والتأخرات : فينطلق اجتماع التحصيل من الحالات الحمراء.

فريق مشروع

ثبّت الترميز اللوني للتقرير في الميثاق (الأحمر = مشكلة) قبل تكثير الكشوف.

مبتدئ

هذا الأسبوع : لون خط + لون خلفية شرطيان، مُختبَران في المعاينة.

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

  • اختر الخاصية الصحيحة : الخط للتلوين، والخلفية للتظليل، والعريض للتأكيد دون لون.
  • أرجِع دوما النوع المنتظر (لون، منطقي، نمط) — أول سبب للعطل.
  • اقتصر على ترميزين أو ثلاثة وحافظ على نفس الدلالة في كامل التقرير.

✗ أخطاء شائعة

  • التلوين للزخرفة : بعد ثلاثة ترميزات لا يقرأ أحد شيئا.
  • عكس الترميز من جدول لآخر (الأحمر = جيد هنا وسيئ هناك).
  • الخلط بين التنسيق الشرطي (يغير المظهر) وإخفاء المقطع (يُخفيه).

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

  • التنسيق الشرطي يربط المظهر بالبيانات عبر صيغة على خاصية (الزر x-2)، وتُقيَّم سطرا بسطر.
  • مثلا اللون : If {Montant} < 0 Then crRed Else crBlack — والصيغة ترجع نوع الخاصية (لون، منطقي، نمط).
  • الاستعمالات الملوك : السالب بالأحمر، والعتبات مظللة، والحالات ملونة، والقيم اللافتة بالعريض.
  • بهدف وباقتصاد، وبشكل متسق (الأحمر = مشكلة في كل مكان) — وإلا صار ضجيجا.

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

أضف صيغتي مظهر إلى كشفك الحقيقي (لون خط واحد + خلفية واحدة) واعرض الترميز اللوني على زميل للمصادقة.

قائمة الخروج من القسم
  • كشفي يُنبه إلى المهم دون قراءة كاملة.
  • صيغي ترجع النوع الذي تنتظره كل خاصية.
  • ترميزي اللوني محدود وثابت في كل مكان.
تقييم ذاتي 1-5 : هل يرصد قارئ جديد التنبيهات في عشر ثوان ؟هل عندي أكثر من ثلاثة ترميزات لونية في نفس التقرير ؟

أسئلة شائعة

كيف تُبرز القيم (السالب والعتبات والحالات) ؟

اختر الكائن، وافتح تنسيقه، وانقر زر الصيغة (x-2) للخاصية المطلوبة واكتب الصيغة. والحالات الجارية : السالب بالأحمر (لون الخط : If {Montant} < 0 Then crRed Else crBlack) ؛ والعتبة مظللة (الخلفية : If {Stock} < 10 Then crYellow Else crNoColor) ؛ والحالة ملونة (If {Statut} = « En retard » Then crRed Else If {Statut} = « OK » Then crGreen Else crBlack) ؛ والمبالغ الكبيرة بالعريض (النمط). والممارسات الجيدة : اختيار الخاصية الصحيحة (الخط للتلوين، والخلفية للتظليل، والعريض دون لون)، وإرجاع النوع الصحيح (لون للون — crRed وcrYellow… — ومنطقي للظهور)، والبقاء مقتصدا ومتسقا.

التنسيق الشرطي أم الإخفاء الشرطي للمقطع : ما الفرق ؟

آليتان متكاملتان بالصيغ. فـ التنسيق الشرطي يعمل على مظهر كائن (اللون، العريض، الخلفية…) : يبقى الكائن ظاهرا لكن يتغير مظهره — والاستعمال : تنبيه إلى قيمة دون إخفاء شيء (السالب بالأحمر). والإخفاء الشرطي (2-5) يعمل على ظهور مقطع (أو كائن عبر Suppress) : يُعرض المقطع أو يُخفى حسب منطقي — والاستعمال : إظهار المناسب فقط (إخفاء السطور الصفرية، وإظهار تنبيه فقط بشرط). وتذكر : أحدهما يغير مظهر ما يبقى ظاهرا، والآخر يُظهر أو يُخفي. ونجمعهما : تلوين التنبيه بالأحمر وإظهار مقطعه فقط عند وجوده.

تحقّق من فهمك

ماذا يجب إرجاعه في صيغة لون الخط ؟

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

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