فيما يخص تحويل المبالغ الرقمية إلى كتابة حرفية
#1
السلام عليكم ورحمة الله تعالى وبركاته
لقد وجدت في أحد المواقع كود تفقيط
كيف يمكنني إستدعائه داخل QuickRep
وإضافة العملة الجزائرية به ('الدينار' و' السنتيم')

لأن حسب ما تبين لي أن هذا الكود معمول على أن يستعمل داخل فورم وليس داخل الكويكريب
وشكرًا جزيلاً
أنا بحاجة إلى هذا الكود
الرد
#2
و عليكم السلام و رحمة الله تعالى و بركاته

الأمر بسيط

[صورة: attachment.php?attachmentid=171&stc=1&d=1294584303]

عند quickReport التي سنسميها QuickReport3
ستستعمل QRDBText نسميه QRDBText4 حيث Field سيأخذ قيمة MT_NET
استعملت في المثال جدول آخر لكنها نفي الطريقة
اذهب إلى Events أو Evènements وبالضبط عند OnPrint اضغط بالفأرة ثم اكتب
كود :
implementation uses unit2; [color=Blue]wordsالوحدة التي تتضمن الإجراء [/color] procedure TQuickReport3.MTQRDBTextPrint(sender: TObject; var Value: String); begin Value:=words(StrToFloat(Value),'سنتيم', 'سنتيم', 'سنتيم','دينار', 'دينار', 'دينار' , false); end;


الملفات المرفقة
.jpg   pre.jpg (الحجم : 12.34 ك ب / التحميلات : 373)
الرد
#3
إعادة صياغة هذا الكود على ان يعمل بالكويكريب بالطريقة التقنية المعروفة لديكم كثرجمة اي مبلغ يجده في الكويكريب

والسلام عليكم ورحمة الله تعالى وبركاته
الرد
#4
يا صديق لقد عدت لك مرة أخرى وارفقت لك مثال آخر حتى تفهم ما اقصده بترجة المبالغ
الرد
#5
حسنا

مع أن الرد الأول في نظري كاف ، واعذرني إذا قلت لك أنك ربما تعب من العمل بحيث تريد بالضبط ما تريد

أولا لا تضع المجموع العام في الجدول : لأنه خاص بجميع سطور الجدول

ثانيا سأريك أن الرد الأول كافي لكن التغيير الذي سأقوم به هو نسخ الأجراء بدل استدعائه

تحسب المجموع - توجد طرق عدة - لكنني سأعدل فقط على برنامجك
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.
[صورة: attachment.php?attachmentid=174&d=1210415043]
الإجراء QRLabel2Print تتحصل عليه من خلال الحدث OnPrint ستجده في Evènements (évents) الخاص بـ QRLabel2

لتتأكد الصورة المرفقة تبين النتيجة




الملفات المرفقة
.jpg   Untitled-2.jpg (الحجم : 14.97 ك ب / التحميلات : 295)
.rar   EXEMPLE_correct.rar (الحجم : 4.77 ك ب / التحميلات : 191)
الرد
#6
شكرً جزيلاً على هذا التعديل والإرشاد
اعذرني يا صديقي فأنا مبتدئ في مجال البرمجة
ولهذا اثقلت عليكم بأسئلة

هل بامكانك اعطائ درس في تفقيط الأرقام بالدلفي وليكن البداية من واحد إلى عشرة مثلاً حتى اتمكن من برمجته بنفسي
الرد
#7
يا أخي medreg لا تعتذر ، بل لك كل الحق في السؤال والمشاركة وكذلك الإجابة في حال تيقنك منها

وإنما كل ما نطلبه ان يبذل السائل جهدا لاستيعاب الأجوبة، لأنه مهما كانت كفاءة المجيب فلن يستطيع الإجابة 100/100

وإذا صادف ووجدت ما تريده بالضبط فلا زال امامك مشوار الفهم الذي ممرنا ولا زلنا نمر به

أما بخصوص درس التفقيط فلا أعدك بالسرعة في طرحه ، إذا سبقني أحد الإخوة فله الأجر والدعاء من عندنا

وإذا لم يطرحه أحد سأضعه إن شاء الله ..

تقبل تحياتي Smile
الرد
#8
و عليكم السلام و رحمة الله و بركاته

مصدر برنامج التفقيط موجود على الرابط التالي

http://www.delphi4arab.net/forum/showthread.php?tid=299
من تشبه بقوم فهو منهم
الرد
#9
شكرً جزيلاً يا أخ مهدي ويا اخ مروان
جزاكم الله عنا كل خير

إنني لم أطلع على المرفق لكنني حملته وساطلع عليه إنشاء الله
كل ما استطيع قوله لكم اطلب من الله العلي القدير أن يجعل كل حرف من هذه الحروف بعشر حسنات وان يضعهم لكم في ميزان حسناتكم وجعلكم الله ذخرًا للأمة العربية المسلمة جمعا ووفقكم الله لما فيه خير للبلاد والعباد إنشاء الله

لي طلب اخر وهو يا اخ مهدي هل بامكانك ان تعطيني المتغيرات والثوابت والوظائف والتعليمات التي تستعمل في تفقيط الأرقام مرفوقين بشرح لكل متغير وثابت ووظيفة وتعليمة لما تستعمل واين يجب ات تكون في الكود ولماذا وضعت مع مثال لتفيط ارقام من واحد الى عشرة وتوضيح كيف ابدأ بصنع كود للتفقيط والبداية تكون مالصفر من فضلك على ان ينون لعدد محدود مثلا ال عدد عشرة فقط حتى اتمكن م ن ان اصنع كود بنفسي وحتى اعرف كيف اضع الصيغة المناسبة
وكما قلت لك انا مبتدئ في البرمجة
الرد
#10
أهلا و مرحبا بك أخي الكريم

أما فيما يخص شرح طريقة التفقيط فأقول أنه ليس للتفقيط قاعدة عامة حيث بإمكانك تغيير الأساليب و الطرق.

أنصحك بأن تركز مع المصدر الذي قمت برفعه كي تفهم الأسلوب و الطريقة لتحاول إنجاز كود مع عندك و بمجرد أن تنجح إنتقل إلى أشياء و مواضيع جديدة لأن لغة الدلفي كبيرة جدا و ليست مقتصرة على جزء معين.

بالتوفيق.
من تشبه بقوم فهو منهم
الرد


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


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