بســم الله الـرحمــن الرحيــم
السلام عليكم ورحمة الله وبركاته
الأخوه الأفاضل كل عام وانتم بخير بمناسبة عيد الأضحى المبارك. واخص التهنيئة الأخ أبو سلطان والأخ / محمود سمير والأخ / مصطفى / والأخ / عبد المنعم الذي انقطعو عنا وتركو المنتدى بدون اي دعم او مشاركة اكيد كل واحد له ظروفه الله يكون في العون .
مشاركتي اليوم وهي عن عمل برنامج لطباعة الشيكات المشكلة التي تواجهني هي تفقيط الأرقام لتظهر في الطباعة بالحروف بدل اما اكتب المبلغ كل مرة مع العلم انني بحثت في المنتدى ووجدت الكوت التالي بس للأسف لم استطيع فهمه وتطبيقه لذا ارجوا المساعة منكم او من اي زميل يقراء هذا الموضوع.
*---------
PROCEDURE TAFKEET
PARAMETER rakam, omla
RELEASE fl3
PUBLIC fl3
fmaged = 0
fl3 = ""
STORE rakam TO fl
fmaged = fl - INT(fl)
fl1 = INT(fl)
fl2 = LEN(ALLTRIM(STR(fl1)))
DO CASE
CASE fl2 = 1
DO onee
CASE fl2 = 2
DO tenn
CASE fl2 = 3
DO hunder
CASE fl2 = 4
DO thous
CASE fl2 = 5
DO 10THOUS
CASE fl2 = 6
DO 100THOUS
CASE fl2 = 7
DO milions
OTHERWISE
RETURN
ENDCASE
fmaged = fmaged * 100
IF fl <> 0
IF fmaged > 0
IF arosft = 1 .OR. ;
itsaraf = 1
kersh = " هلله "
ELSE
kersh = " قرش "
ENDIF
fl3 = "فقط " + ;
ALLTRIM(fl3) + ;
" " + omla + " و" + ;
ALLTRIM(STR(fmaged)) + ;
kersh + ;
" لاغير"
ELSE
fl3 = "فقط " + ;
ALLTRIM(fl3) + ;
" " + omla + ;
" لاغير "
ENDIF
ELSE
fl3 = "بدون قيمة "
ENDIF
ENDPROC
**
PROCEDURE TENN
fl1 = INT(VAL(RIGHT(STR(fl1), ;
2)))
IF RIGHT(STR(fl1), 1) = "0"
DO tenth
ELSE
IF fl1 > 10 .AND. fl1 < 20
DO ashra
ELSE
STORE fl1 TO fl11
fl1 = INT(VAL(RIGHT(ALLTRIM(STR(fl11)), ;
1)))
DO onee
fl4 = fl3
IF fl11 > 9
fl1 = INT(VAL(LEFT(ALLTRIM(STR(fl11)), ;
1))) * 10
DO tenth
fl3 = fl4 + " و " + ;
fl3
ENDIF
ENDIF
ENDIF
RETURN
ENDPROC
**
PROCEDURE HUNDER
fl1 = INT(VAL(RIGHT(STR(fl1), ;
3)))
IF RIGHT(STR(fl1), 1) = "0" .AND. ;
RIGHT(STR(fl1), 2) = "0"
DO hund
ELSE
fl11 = fl1
fl22 = fl1
fl7 = ""
IF fl1 > 99
fl1 = INT(VAL(LEFT(ALLTRIM(STR(fl11)), ;
1))) * 100
DO hund
fl7 = fl3
fl1 = fl22
ENDIF
toto = 0
DO tenn
IF fl22 > 99
IF fl7 <> fl3
fl3 = fl7 + " و " + ;
fl3
ELSE
fl3 = fl7
ENDIF
ENDIF
ENDIF
RETURN
ENDPROC
**
PROCEDURE THOUS
fl1 = INT(VAL(RIGHT(STR(fl1), ;
4)))
IF RIGHT(STR(fl1), 1) = "0" .AND. ;
RIGHT(STR(fl1), 2) = "00" ;
.AND. RIGHT(STR(fl1), 3) = ;
"000"
DO thau
ELSE
fl11 = fl1
fl22 = fl1
fl1 = INT(VAL(LEFT(ALLTRIM(STR(fl11)), ;
1))) * 1000
DO thau
fl8 = fl3
fl1 = fl22
DO hunder
fl3 = fl8 + " و " + fl3
ENDIF
ENDPROC
**
PROCEDURE 10THOUS
fl1 = INT(VAL(RIGHT(STR(fl1), ;
5)))
fl11 = fl1
fl22 = fl1
IF RIGHT(STR(fl1), 1) = "0" .AND. ;
RIGHT(STR(fl1), 2) = "0" .AND. ;
RIGHT(STR(fl1), 3) = "0" .AND. ;
RIGHT(STR(fl1), 4) = "0"
fl1 = INT(VAL(LEFT(ALLTRIM(STR(fl11)), ;
1))) * 10
DO tenth
IF fl11 = 10000
fl3 = fl3 + " آلاف "
ELSE
fl3 = fl3 + " إلف "
ENDIF
ELSE
fl10 = ""
fl9 = ""
fl1 = INT(VAL(SUBSTR(ALLTRIM(STR(fl11)), ;
1, 2)))
IF fl1 < 20 .AND. fl1 > 10
DO ashra
fl9 = fl3 + " ألف "
ELSE
fl1 = INT(VAL(SUBSTR(ALLTRIM(STR(fl11)), ;
2, 1)))
STORE fl1 TO fl999
fl10 = ""
IF fl1 > 0
DO onee
fl10 = fl3 + " و "
ENDIF
fl1 = fl11
fl1 = INT(VAL(LEFT(ALLTRIM(STR(fl11)), ;
1))) * 10
STORE fl1 TO fl888
DO tenth
IF fl999 = 0 .AND. ;
fl888 / 10 = 1
fl9 = fl3 + ;
" آلاف "
ELSE
fl9 = fl3 + ;
" ألف "
ENDIF
ENDIF
fl1 = fl22
fl3 = ""
IF INT(VAL(RIGHT(ALLTRIM(STR(fl11)), ;
3))) > 0
DO hunder
fl3 = " و " + fl3
ENDIF
fl3 = fl10 + fl9 + fl3
ENDIF
ENDPROC
**
PROCEDURE 100THOUS
fl1 = INT(VAL(RIGHT(STR(fl1), ;
6)))
fl11 = fl1
fl33 = fl1
fl1 = INT(VAL(LEFT(ALLTRIM(STR(fl11)), ;
3)))
DO hunder
IF INT(VAL(SUBSTR(ALLTRIM(STR(fl33)), ;
2, 2))) = 10
fl111 = fl3 + " آلاف "
ELSE
fl111 = fl3 + " ألف "
ENDIF
fl11 = fl33
fl1 = INT(VAL(RIGHT(ALLTRIM(STR(fl11)), ;
3)))
IF fl1 > 0
DO hunder
fl3 = fl111 + " و " + fl3
ELSE
fl3 = fl111
ENDIF
RETURN
ENDPROC
**
PROCEDURE MILIONS
fl1 = INT(VAL(RIGHT(STR(fl1), ;
7)))
IF RIGHT(STR(fl1), 1) = "0" .AND. ;
RIGHT(STR(fl1), 2) = "00" ;
.AND. RIGHT(STR(fl1), 3) = ;
"000" .AND. RIGHT(STR(fl1), 4) = ;
"0000" .AND. RIGHT(STR(fl1), ;
5) = "00000" .AND. ;
RIGHT(STR(fl1), 6) = "000000"
DO milio
ELSE
fl11 = fl1
fl22 = fl1
fl1 = INT(VAL(LEFT(ALLTRIM(STR(fl11)), ;
1))) * 1000000
DO milio
flm = fl3
fl1 = fl22
DO 100THOUS
fl3 = flm + " و " + fl3
ENDIF
ENDPROC
**
PROCEDURE ONEE
DO CASE
CASE fl1 = 1
fl3 = " واحد "
CASE fl1 = 2
fl3 = " إثنين "
CASE fl1 = 3
fl3 = " ثلاثه "
CASE fl1 = 4
fl3 = " أربعه "
CASE fl1 = 5
fl3 = " خمسه "
CASE fl1 = 6
fl3 = " سته "
CASE fl1 = 7
fl3 = " سبعه "
CASE fl1 = 8
fl3 = " ثمانيه "
CASE fl1 = 9
fl3 = " تسعه "
ENDCASE
RETURN
ENDPROC
**
PROCEDURE TENTH
DO CASE
CASE fl1 = 10
fl3 = " عشره "
CASE fl1 = 20
fl3 = " عشرون "
CASE fl1 = 30
fl3 = " ثلاثون "
CASE fl1 = 40
fl3 = " أربعون "
CASE fl1 = 50
fl3 = " خمسون "
CASE fl1 = 60
fl3 = " ستون "
CASE fl1 = 70
fl3 = " سبعون "
CASE fl1 = 80
fl3 = " ثمانون "
CASE fl1 = 90
fl3 = " تسعون "
ENDCASE
RETURN
ENDPROC
**
PROCEDURE ASHRA
DO CASE
CASE fl1 = 11
fl3 = " إحدي عشر "
CASE fl1 = 12
fl3 = " إثني عشر "
CASE fl1 = 13
fl3 = "ثلاثة عشر "
CASE fl1 = 14
fl3 = " أربعة عشر "
CASE fl1 = 15
fl3 = " خمسة عشر "
CASE fl1 = 16
fl3 = " ستة عشر "
CASE fl1 = 17
fl3 = " سبعة عشر "
CASE fl1 = 18
fl3 = " ثمانية عشر "
CASE fl1 = 19
fl3 = " تسعة عشر "
ENDCASE
ENDPROC
**
PROCEDURE HUND
DO CASE
CASE fl1 = 100
fl3 = " مائه "
CASE fl1 = 200
fl3 = " مائتان "
CASE fl1 = 300
fl3 = " ثلاثة مائه "
CASE fl1 = 400
fl3 = " أربعة مائه "
CASE fl1 = 500
fl3 = " خمسة مائه "
CASE fl1 = 600
fl3 = " ستة مائه "
CASE fl1 = 700
fl3 = " سبعة مائه "
CASE fl1 = 800
fl3 = " ثمانية مائه "
CASE fl1 = 900
fl3 = " تسعة مائه "
ENDCASE
RETURN
ENDPROC
**
PROCEDURE THAU
DO CASE
CASE fl1 = 1000
fl3 = " ألف "
CASE fl1 = 2000
fl3 = " ألفان "
CASE fl1 = 3000
fl3 = " ثلاثة آلاف "
CASE fl1 = 4000
fl3 = " أربعة آلاف "
CASE fl1 = 5000
fl3 = " خمسة آلاف "
CASE fl1 = 6000
fl3 = " ستة آلاف "
CASE fl1 = 7000
fl3 = " سبعة آلاف "
CASE fl1 = 8000
fl3 = " ثمانية آلاف "
CASE fl1 = 9000
fl3 = " تسعة آلاف "
ENDCASE
ENDPROC
**
PROCEDURE MILIO
DO CASE
CASE fl1 = 1000000
fl3 = " مليون "
CASE fl1 = 2000000
fl3 = " مليونين "
CASE fl1 = 3000000
fl3 = " ثلاثة ملايين "
CASE fl1 = 4000000
fl3 = " أربعة ملايين "
CASE fl1 = 5000000
fl3 = " خمسة ملايين "
CASE fl1 = 6000000
fl3 = " ستة ملايين "
CASE fl1 = 7000000
fl3 = " سبعة ملايين "
CASE fl1 = 8000000
fl3 = " ثمانية ملايين "
CASE fl1 = 9000000
fl3 = " تسعة ملايين "
ENDCASE
RETURN
ENDPROC


