3.2التنسيق الشرطي
الأساسي في 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) : هنا يبقى الكائن ظاهرا لكن يتغير مظهره ؛ وهناك يظهر المقطع أو يختفي. والاثنان يتكاملان : تلوين التنبيه وإظهار مقطع التنبيه فقط عند الحاجة.
شجرة الميلاد
تقرير يومض لا يُنبه إلى شيء.
🔎 مثال ملموس — الأرصدة بالأحمر والمخزونات الحرجة بالأصفر
فارس يطبق أول صيغتي مظهر ببنية 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 للكائن (كل سطر) : فيختلف المظهر سطرا بسطر.
مثال بسيط: كل رصيد زبون ملون حسب قيمته.
ما ليس كذلك: لون واحد ثابت لكامل العمود.
رد فعل: تحقق في المعاينة أنه يختلف فعلا لكل سطر.
- ترميز لوني متسق
- نفس دلالة الألوان في كامل التقرير (الأحمر = مشكلة/سالب)، باقتصاد.
مثال بسيط: الأحمر محفوظ للأرصدة السالبة والتأخرات عند فارس.
ما ليس كذلك: أحمر للنتائج الجيدة في جدول وللسيئة في آخر.
رد فعل: ثبّت ترميزين أو ثلاثة ولا تغيرهما.
في التطبيق — تطبيق تنسيق شرطي
- اختر حقلا (مثلا المبلغ)، وافتح تنسيقه وحدد زر الصيغة (x-2) بجانب خاصية (لون الخط).
- اكتب صيغة شرطية : If {Montant} < 0 Then crRed Else crBlack → السالب بالأحمر.
- جرّب خصائص أخرى : لون الخلفية حسب عتبة، والظهور (الإخفاء بشرط)، والعريض لقيمة لافتة.
- تحقق في المعاينة أن المظهر يختلف فعلا سطرا بسطر ؛ وحافظ على ترميز لوني ثابت (الأحمر = مشكلة).
نص جاهز للقول — اعرض الكشف الذي يُنبه (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 ساعة — طبّق غدا
أضف صيغتي مظهر إلى كشفك الحقيقي (لون خط واحد + خلفية واحدة) واعرض الترميز اللوني على زميل للمصادقة.
- كشفي يُنبه إلى المهم دون قراءة كاملة.
- صيغي ترجع النوع الذي تنتظره كل خاصية.
- ترميزي اللوني محدود وثابت في كل مكان.
أسئلة شائعة
كيف تُبرز القيم (السالب والعتبات والحالات) ؟
اختر الكائن، وافتح تنسيقه، وانقر زر الصيغة (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) : يُعرض المقطع أو يُخفى حسب منطقي — والاستعمال : إظهار المناسب فقط (إخفاء السطور الصفرية، وإظهار تنبيه فقط بشرط). وتذكر : أحدهما يغير مظهر ما يبقى ظاهرا، والآخر يُظهر أو يُخفي. ونجمعهما : تلوين التنبيه بالأحمر وإظهار مقطعه فقط عند وجوده.
ماذا يجب إرجاعه في صيغة لون الخط ؟