السلام عليكم و رحمة الله تعالى و بركاته : هذا الجزء رقم 09 أو الدرس التاسع مشروع انجاز برنامج
لتسيير المخزون و التسويق (GSM) .
بصفة فردية و مباشرة اختزالا للجهد و الوقت ، قمت باضافة العناصر اللازمة في كل من الفورم FProduit-FClient-FFournisseur-FAchat ، فأما الفورم المواد أو فورم المخزن فقد قمت ببرمجة عمل كل عنصر ، المطلوب من على نفس الشاكلة تقريبا إتمام العمل في يخص برمجة عناصر و أزرار كل من فورم الزبائن و الممونين ، كذلك على نفس شاكلة الفرم FGSM المتضمنة عملية البيع أو العملية على جدول المبيعات قم باتمام ما يلزم بخصوص فورم المشتريات .
بهذا أكون قد فضلت عدم شرح أمور سبق التطرق إليها من جهة ، و من جهة أخرى أحببت تفاعلك معي و اختبار مدى استعابك لما سلف ، لذلك قم بما هو مطلوب و عجل الإنجاز.
بالتوفيق.
الآن سنتكلم عن أمر آخر تم إضافته في الفورم FGSM:
عندما يباشر المستعمل ، القيام بعمليات بيع لمختلف المواد ، و مع كثرة المواد و ربما تشابه أسمائها قد يغيب عنه كود أو اسم مادة معينة (خصوصا إذا كان موظف جديد) الشيء الذي سيجبره على فتح قائمة DBLookupCombobox2 و التمعن و البحث في كل القائمة ، أو سيذهب إلى الفورم FProduit ليبحث في الجدول بكامله عن المادة المقصودة ، و ماذا لو كان المحل يتعامل بقدر هائل من البيانات لا سيما مئات الأنواع من المواد ؟ نفس الشيء لو كان المحل يتعامل مع زبائن كثر ، رغم أن الزبون سيقول لك مثلا نحن مؤسسة MagiInfo (كإسم تجاري) و لنفرض أن لك زبائن كثر تتشابه أسماؤها و لديك الكثير كل يبدأ بحرف M ، أكيد أنك تخسر وقتا أنت بحاجة إليه.
مما ذكر ، جاءت فكرة مضمونها العام هو اتاحة طريقة سريعة للبحث عن كود أو إسم مادة أو زبون .
الطريقة:
نستعمل كل من العناصر: زر واحد ، عنصر واحد من ComboBox ، و 5 عناصر من RadioButton .(تجدها من القائمة في صفحة Standard )
و لأننا استعملنا سكين فإننا نفضل البحث عن نفس العناصر الشبيهة من صفحة AlphaLite سنجد
sBitBtn و sComboBox و لا نجد بديل عن RadioButton ، لكننا نجد كبديل عن هذا الأخير العنصر sCheckBox و الفرق بينهما واضح و هو أن الأول لا يتيح لك امكانية تحديد عنصرين معا ، بينما الآخر يمكنك من ذلك ، و يمكننا تجاوز ذلك بالطبع بإضافة شرط حذف التحديد عن البقية في حال تم تحديد أحدها.
أترككم مع الكود ، نضغط مرتين على العنصر sCheckBox1 و نكتب :
نفس الشيء مع sCheckBox2 :
و نفس الشيء مع sCheckBox3-4-5 .
- الآن مع sCombobox1 : أولا نجعل الخاصية Style لهذا العنصر تأخذ القيمة csSimple ، ثم في الحدث OnEnter للــ sCombobox1 نكتب :
الآن الزر الذي أضفنـاه أنا عندي هو sBitBtn13 :
نجعل الكابشن الخاصة به تأخذ القيمة Plus D'information يعني معلومات إضافية أو معلومات أخرى . نريد من هذا الزر إعطاء معلومات إضافية يمكن للمستعمل أن يحتاجها (و أنا غرضي منه تمكينك من رؤية طريقة بحث بواسطة الأمر Lookup و للمزيد راجع هذا الرابط )
ملاحظة: المرفق بواجهة فرنسية ، بعد أن سبق إدراج مرفق المشروع بواجهة عربية (نزولا لرغبة أحد الأعضاء) ، و بهذا يمكن للأي عضو لا يفهم اللغة الفرنسية (و أنا أصلا لا أجيدها) ، فهم معنى كل عبارة عن طريق المقارنة بين المرفقين عند الحاجة .
- في الدرس القادم سوف نرفق المشروع مع اتمام برمجة كل من فورم المشتريات و الزبائن و الممونين ، مع بداية الطرح لغرض ما يلزم بخصوص الفورم FFactureEtStatistique ، و نذكر بأن هذا الأخير في غاية الأهمية و سنعطي بعض الوقت قبل الطرح لغرض اللحاق لجميع المشاركين و المهتمين.
بالتوفيق .
..../ يتبـع / ....
لتسيير المخزون و التسويق (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;كود :
if sCheckBox2.Checked=true then begin
sCheckBox1.Checked:=false;
sCheckBox3.Checked:=false;
sCheckBox4.Checked:=false;
sCheckBox5.Checked:=false;
sComboBox1.SetFocus;
end;- الآن مع 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;نجعل الكابشن الخاصة به تأخذ القيمة 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 ، و نذكر بأن هذا الأخير في غاية الأهمية و سنعطي بعض الوقت قبل الطرح لغرض اللحاق لجميع المشاركين و المهتمين.
بالتوفيق .
..../ يتبـع / ....

