![]() |
|
تحويل الأرقام الى حروف في فاست ريبورت - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : تحويل الأرقام الى حروف في فاست ريبورت (/showthread.php?tid=11175) الصفحات:
1
2
|
تحويل الأرقام الى حروف في فاست ريبورت - hadir aek - 16-12-2020 أوجه الشكر وتحياتنا الخالصة الى أساتذتنا المشرفين على هذا الموقع وإلى أصدقائنا المشتركين... لدي سؤال وهو كيفية تحويل الأرقام الى حروف في فاست ريبورت وشكرا جزيلا. RE: تحويل الأرقام الى حروف في فاست ريبورت - Delphi4Us - 16-12-2020 المكونات والوحدات كثيرة ومختلفة ومتنوعة و هذه وحدة تفعل ذلك كود : unit Unit2;
interface
uses SysUtils,StrUtils;
Function words(Number : Double; F1 : String = 'دينار'; F2 :String = 'دينارين' ; F3 : String = 'دنانير'
; D1 : String = 'درهم' ; D2 : String = 'درهمين'; D3: String = 'دراهم'; SayJust : Boolean = True) : String;
implementation
Function words(Number : Double; F1 : String = 'دينار'; F2 :String = 'دينارين' ; F3 : String = 'دنانير'
; D1 : String = 'درهم' ; D2 : String = 'درهمين'; D3: String = 'دراهم'; SayJust : Boolean = True) : String;
Var
P,P1,P2,P3,P4,w,w1,w2,w3,N,n1 : String;
SD : Int64;
(*------------------------------------------------------------------------*)
Function Swords(N, U1, U2, U3 : String) : String;
Type
TF = array[0..2,0..9] of String;
Const
FNO : TF = (('','واحد','إثنان','ثلاثة','أربعة','خمسة','ستة','سبعة','ثمانية','تسعة'),
('','عشر','عشرون','ثلاثون','أربعون','خمسون','ستون','سبعون','ثمانون','تسعون'),
('','مائة','مائتين','ثلاثمائة','أربعمائة','خمسمائة','ستمائة','سبعمائة','ثمانمائة','تسعمائة'));
Var
s: array[1..3] of Byte;
PU : array[0..2] of String;
A : Tf;
w1,w2,f : String;
E : integer;
Begin
A := FNO;
Pu[0] := '';
PU[1] := U1 ;
Pu[2] := U2 ;
E := StrToInt(N);
If E < 3 then Swords := pu[E]
Else
Begin
N := leftstr('000',3-length(n)) + N ;
For E := 1 to 3 Do S[E] := StrToInt(n[4-E]);
If (s[2] = 0) or (s[1] = 0) Then W2 := '' Else W2 := ' و ';
If (s[3] = 0) Or (s[1]+S[2] = 0) Then W1 := '' Else W1 := ' و ';
If S[2] = 1 Then
Begin
A[0,1] := 'أحد ';
A[0,2] := 'إثنا ' ;
W2 := ' ';
End;
Case strToInt(n[2]+n[3]) of
0 : Begin
A[2, 2] := 'مائتا ';
F := U1;
End;
3..10 : F := U3;
1,2, 11..99 : F := U1;
end;
swords := A[2, S[3]] + w1 + A[0, S[1]] + w2 + A[1, S[2]] + ' ' + F;
End;
End;
(*------------------------------------------------------------------------*)
Begin
If Number > 0 Then
Begin
Sd := Trunc(Number);
p := Swords(inttostr(round((Number-sd)*100)),D1,D2,D3);
N := leftstr('000000000000',12-length(floattostr(Sd))) + floattostr(Sd) ;
P1 := Swords(Copy(N, 10, 3), F1, F2, F3);
P2 := Swords(Copy(N, 7, 3), 'ألف', 'ألفان', 'آلاف');
P3 := Swords(copy(N, 4, 3), 'مليون', 'مليونان', 'ملايين');
P4 := Swords(copy(N, 1, 3), 'مليار', 'ملياران', 'مليارات');
If (P4 = '') Or (P1 + P2 + P3 = '') Then w3 := '' Else w3 := ' و ';
If (P3 = '') Or (P1 + P2 = '') Then w2 := '' Else w2 := ' و ';
If (P2 = '') Or (P1 = '') Then w1 := '' Else w1 := ' و ';
If P1 = '' Then P1 := ' ' + F1;
If P = '' Then w := '' Else w := ' و ';
if Sd = 0 then
N := P
else
N := P4 + w3 + P3 + w2 + P2 + w1 + P1 + w + P;
If SayJust Then words := 'فقط ' + N + ' لاغير'Else Words := N;
end;
End;
end.ستحتاج الى اضافة متغير في الفاست ريبورت وتمرر له القيمة المطلوبة بالحروف اذا لم تكن تعرف كيف تضيف متغير او تمرر له قيمة قل وسوف اوضح لك RE: تحويل الأرقام الى حروف في فاست ريبورت - محمد عبد العزيز - 17-12-2020 عنصر التفقيط العربي - الإصدار الرابع RE: تحويل الأرقام الى حروف في فاست ريبورت - hadir aek - 20-12-2020 جزاك الله خيرا أخي الفاضل... RE: تحويل الأرقام الى حروف في فاست ريبورت - samnaj00 - 21-12-2020 (16-12-2020, 04:34 PM)Delphi4Us كتب : ستحتاج الى اضافة متغير في الفاست ريبورت وتمرر له القيمة المطلوبة بالحروف كيف ذلك استاذي الكريم؟ RE: تحويل الأرقام الى حروف في فاست ريبورت - Delphi4Us - 23-12-2020 بالنسبة الى اضافة متغير وتمرير قيمة اولا وقبل كل شئ هذا درس فيه دالة يمكن استخدامها من داخل الفاست ريبورت نفسه يعني لا تحتاج الى انشاء متغير وتمرير قيمة له من خارج الفاست ريبورت طريقة للتفقيط داخل fast report وهناك طريقة مشروحة بموقع الشركة عن كيفية اضافة Function موجودة في المشروع الى الفاست ريورت بامكانك استخدامها وتغنيك على استخدام وانشاء متغير وتمرير قيمة له Using Custom Functions in a Report اما انشاء متغير وتمرير قيمة له راجع حالا ان شاء الله وسوف اضيفها ليس عندي دلفي او فاستريبورت ولا احفظ اماكن الاشياء RE: تحويل الأرقام الى حروف في فاست ريبورت - Delphi4Us - 25-12-2020 بالنسبة لاضافة متغير من القائمة Preport نختار Variable ومن النافذة الخاصة بالـ Variable ننشئ مجلد جديد وننشئ فيه متغير جديد بعدها نعود الى مصمم التقارير ومن التويب Variable نجد المتغير الذي أنشأناه نقوم باسقاطه بالمكان المطلوب بالتقرير بعدها نعود الى الدلفي ونحدد مكون التقرير ومن الحدث وفي الحدث نقوم بالتاكد من اسم المتغير ونضع له القيمة المطلوب فربما يكون لدينا اكثر من متغير فنكتب لو كان المتغير اسمه كذا اجعل قيمته تساوي كذا RE: تحويل الأرقام الى حروف في فاست ريبورت - samnaj00 - 26-12-2020 كل الشكر لك استاذي الكريم على هذا الشرح تتمة لموضوع فاست ريبورت كيف يمكنني التعديل على التقرير من خارج الدلفي بحيث لا اضطر الى فتح دلفي للتعديل عليه RE: تحويل الأرقام الى حروف في فاست ريبورت - Delphi4Us - 27-12-2020 يمكنك ان تصمم التقارير وتحفظها مع الملف التنفيذي بمجلد بحيث تستطيع ان تفتحها وتعدل فيها وتحفظها في مستعرض التقارير تجد ايقونة فتح تقرير وحفظ التقرير يعني اذا احتجت تعديل تعدله خارجيا وتستبدله بالتقرير الذي مع البرنامج والطريقة الثانية ان تفتح التقرير برمجيا كود : frxReport1.LoadFromFile('c:\1.fr3');
frxReport1.SaveToFile('c:\2.fr3');في مكون التقارير ومن نافذة الخصائص تجد كل الخصائص التي تريد تركها للمستخدم منها فتح وحفظ التقرير والتعديل عليه او تصديره وبخصوص تصدير التقرير الى صورة او PDF مثلا يجب ان تضع مكوناتها على النموذج اسقطها فقط على النموذج وسيظهر خيار تصدير ما اسقطت بمستعرض التقارير RE: تحويل الأرقام الى حروف في فاست ريبورت - larbiparadox - 27-12-2020
|