كيفية الاعتراض على القيم الخالية عند الحفظ
#1
الاخوة الكرام
السلام عليكم ورحمة الله

عندي مجموعة حقول في قاعدة البيانات وهذه الحقول اجبارية وعلى المستخدم ان يدخل فيها قيمة.

وفي الفورم رابط هذه الحقول بمجموعة مختلفه من الادوات مثل Edit و DBedit و DBLookupComboBox و DBComboBox

والمطلوب ان المستخدم لما يقو بعملية الحفظ وعند وجود اي حقل فاضي يعطية رسالة ولا يتم علمية الحفظ حتى يتم ادخال القيمة سواء بالكتابة أو بالاختيار من DBLookupComboBox .

وهل بالامكان ان تكون الرسالة باسم الحقل الفاضي.

تحياتي وتقديري
الرد
#2
السلام عليكم


بسيطة اختبر الادوات قبل عملية الحفظ مثل


If Trim(Edit1.text) =EmptyString Then Showmwssage


أو قم بجعل الحقل بقاعدة البيانات لا يقبل قيمة فارغة فيحدث خطاء تقوم باقتناصه واظهار الرسالة المناسبة
بين الانسان والكفر ترك الصلاة فمن تركها فقد كفر .
الرد
#3
[INDENT]
وعليكم السلام ورحمة الله وبركاته ،
في الحدث BeforePost تحقق من قيمة Edit أنها ليس خالية .


كود :
If Edit1.txt <> '' then

[/INDENT]
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
الرد
#4
وعليكم السلام ورحمة الله وبركاته
البيانات ليست دائما نصية، وإلا لكفى شيء كهذا:
كود :
Trim(FieldName.AsString) <> ''
لذلك قد لا تفي الحلول السابقة بالغرض (حالة عدم إمكانية التحويل مثلا)
يتم التعامل مع البيانات في الجدوال عادة على أساس أنها Variant
ثم تقوم مكتبات مخصصة باكتشاف نمط البيانات ونقله من/إلى الحقل الموافق في الجدول
لذلك يفضل فحصها على هيئتها Variant قبل أي تحويل من شأنه إثارة استثناء
قبل التحقق من أي Variant أنه فارغ ينبغي أولا التحقق منه أنه غير معدوم:
PHP كود :
function AssignedVar(AVar: Variant): Boolean;
begin
  Result 
:= (not VarIsNull(AVar)) and (not VarIsEmpty(AVar));
end; 
قد يمكن أيضا الفحص بـ VarIsClear، كذلك في Variants.pas
يمكن جعل الحقل Required خلال التصميم في أي T*Table/*Query
بالتوفيق.
اللهم احقن دماء المسلمين، لا تنسوهم بالدعاء...
الرد
#5
بارك الله فيكم جميعا تم الاستفادة من توجيهاتكم ، وقد ارفقت مثال لمن يحتاجه.
كود :
procedure TForm1.Button1Click(Sender: TObject); begin if (Edit1.text <> '') and (Edit2.text <> '') and (Edit3.text <> '') and (ComboBox1.text <> '') and (ComboBox2.text <> '') then begin Label1.Caption := 'احفظ'; end else begin Label1.Caption := 'لا تحفظ لوجود حقول فارغة'; end; end;
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم