المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : فيما يخص تحويل المبالغ الرقمية إلى كتابة حرفية


medreg
09-05-2008, 09:34 PM
السلام عليكم ورحمة الله تعالى وبركاته
لقد وجدت في أحد المواقع كود تفقيط
كيف يمكنني إستدعائه داخل QuickRep
وإضافة العملة الجزائرية به ('الدينار' و' السنتيم')

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

merouane
10-05-2008, 12:40 AM
و عليكم السلام و رحمة الله تعالى و بركاته

الأمر بسيط

http://www.delphi4arab.com/forum/attachment.php?attachmentid=171&stc=1&d=1294584303

عند quickReport التي سنسميها QuickReport3
ستستعمل QRDBText نسميه QRDBText4 حيث Field سيأخذ قيمة MT_NET
استعملت في المثال جدول آخر لكنها نفي الطريقة
اذهب إلى Events أو Evènements وبالضبط عند OnPrint اضغط بالفأرة ثم اكتب

implementation
uses unit2; wordsالوحدة التي تتضمن الإجراء

procedure TQuickReport3.MTQRDBTextPrint(sender: TObject; var Value: String);
begin
Value:=words(StrToFloat(Value),'سنتيم', 'سنتيم', 'سنتيم','دينار', 'دينار', 'دينار' , false);
end;

medreg
10-05-2008, 09:26 AM
إعادة صياغة هذا الكود على ان يعمل بالكويكريب بالطريقة التقنية المعروفة لديكم كثرجمة اي مبلغ يجده في الكويكريب

والسلام عليكم ورحمة الله تعالى وبركاته

medreg
10-05-2008, 10:05 AM
يا صديق لقد عدت لك مرة أخرى وارفقت لك مثال آخر حتى تفهم ما اقصده بترجة المبالغ

merouane
10-05-2008, 12:32 PM
حسنا

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

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

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

تحسب المجموع - توجد طرق عدة - لكنني سأعدل فقط على برنامجك
DB,StrUtils تضافان إلى Uses

حاولت التبسيط قدر الإمكان

unit Unit2;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QRCtrls, QuickRpt, ExtCtrls, DB,StrUtils;

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;
. . . . . . . . . words أنقل هنا محتوى الإجراء
End;

procedure TForm2.QRLabel2Print(sender: TObject; var Value: String);
حساب المجموع
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;
-------------------------------
begin
Value:=words(MT),'سنتيم', 'سنتيم', 'سنتيم','دينار', 'دينار', 'دينار' , false);
end;

end.
http://www.delphi4arab.com/forum/attachment.php?attachmentid=174&d=1210415043
الإجراء QRLabel2Print تتحصل عليه من خلال الحدث OnPrint ستجده في Evènements (évents) الخاص بـ QRLabel2

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

medreg
10-05-2008, 07:27 PM
شكرً جزيلاً على هذا التعديل والإرشاد
اعذرني يا صديقي فأنا مبتدئ في مجال البرمجة
ولهذا اثقلت عليكم بأسئلة

هل بامكانك اعطائ درس في تفقيط الأرقام بالدلفي وليكن البداية من واحد إلى عشرة مثلاً حتى اتمكن من برمجته بنفسي

merouane
10-05-2008, 11:11 PM
يا أخي medreg لا تعتذر ، بل لك كل الحق في السؤال والمشاركة وكذلك الإجابة في حال تيقنك منها

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

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

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

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

تقبل تحياتي :)

مهدي
11-05-2008, 12:24 AM
و عليكم السلام و رحمة الله و بركاته

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

http://www.delphi4arab.com/forum/showthread.php?t=299

medreg
11-05-2008, 12:48 PM
شكرً جزيلاً يا أخ مهدي ويا اخ مروان
جزاكم الله عنا كل خير

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

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

مهدي
11-05-2008, 04:09 PM
أهلا و مرحبا بك أخي الكريم

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

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

بالتوفيق.

wahid-chaoui
04-03-2011, 10:50 AM
السلام عيكم ورحمة الله تعالى وبركاته
اما بعد
فانا جديد في البرمجة وبحثة كثير في طريقة التفقيط وجدتها بالفرنسية وهي شغالة اما بخصوص العربية فانني عانية
ولم اجد جواب بالرغم انني دخلت الى منتديات كثير وما من منتدى الا سجلت فيه ولكن لم افهم الطيقة في ادخال الدالة التى اعطيت لي



وجزاكم الله خيرا

Lam.Abdeldjalil
04-03-2011, 11:03 AM
وعليكم السلام و رحمة الله تعالى و بركاته

أخ wahid-chaoui مرحبا بك في منتدى دلفي للعرب (http://www.delphi4arab.com/forum/showthread.php?t=9)

لا تنسى مراجعة قوانين وشروط الكتابة في المنتدى؟! (http://www.delphi4arab.com/forum/showthread.php?t=29)