بوويربويدر :كيفية كتابة تعبير التحقق من الصحة لحقل

StackOverflow https://stackoverflow.com/questions/3252478

  •  16-09-2020
  •  | 
  •  

سؤال

لدي نافذة بيانات تحتوي على حقول متعددة.أريد أن أكتب تعبير التحقق من الصحة لحقل اسمه amount.لدي حقلين آخرين تم تسميتهما debit و credit.إذا كان مجموع المدين والائتمان أكبر من المبلغ، فأنا أرغب في عرض رسالة التحقق للمستخدم.

كيف يمكنني كتابة تعبير التحقق المطلوب في مواصفات العمود الخاصة بنافذة البيانات تلك؟

أريد أيضًا أن أكتب تعبير التحقق من الصحة لحقل مسمى test.هناك حقل اسمه criteria.عندما يتم تعيين هذا الحقل إلى 1، أريد أن يكون حقل الاختبار حقلاً مطلوبًا.كيف يمكنني كتابة تعبير التحقق من الصحة لهذا؟

هل كانت مفيدة؟

المحلول

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

متطلبات التصميم

هل سيكون هذا بمثابة نافذة بيانات حرة حيث تحتاج فقط إلى التحقق من صحة القاعدة مرة واحدة للشاشة، أم نمط جدولي حيث يمكن للمستخدمين إدخال مجموعات من البيانات بشكل جماعي ويجب تطبيق القاعدة على كل صف؟

هل تريد أن تطلب من المستخدمين إدخال القيم الصحيحة في كل مرة يتم فيها التركيز على الحقل المطلوب أم تريد السماح لهم بالتنقل بحرية على الشاشة والتحقق من الصحة في توفير الوقت؟

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

  • المنطق المعقد هناك يميل إلى أن يصبح من الصعب قراءته وصيانته
  • إذا كانت لديك حالات خطأ متعددة تقوم بالتحقق منها، فقد يؤدي ذلك إلى ظهور بعض الرسائل غير العملية إذا كنت تستخدم حقل رسالة الخطأ المضمن في مواصفات العمود

ومع ذلك، سأوافق على أن تعبيرات dw تكون سريعة جدًا بشكل عام.

استخدام حقل محسوب لقواعد التحقق من الصحة

إحدى التقنيات البديلة هي أيضًا ذات أداء سريع ويمكن استخدامها في معظم إصدارات PB.

  • لديك حقل محسوب في نافذة البيانات له اسم ذو معنى مثل cf_amount_rule وشيء من هذا القبيل في التعبير: if (debit + credit = amount, 0, 1)
  • اجعل هذا الحقل غير مرئي للمستخدم إذا أردت
  • قم بإضافة حقل محسوب آخر في التذييل للجمع cf_amount_rule ولديك الآن نقطة مرجعية مفيدة تخبرك بسرعة بوجود خطأ
  • في توفير الوقت (أو حدث pfc_validation لمستخدمي PFC) يمكنك التحقق من المجموع> 0 ونشر رسالة خطأ

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

الأشياء الجيدة الاختيارية

  • يمكنك جعل رسالة الخطأ أكثر قوة باستخدام وظيفة find() لتحديد صفوف معينة تحتوي على الخطأ
  • يمكنك توفير إشارات مرئية مفيدة للمستخدمين عن طريق تغيير لون خلفية الصف أو الحقل عبر تعبيرات الخصائص التي تشير إليها cf_amount_rule.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top