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

نربط DataSource1 مع Query1 من الخاصية DataSet ، و 2 مع 2 ، و هكذا.
نربط DBGrid1 مع DataSource1
نحدد العنضر Query1 و من الخاصية SQL في TStrings نكتب
كود :
Select * from Vente where N_Fact=:afficher_Facture
يعني قمنا بتحديد كل الحقول من الجدول Vente إذا تحقق الشرط المتمثل في رقم الفاتورة يساوي القيمة afficher_Facture ، و هذه الأخيرة إختيارية يعني اكتب ماتشاء ، المهم شيء يدلك على المراد (وهنا المراد لعرض الفاتورة).
نذهب الآن إلى الخاصية Params ، يوف تظهر لنا القيمة التي كتبناها (afficher_Facture) ، نحددها و نذهب إلى خصائصها و نعدل على الخاصية DataType ، و نحدد ftFloat لأن هذه القيمة بطبيعة الحال عدد حقيقي لأنها توازي نوع الحقل (N_Fact) .


ثم من الحدث OnChange للــ sEdit1 نكتب
كود :
if sEdit1.text='' then begin sEdit1.text:=floattostr(0); sEdit1.SelectAll ; end; Query1.Close; Query1.ParamByName('Afficher_Facture').Value:=sEdit1.text; Query1.Open; if sEdit1.Text=Query1.FieldValues['N_Fact'] then begin sLabel3.Caption:=Query1.FieldValues['Date'] ; sLabel5.Caption:=Query1.FieldValues['Code_Com_C'] ; end else begin sLabel3.Caption:='. . . . . . . . . . . . . . .'; sLabel5.Caption:='. . . . . . . . . . . . . . .' ; end;
-أولا : قيمة sEdit1 هي لرقم الفاتورة ، يعني نكتب رقم الفاتورة فيها فنتحصل على عرض للفاتورة بالــ DBgrid ، لابد ألا تكون قيمة sEdit1 خالية ، هذا كود بسيط يرجع القيمة 0 إذا كانت خالية .
-كتبنا في الكود أعلاه الشرط
إقتباس : where N_Fact=:afficher_Facture
و موازاة مع ذلك فعلينا أن نعطي قيمة sEdit1 للــ Query1.ParamByName('Afficher_Facture').Value
و قبل ذلك يتطلب الأمر إغلاق Query1 ، بعد ذلك نقوم بفتحه. بهذا تعرض الفاتورة بالـ DBGrid1 . و في sLabel3 و 5 يتم عرض تاريخ الفاتورة و الإسم التجاري للزبون كما يمكن إضافة كود الزبون في sLabel آخر .


- بقي الآن جمع قيمة السعر و كذا الضريبة و السعر الإجمالي :
في الحدث OnChange للــ sEdit1 كتب فقط الجز الذي شرحته ، الكود الكامل:
كود :
begin if sEdit1.text='' then begin sEdit1.text:=floattostr(0); sEdit1.SelectAll ; end; Query1.Close; Query1.ParamByName('AFficher_Facture').Value:=sEdit1.text; Query1.Open; if sEdit1.Text=Query1.FieldValues['N_Fact'] then begin sLabel3.Caption:=Query1.FieldValues['Date'] ; sLabel5.Caption:=Query1.FieldValues['Code_Com_C'] ; end else begin sLabel3.Caption:='. . . . . . . . . . . . . . .'; sLabel5.Caption:='. . . . . . . . . . . . . . .' ; end; (* Majmoo3e Total_HT*) RecordPlaceTotal_HT := Query1.GetBookmark; MajmoueTotal_HT:=0; Query1.First; while not Query1.Eof Do begin MajmoueTotal_HT:= MajmoueTotal_HT+Query1.FieldByName('prix_T').AsCurrency; Query1.Next; end; sEdit2.text:=CurrToStr(MajmoueTotal_HT); (* Majmoo3eTVA *) RecordPlaceTVA := Query1.GetBookmark; MajmoueTVA:=0; Query1.First; while not Query1.Eof Do begin MajmoueTVA:= MajmoueTVA+Query1.FieldByName('tva').AsCurrency; Query1.Next; end; sEdit3.text:=CurrToStr(MajmoueTVA); sEdit4.text:=FloatToStr(StrToFloat(sEdit2.text) + StrToFloat(sEdit3.text)); If FGSM.Table7.FindKey( [(sEdit1.text)] ) Then sBitBtn2.Enabled:=True else sBitBtn2.Enabled:=False; end;
و نعرف (أعلاه) في Var قبل implementation :
كود :
(*Pour Majmoo3eTotal_HT*) MajmoueTotal_HT: Currency; RecordPlaceTotal_HT: TBookmark ; (*Pour Majmoo3eTVA*) MajmoueTVA: Currency; RecordPlaceTVA: TBookmark ; (*Pour Majmoo3eDettesTotales*) MajmoueDettesTotales: Currency; RecordPlaceDettesTotales: TBookmark ; (*Pour Majmoo3eDettesClient*) MajmoueDettesClient: Currency; RecordPlaceDettesClient: TBookmark ;
- في الحدث ONchange للــ sEdit4 نكتب :
كود :
begin If FGSM.Table7.FindKey( [(sEdit1.text)] ) Then sEdit6.Text:= FGSM.Table7.FieldValues['Valeur_Reste'] else sEdit5.Text:=FloatTostr(StrToFloat(sEdit4.Text)); end;
- في الحدث ONchange للــ sEdit5 نكتب :
كود :
Var Total_TTC:real; begin if sEdit5.Text='' then begin sEdit5.Text:=floattostr(0); sEdit5.SelectAll;end; Total_TTC:=StrToFloat(sEdit4.Text); if Total_TTC>=StrToFloat(sEdit5.text) then sEdit6.Text:=floattostr(Total_TTC-strtofloat(sEdit5.text)) else begin showmessage('Valeur Incorrecte'); sEdit5.text:=FloatToStr(Total_TTc); sEdit5.SelectAll; end; end;
- في الحدث ONchange للــ sEdit6 نكتب :
كود :
Var Total_TTC:real; begin if sEdit6.Text='' then begin sEdit6.Text:=floattostr(0); sEdit6.SelectAll;end; Total_TTC:=StrToFloat(sEdit4.Text); if Total_TTC>=StrToFloat(sEdit6.text) then sEdit5.Text:=floattostr(Total_TTC-strtofloat(sEdit6.text)) else begin showmessage('Valeur Incorrecte'); sEdit5.text:=FloatToStr(Total_TTc); sEdit6.SelectAll; end; end;

-نتابع الجزء2 ، من الدرس العاشر في المرة المقبلة ، و سيكون المشروع مرفق.

بالتوفيق.

... / يتبــع / ....
الرد


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

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


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