تعلم معي خطوة خطوة صنع برنامج لتسيير المخزون و التسويق
#29
- الجزء 3 من الدرس العاشر

على الفورم FFactureEtStatistique دائما ، نمر إلى الصفحة : Gestion de Versements ، نجعل ReadOnly=True لكل من العناصر : sBitBtn9-sBitBtn10-sEdit14-sEdit15-DBLookupcimboBox1-DBLookupcomboBox2 .

للتعريف ، نكتب قبل implementation :
كود :
(*Pour Majmoo3eVersement_Totals*) MajmoueVersement_Totals: Currency; RecordPlaceVersement_Totals: TBookmark ; (*Pour Majmoo3eVersement_Client*) MajmoueVersement_Client: Currency; RecordPlaceVersement_Client: TBookmark ;

- نجعل الخاصية SQL للــ Query4 تأخذ القيمة :
كود :
Select * From Bon_Versement

- نجعل الخاصية SQL للــ Query5 تأخذ القيمة :
كود :
Select * From Bon_Versement Where Code_Client=:Code_Client
و من Params نحدد Code_Client و نجعل DataType تأخذ القيمة : ftString



- من الحدث OnChange للــ sEdit12 نكتب :
كود :
if sEdit12.Text='*' then begin Query4.Close; sBitBtn5.Enabled:=false; DbGrid4.DataSource:=DataSource4; Query4.Open; (* Majmoo3eVersement_Totals *) RecordPlaceVersement_Totals := Query4.GetBookmark; MajmoueVersement_Totals:=0; Query4.Active:=true; Query4.First; while not Query4.Eof Do begin MajmoueVersement_Totals:= MajmoueVersement_Totals +Query4.FieldByName('Somme_Versée').AsCurrency; Query4.Next; end;sEdit13.text:=CurrToStr(MajmoueVersement_Totals); FGSM.Table8.Refresh; Query4.Refresh; end else begin Query5.Close; Query5.ParamByName('Code_Client').Value:=sEdit12.text; DbGrid4.DataSource:=DataSource5; Query5.Open; if Query5.FieldValues['Code_Client']=sEdit12.text then begin sBitBtn5.Enabled:=true ; end else begin sBitBtn5.Enabled:=false; end; (* Majmoo3eVersement_Client *) RecordPlaceVersement_Client := Query5.GetBookmark; MajmoueVersement_Client:=0; Query5.Active:=true; Query5.First; while not Query5.Eof Do begin MajmoueVersement_Client:= MajmoueVersement_Client +Query5.FieldByName('Somme_Versée').AsCurrency; Query5.Next; end; sEdit13.text:=CurrToStr(MajmoueVersement_Client); FGSM.Table8.Refresh; Query5.Refresh; end;
في OnEnter للــ sEdit12 نكتب : sEdit12Change


- نضغط مرتين على DBLookupComboBox1 و نكتب :
كود :
DBLookupComboBox2.KeyValue:=FGSM.Table4.FieldValues['Code_Com_C'];
ثم DBLookupComboBox2
كود :
DBLookupComboBox1.KeyValue:=FGSM.Table4.FieldValues['Code_Client'] ;
- على الزر sBitBtn7 الذي يحمل الكابشن : Nouveau ، نكتب:
كود :
var NumBV:integer; begin if not FGSM.Table8.IsEmpty then begin FGSM.Table8.Last; NumBV:=FGSM.Table8.FieldValues['N_Bon']; sEdit14.Text:=inttostr(NumBV+1); end else begin sEdit14.Text:=inttostr(1); end; FGSM.Table8.Insert; sEdit12.Enabled:=False; sEdit15.Clear; sEdit14.ReadOnly:=false; sEdit15.ReadOnly:=false; DBLookupComBobox1.ReadOnly:=false; DBLookupComBobox2.ReadOnly:=false; DBGrid5.Enabled:=False; sBitBtn7.Enabled:=False; sBitBtn8.Enabled:=False; sBitBtn9.Enabled:=True; sBitBtn10.Enabled:=True; sBitBtn11.Enabled:=False; sBitBtn12.Enabled:=False; sBitBtn13.Enabled:=False; sBitBtn14.Enabled:=False; sBitBtn15.Enabled:=False; sBitBtn16.Enabled:=False; DateTimePicker5.DateTime:=Now; end;
- الزر sBitBtn8 المسمى Modifier
كود :
if not FGSM.Table8.IsEmpty then begin sEdit14.Text:= FGSM.Table8.FieldValues['N_Bon']; FGSM.Table8.Edit; FGSM.Table8.FieldValues['N_Bon']:='0'; sEdit14.ReadOnly:=True; sEdit15.text:=FGSM.Table8.FieldValues['Somme_Versée']; sEdit15.ReadOnly:=false; DBLookupComBobox1.ReadOnly:=false; DBLookupComBobox2.ReadOnly:=false; DBGrid5.Enabled:=False; sBitBtn7.Enabled:=False; sBitBtn8.Enabled:=False; sBitBtn9.Enabled:=True; sBitBtn10.Enabled:=True; sBitBtn11.Enabled:=False; sBitBtn12.Enabled:=False; sBitBtn13.Enabled:=False; sBitBtn14.Enabled:=False; sBitBtn15.Enabled:=False; sBitBtn16.Enabled:=False; sEdit12.Enabled:=False; end else sBitBtn8.Enabled:=False;
-الزر Valider المسمى sBitBtn9 نكتب:
كود :
Var DBL1,DBL2:String; begin if (Dblookupcombobox1.Text='') Or (Dblookupcombobox2.Text='') Or (sEdit14.Text='') Or (sEdit15.Text='') then showmessage('compliter touts les champs') else begin DBL1:= DBLookupComboBox1.Text; DBL2:= DBLookupComboBox2.Text; if FGSM.Table8.FindKey( [(sEdit14.text)] ) then begin ShowMessage ('N°_Bon Existe Déjà ,Essayez à Nouveau') ; if FGSM.Table8.FindKey(['']) then FGSM.Table8.Delete; sBitBtn7.Enabled:=true; sBitBtn8.Enabled:=true; sBitBtn9.Enabled:=False; sBitBtn10.Enabled:=False; sBitBtn11.Enabled:=true; sBitBtn12.Enabled:=true; sBitBtn13.Enabled:=true; sBitBtn14.Enabled:=true; sBitBtn15.Enabled:=true; sBitBtn16.Enabled:=true; end else if (Not FGSM.Table8.FindKey([(sEdit14.text)])) then begin FGSM.Table8.Edit; FGSM.Table8.FieldValues['N_Bon']:=sEdit14.Text; FGSM.Table8.FieldValues['Code_Client']:=DBL1; FGSM.Table8.FieldValues['Code_com_C']:=DBL2; FGSM.Table8.FieldValues['Somme_Versée']:=sEdit15.Text; FGSM.Table8.FieldValues['Date_Versement']:=DateTimePicker3.DateTime; FGSM.Table8.Post; sBitBtn7.Enabled:=true; sBitBtn8.Enabled:=true; sBitBtn9.Enabled:=False; sBitBtn10.Enabled:=False; sBitBtn11.Enabled:=true; sBitBtn12.Enabled:=true; sBitBtn13.Enabled:=true; sBitBtn14.Enabled:=true; sBitBtn15.Enabled:=true; sBitBtn16.Enabled:=true; sEdit12.Enabled:=True; sEdit12.SetFocus; DBGrid5.Enabled:=True; sEdit14.ReadOnly:=True; sEdit15.ReadOnly:=True; DBLookupComboBox1.ReadOnly:=True; DBLookupComboBox2.ReadOnly:=True; end; end; end;
-الزر Anuler المسمى sBitBtn10 :
كود :
FGSM.Table8.Cancel; sBitBtn7.Enabled:=true; sBitBtn8.Enabled:=true; sBitBtn9.Enabled:=False; sBitBtn10.Enabled:=False; sEdit12.Enabled:=True; sEdit12.SetFocus; sEdit14.Clear; sEdit15.Clear; sEdit14.ReadOnly:=True; sEdit15.ReadOnly:=True; DBLookupComboBox1.ReadOnly:=True; DBLookupComboBox2.ReadOnly:=True; DBGrid5.Enabled:=True; if FGSM.Table8.IsEmpty then begin sBitBtn11.Enabled:=False; sBitBtn12.Enabled:=False; sBitBtn13.Enabled:=False; sBitBtn14.Enabled:=False; sBitBtn15.Enabled:=False; sBitBtn16.Enabled:=true; end else begin sBitBtn11.Enabled:=True; sBitBtn12.Enabled:=true; sBitBtn13.Enabled:=true; sBitBtn14.Enabled:=true; sBitBtn15.Enabled:=true; sBitBtn16.Enabled:=true end;
-الزر Supprimer المسمى sBitBtn11 :
كود :
if not FGSM.table8.IsEmpty then begin if MessageDLG ('êtes vous sûr de vouloir suprimer l''enregistrement ?' , MtConfirmation,[MbYes,MbNo],0)=MrYes then FGSM.Table8.Delete; end else if FGSM.table8.IsEmpty then begin sBitBtn11.Enabled:=False; sBitBtn12.Enabled:=False; sBitBtn13.Enabled:=False; sBitBtn14.Enabled:=False; sBitBtn15.Enabled:=False; sBitBtn16.Enabled:=False; end;
-الزر Vider LaTableالمسمى sBitBtn12
كود :
if messageDLG ('cette méthode de suppression conduira à la perte de toutes les données ' ,MTinformation,[mbyes,mbcancel],0) =MRyes then if messageDLG ('êtes vous sûr de vouloir vider toute les données de la table Bon_Versement ?',MTconfirmation,[mbyes,mbno],0) =MRyes then begin sBitBtn11.Enabled:=False; sBitBtn12.Enabled:=False; sBitBtn13.Enabled:=False; sBitBtn14.Enabled:=False; sBitBtn15.Enabled:=False; sBitBtn16.Enabled:=False; While not FGSM.table8.isEmpty Do FGSM.table8.Delete; end;
-الزر Suivant المسمى sBitBtn13
كود :
if Not FGSM.Table8.IsEmpty then begin FGSM.Table8.Next; sEdit14.Text:=FGSM.Table8.FieldValues['N_Bon']; DblookupCombobox1.KeyValue:=FGSM.Table8.FieldValues['Code_Client']; DblookupCombobox2.KeyValue:=FGSM.Table8.FieldValues['Code_com_C']; sEdit15.Text:=FGSM.Table8.FieldValues['Somme_Versée']; DateTimePicker3.DateTime:=FGSM.Table8.FieldValues['Date_Versement']; end;
- نفس الشيء بالنسبة الأزرار: Précedent-Début-Fin فقط نكتب مكان Next ما يلزم ( Prior-First-Last)

أخيرا في الخاصية DataSource للـ DBGrid5 نكتب (FGSM.DataSource8) ، و مع نفس العنصر نختار ما يناسب من الأحداث مثل OnKeyDown+UP :
كود :
if Not FGSM.Table8.IsEmpty then begin sEdit14.Text:=FGSM.Table8.FieldValues['N_Bon']; DblookupCombobox1.KeyValue:=FGSM.Table8.FieldValues['Code_Client']; DblookupCombobox2.KeyValue:=FGSM.Table8.FieldValues['Code_com_C']; sEdit15.Text:=FGSM.Table8.FieldValues['Somme_Versée']; DateTimePicker3.DateTime:=FGSM.Table8.FieldValues['Date_Versement'];
.

بالتوفيق.

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


الملفات المرفقة
.rar   12_GSM.rar (الحجم : 41.41 ك ب / التحميلات : 1,085)
الرد


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

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


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