06-02-2010, 08:06 PM
السلام عليكم و رحمة الله تعالى و بركاته : هذا الدرس العاشر من مشروع انجاز برنامج
لتسيير المخزون و التسويق (GSM) .
نربط DataSource1 مع Query1 من الخاصية DataSet ، و 2 مع 2 ، و هكذا.
نربط DBGrid1 مع DataSource1
نحدد العنضر Query1 و من الخاصية SQL في TStrings نكتب
يعني قمنا بتحديد كل الحقول من الجدول Vente إذا تحقق الشرط المتمثل في رقم الفاتورة يساوي القيمة afficher_Facture ، و هذه الأخيرة إختيارية يعني اكتب ماتشاء ، المهم شيء يدلك على المراد (وهنا المراد لعرض الفاتورة).
نذهب الآن إلى الخاصية Params ، يوف تظهر لنا القيمة التي كتبناها (afficher_Facture) ، نحددها و نذهب إلى خصائصها و نعدل على الخاصية DataType ، و نحدد ftFloat لأن هذه القيمة بطبيعة الحال عدد حقيقي لأنها توازي نوع الحقل (N_Fact) .
ثم من الحدث OnChange للــ sEdit1 نكتب
-أولا : قيمة sEdit1 هي لرقم الفاتورة ، يعني نكتب رقم الفاتورة فيها فنتحصل على عرض للفاتورة بالــ DBgrid ، لابد ألا تكون قيمة sEdit1 خالية ، هذا كود بسيط يرجع القيمة 0 إذا كانت خالية .
-كتبنا في الكود أعلاه الشرط
و قبل ذلك يتطلب الأمر إغلاق Query1 ، بعد ذلك نقوم بفتحه. بهذا تعرض الفاتورة بالـ DBGrid1 . و في sLabel3 و 5 يتم عرض تاريخ الفاتورة و الإسم التجاري للزبون كما يمكن إضافة كود الزبون في sLabel آخر .
- بقي الآن جمع قيمة السعر و كذا الضريبة و السعر الإجمالي :
في الحدث OnChange للــ sEdit1 كتب فقط الجز الذي شرحته ، الكود الكامل:
و نعرف (أعلاه) في Var قبل implementation :
- في الحدث ONchange للــ sEdit4 نكتب :
- في الحدث ONchange للــ sEdit5 نكتب :
- في الحدث ONchange للــ sEdit6 نكتب :
-نتابع الجزء2 ، من الدرس العاشر في المرة المقبلة ، و سيكون المشروع مرفق.
بالتوفيق.
... / يتبــع / ....
لتسيير المخزون و التسويق (GSM) .
نربط DataSource1 مع Query1 من الخاصية DataSet ، و 2 مع 2 ، و هكذا.
نربط DBGrid1 مع DataSource1
نحدد العنضر Query1 و من الخاصية SQL في TStrings نكتب
كود :
Select * from Vente
where N_Fact=: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;-كتبنا في الكود أعلاه الشرط
إقتباس : 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;كود :
(*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 ;كود :
begin
If FGSM.Table7.FindKey( [(sEdit1.text)] ) Then
sEdit6.Text:= FGSM.Table7.FieldValues['Valeur_Reste'] else
sEdit5.Text:=FloatTostr(StrToFloat(sEdit4.Text));
end;كود :
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;كود :
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 ، من الدرس العاشر في المرة المقبلة ، و سيكون المشروع مرفق.
بالتوفيق.
... / يتبــع / ....

