تعلم معي خطوة خطوة صنع برنامج لتسيير المخزون و التسويق
#23
السلام عليكم و رحمة الله تعالى و بركاته : هذا الجزء رقم 09 أو الدرس التاسع مشروع انجاز برنامج
لتسيير المخزون و التسويق (GSM) .

بصفة فردية و مباشرة اختزالا للجهد و الوقت ، قمت باضافة العناصر اللازمة في كل من الفورم FProduit-FClient-FFournisseur-FAchat ، فأما الفورم المواد أو فورم المخزن فقد قمت ببرمجة عمل كل عنصر ، المطلوب من على نفس الشاكلة تقريبا إتمام العمل في يخص برمجة عناصر و أزرار كل من فورم الزبائن و الممونين ، كذلك على نفس شاكلة الفرم FGSM المتضمنة عملية البيع أو العملية على جدول المبيعات قم باتمام ما يلزم بخصوص فورم المشتريات .
بهذا أكون قد فضلت عدم شرح أمور سبق التطرق إليها من جهة ، و من جهة أخرى أحببت تفاعلك معي و اختبار مدى استعابك لما سلف ، لذلك قم بما هو مطلوب و عجل الإنجاز.
بالتوفيق.



الآن سنتكلم عن أمر آخر تم إضافته في الفورم FGSM:
عندما يباشر المستعمل ، القيام بعمليات بيع لمختلف المواد ، و مع كثرة المواد و ربما تشابه أسمائها قد يغيب عنه كود أو اسم مادة معينة (خصوصا إذا كان موظف جديد) الشيء الذي سيجبره على فتح قائمة DBLookupCombobox2 و التمعن و البحث في كل القائمة ، أو سيذهب إلى الفورم FProduit ليبحث في الجدول بكامله عن المادة المقصودة ، و ماذا لو كان المحل يتعامل بقدر هائل من البيانات لا سيما مئات الأنواع من المواد ؟ نفس الشيء لو كان المحل يتعامل مع زبائن كثر ، رغم أن الزبون سيقول لك مثلا نحن مؤسسة MagiInfo (كإسم تجاري) و لنفرض أن لك زبائن كثر تتشابه أسماؤها و لديك الكثير كل يبدأ بحرف M ، أكيد أنك تخسر وقتا أنت بحاجة إليه.

مما ذكر ، جاءت فكرة مضمونها العام هو اتاحة طريقة سريعة للبحث عن كود أو إسم مادة أو زبون .

الطريقة
:
نستعمل كل من العناصر: زر واحد ، عنصر واحد من ComboBox ، و 5 عناصر من RadioButton .(تجدها من القائمة في صفحة Standard )
و لأننا استعملنا سكين فإننا نفضل البحث عن نفس العناصر الشبيهة من صفحة AlphaLite سنجد
sBitBtn و sComboBox و لا نجد بديل عن RadioButton ، لكننا نجد كبديل عن هذا الأخير العنصر sCheckBox و الفرق بينهما واضح و هو أن الأول لا يتيح لك امكانية تحديد عنصرين معا ، بينما الآخر يمكنك من ذلك ، و يمكننا تجاوز ذلك بالطبع بإضافة شرط حذف التحديد عن البقية في حال تم تحديد أحدها.
أترككم مع الكود ، نضغط مرتين على العنصر sCheckBox1 و نكتب :
كود :
if sCheckBox1.Checked=true then begin sCheckBox2.Checked:=false; sCheckBox3.Checked:=false; sCheckBox4.Checked:=false; sCheckBox5.Checked:=false; sComboBox1.SetFocus; end;
نفس الشيء مع sCheckBox2 :
كود :
if sCheckBox2.Checked=true then begin sCheckBox1.Checked:=false; sCheckBox3.Checked:=false; sCheckBox4.Checked:=false; sCheckBox5.Checked:=false; sComboBox1.SetFocus; end;
و نفس الشيء مع sCheckBox3-4-5 .


- الآن مع sCombobox1 : أولا نجعل الخاصية Style لهذا العنصر تأخذ القيمة csSimple ، ثم في الحدث OnEnter للــ sCombobox1 نكتب :
كود :
If sCheckBox1.Checked=true then Begin sCombobox1.Items.Clear; Table1.first; While not Table1.EOF Do Begin sCombobox1.Items.Add(Table1.FieldByName('Code_Prod').asString); Table1.Next; End; Table1.First; While Not Table1.EOF Do If Table1.FieldValues['Code_Prod']=sCombobox1.text Then BREAK Else Table1.Next; end; If sCheckBox2.Checked=true then Begin sCombobox1.Items.Clear; Table1.first; While not Table1.EOF Do Begin sCombobox1.Items.Add(Table1.FieldByName('Des_Prod').asString); Table1.Next; End; Table1.First; While Not Table1.EOF Do If Table1.FieldValues['Des_Prod']=sCombobox1.text Then BREAK Else Table1.Next; end; If sCheckBox3.Checked=true then Begin sCombobox1.Items.Clear; Table4.first; While not Table4.EOF Do Begin sCombobox1.Items.Add(Table4.FieldByName('Code_Client').asString); Table4.Next; End; Table4.First; While Not Table4.EOF Do If Table4.FieldValues['Code_Client']=sCombobox1.text Then BREAK Else Table4.Next; end; If sCheckBox4.Checked=true then Begin sCombobox1.Items.Clear; Table4.first; While not Table4.EOF Do Begin sCombobox1.Items.Add(Table4.FieldByName('Code_Com_C').asString); Table4.Next; End; Table4.First; While Not Table4.EOF Do If Table4.FieldValues['Code_Com_C']=sCombobox1.text Then BREAK Else Table4.Next; end; If sCheckBox5.Checked=true then Begin sCombobox1.Items.Clear; Table4.first; While not Table4.EOF Do Begin sCombobox1.Items.Add(Table4.FieldByName('Nom_C').asString); Table4.Next; End; Table4.First; While Not Table4.EOF Do If Table4.FieldValues['Nom_C']=sCombobox1.text Then BREAK Else Table4.Next; end;
الآن الزر الذي أضفنـاه أنا عندي هو sBitBtn13 :
نجعل الكابشن الخاصة به تأخذ القيمة Plus D'information يعني معلومات إضافية أو معلومات أخرى . نريد من هذا الزر إعطاء معلومات إضافية يمكن للمستعمل أن يحتاجها (و أنا غرضي منه تمكينك من رؤية طريقة بحث بواسطة الأمر Lookup و للمزيد راجع هذا الرابط )
كود :
var LookupResult : Variant; begin if sCheckBox1.Checked=true then begin lookupResult := Table1.Lookup('Code_Prod',sCombobox1.Text,'Des_Prod;Qut'); if Not VarIsnull( lookupResult) then Showmessage ('- Code de Produit : '+sCombobox1.text+#13+'- Designation de Produit : '+vartostr(lookupresult[0])+ #13+'- Qut : ' + vartostr(lookupresult[1] ) ); end; if sCheckBox2.Checked=true then begin lookupResult := Table1.Lookup('Des_Prod',sCombobox1.Text,'Code_Prod;Qut'); if Not VarIsnull( lookupResult) then Showmessage ('- Code de Produit : '+vartostr(lookupresult[0])+#13+'- Designation de Produit : '+sCombobox1.text+ #13+'- Qut : ' + vartostr(lookupresult[1] ) ); end; if sCheckBox3.Checked=true then begin lookupResult := Table4.Lookup('Code_Client',sCombobox1.Text,'Code_Com_C;Nom_C'); if Not VarIsnull( lookupResult) then Showmessage ('- Code de Client : '+sCombobox1.text+#13+'- Code Commercial de Client : '+vartostr(lookupresult[0])+ #13+'- Nom et Prénom de Client : ' + vartostr(lookupresult[1] ) ); end; if sCheckBox4.Checked=true then begin lookupResult := Table4.Lookup('Code_Com_C',sCombobox1.Text,'Code_Client;Nom_C'); if Not VarIsnull( lookupResult) then Showmessage ('- Code de Client : '+vartostr(lookupresult[0])+#13+'- Code Commercial de Client : '+sCombobox1.text+ #13+'- Nom et Prénom de Client : ' + vartostr(lookupresult[1] ) ); end; if sCheckBox5.Checked=true then begin lookupResult := Table4.Lookup('Nom_C',sCombobox1.Text,'Code_Client;Code_Com_C'); if Not VarIsnull( lookupResult) then Showmessage ('- Code de Client : '+vartostr(lookupresult[0])+#13+'- Code Commercial de Client : '+vartostr(lookupresult[1] )+ #13+'- Nom et Prénom de Client : ' +sCombobox1.text); end; end;
ملاحظة: المرفق بواجهة فرنسية ، بعد أن سبق إدراج مرفق المشروع بواجهة عربية (نزولا لرغبة أحد الأعضاء) ، و بهذا يمكن للأي عضو لا يفهم اللغة الفرنسية (و أنا أصلا لا أجيدها) ، فهم معنى كل عبارة عن طريق المقارنة بين المرفقين عند الحاجة .
- في الدرس القادم سوف نرفق المشروع مع اتمام برمجة كل من فورم المشتريات و الزبائن و الممونين ، مع بداية الطرح لغرض ما يلزم بخصوص الفورم FFactureEtStatistique ، و نذكر بأن هذا الأخير في غاية الأهمية و سنعطي بعض الوقت قبل الطرح لغرض اللحاق لجميع المشاركين و المهتمين.


بالتوفيق .


..../ يتبـع / ....


الملفات المرفقة
.rar   8_GSM.rar (الحجم : 116.82 ك ب / التحميلات : 1,514)
الرد


الردود في هذا الموضوع
تعلم معي خطوة خطوة صنع برنامج لتسيير المخزون و التسويق - بواسطة nabilkeb - 03-02-2010, 04:19 PM

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


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