حسنا
مع أن الرد الأول في نظري كاف ، واعذرني إذا قلت لك أنك ربما تعب من العمل بحيث تريد بالضبط ما تريد
أولا لا تضع المجموع العام في الجدول : لأنه خاص بجميع سطور الجدول
ثانيا سأريك أن الرد الأول كافي لكن التغيير الذي سأقوم به هو نسخ الأجراء بدل استدعائه
تحسب المجموع - توجد طرق عدة - لكنني سأعدل فقط على برنامجك
DB,StrUtils تضافان إلى Uses
حاولت التبسيط قدر الإمكان
![[صورة: attachment.php?attachmentid=174&d=1210415043]](http://www.delphi4arab.net/forum/attachment.php?attachmentid=174&d=1210415043)
الإجراء QRLabel2Print تتحصل عليه من خلال الحدث OnPrint ستجده في Evènements (évents) الخاص بـ QRLabel2
لتتأكد الصورة المرفقة تبين النتيجة
مع أن الرد الأول في نظري كاف ، واعذرني إذا قلت لك أنك ربما تعب من العمل بحيث تريد بالضبط ما تريد
أولا لا تضع المجموع العام في الجدول : لأنه خاص بجميع سطور الجدول
ثانيا سأريك أن الرد الأول كافي لكن التغيير الذي سأقوم به هو نسخ الأجراء بدل استدعائه
تحسب المجموع - توجد طرق عدة - لكنني سأعدل فقط على برنامجك
DB,StrUtils تضافان إلى Uses
حاولت التبسيط قدر الإمكان
كود :
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QRCtrls, QuickRpt, ExtCtrls,[color=Blue] DB,StrUtils[/color];
type
TForm2 = class(TForm)
. . . . . . . . . . . .
procedure QRLabel2Print(sender: TObject; var Value: String);
Function words(D : Double; F1 : String = 'واحدة'; F2 :String = 'واحدتين' ; F3 : String = 'واحدات'
; D1 : String = 'جزء' ; D2 : String = 'جزئين'; D3: String = 'أجزاء'; SayJust : Boolean = True) : String;
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
Function TForm2.words(D : Double; F1 : String = 'واحدة'; F2 :String = 'واحدتين' ; F3 : String = 'واحدات'
; D1 : String = 'جزء' ; D2 : String = 'جزئين'; D3: String = 'أجزاء'; SayJust : Boolean = True) : String;
[color=Blue]. . . . . . . . . words أنقل هنا محتوى الإجراء [/color]
End;
procedure TForm2.QRLabel2Print(sender: TObject; var Value: String);
[color=Blue]حساب المجموع[/color]
Function MT: Real;
var Book: TBookMark;
MT0: Real;
begin
MT0:=0;
Book:=Form1.Table1.GetBookmark;
try
Form1.Table1.DisableControls;
Form1.Table1.First;
while not Form1.Table1.Eof do
begin
MT0 := MT0+
(Form1.Table1.FieldByName('PRIX').AsFloat * Form1.Table1.FieldByName('QTE').AsFloat);
Form1.Table1.Next;
end;
Form1.Table1.GotoBookmark(Book);
finally
Form1.Table1.FreeBookmark(Book);
Form1.Table1.EnableControls;
end;
Result:=MT0;
end;
[color=Blue]-------------------------------[/color]
begin
Value:=words(MT),'سنتيم', 'سنتيم', 'سنتيم','دينار', 'دينار', 'دينار' , false);
end;
end.الإجراء QRLabel2Print تتحصل عليه من خلال الحدث OnPrint ستجده في Evènements (évents) الخاص بـ QRLabel2
لتتأكد الصورة المرفقة تبين النتيجة

