07-02-2010, 09:38 PM
- الجزء 3 من الدرس العاشر
على الفورم FFactureEtStatistique دائما ، نمر إلى الصفحة : Gestion de Versements ، نجعل ReadOnly=True لكل من العناصر : sBitBtn9-sBitBtn10-sEdit14-sEdit15-DBLookupcimboBox1-DBLookupcomboBox2 .
للتعريف ، نكتب قبل implementation :
- نجعل الخاصية SQL للــ Query4 تأخذ القيمة :
- نجعل الخاصية SQL للــ Query5 تأخذ القيمة :
و من Params نحدد Code_Client و نجعل DataType تأخذ القيمة : ftString
- من الحدث OnChange للــ sEdit12 نكتب :
في OnEnter للــ sEdit12 نكتب : sEdit12Change
- نضغط مرتين على DBLookupComboBox1 و نكتب :
ثم DBLookupComboBox2
- على الزر sBitBtn7 الذي يحمل الكابشن : Nouveau ، نكتب:
- الزر sBitBtn8 المسمى Modifier
-الزر Valider المسمى sBitBtn9 نكتب:
-الزر Anuler المسمى sBitBtn10 :
-الزر Supprimer المسمى sBitBtn11 :
-الزر Vider LaTableالمسمى sBitBtn12
-الزر Suivant المسمى sBitBtn13
- نفس الشيء بالنسبة الأزرار: Précedent-Début-Fin فقط نكتب مكان Next ما يلزم ( Prior-First-Last)
أخيرا في الخاصية DataSource للـ DBGrid5 نكتب (FGSM.DataSource8) ، و مع نفس العنصر نختار ما يناسب من الأحداث مثل OnKeyDown+UP :
.
بالتوفيق.
... / يتبع / ...
على الفورم 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- من الحدث 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;- نضغط مرتين على DBLookupComboBox1 و نكتب :
كود :
DBLookupComboBox2.KeyValue:=FGSM.Table4.FieldValues['Code_Com_C'];كود :
DBLookupComboBox1.KeyValue:=FGSM.Table4.FieldValues['Code_Client'] ;كود :
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;كود :
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;كود :
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;كود :
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;كود :
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;كود :
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;كود :
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;أخيرا في الخاصية 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'];بالتوفيق.
... / يتبع / ...

