• 0
ahmed amer

تفقيط الإرقام

سؤال

بســم الله الـرحمــن الرحيــم

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

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

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

*---------

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

New_Folder.rar

تم تعديل بواسطه ahmed amer
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

13 إجابة على هذا السؤال .

  • 0

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

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

لذا كنت اتمنى ان اطبقه مع الفوكس برو .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اهلا بكم يا أعزائي الكرام

اعتذر عن التأخير وذلك بسبب انني مرتبط بدورة تدريبة طويلة.. وبصراحة وحشتوني واتمنى لكم كل خير

بخصوص سؤالك ياعزيزي احمد عن التفقيط هناك طرق مختصرة مثل التالي وسهلة الفهم ايضا اتمنى التركيز بها ممكن تحويلها الى العربية

انا وضعته من زمان في الرابط التالية

http://foxpro.yoo7.com/montada-f6/topic-t52.htm

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

الأخ الفاضل / أبو سلطان

شكرا على الرد واهلا بك في المنتدى بعد فترة غياب .ولكن اسمح لي ان اتقل على حضرتك شويه وهو ان هذا الكود حاولت فيه ولم اتمكن من فهمه او تطبيقة من الناحية العملية حيث انني لم يسبق لي التعرض لهذا العمل .

ببساط انني اريد ان اعمل تفقيط

وقد قمت بعمل جدول يحتوي على الحقول التالية :-

1- رقم الشيك

2- التاريخ

3- المبلغ

4- المستفيد

5- المبلغ بالحروف

6- البيان

7- الإجمالي

وهذه الحقول حتى يتم معرفة الملبغ الذي تم صرفه خلال فترة معينة .

أما التقرير فبه الخانات التى يطلب طباعتها على الشيك فقط

وفعلا قمت بعمل فورم لذلك ولذلك اريد منك المساعه في شرح كيفية تطبيق هذا الكود في هذا العمل .

هل هذا الكود يتم وضعه في prog. ويتم استعاءه من داخل الفورم بـ Do او ما هى الطريقه بحيث عندما يتم كتابة الرقم في خانة المبلغ يتم عمل التفقيط .

ولكم مني جزيل الشكر ،،

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كل عام وجميع الأخوة بخير

ياترى انتم فين من فترة افتقدناكم كثير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم

اخي الكريم ارسل لي نسخه من البرنامج والكود وسوف احاول المساعده

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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

وشكرا لكم تعاونكم

bank2.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

الأخوه الأفاضل

ارجو المساعدة في شرح هذا الكود حيث انني لم اتمكن من اكمال العمل

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)))

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بســم الله الـرحمــن الرحيــم

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

اخي الكريم

اليك المثال وتم عمل بعض التعديلات

اقرأه وستفهمه بإذن الله

bank2.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي العزيز مصطفى

بجد عاجز عن الشكر بالدعم الذي تمدنا به والإهتمام الكبير واتمنى من عودة الأخ عبد المنعم والآخ ابو سلطان والكل للمنتدي مثل السابق

ولكم مني جزيل الشكر والتقدير وإن شاء الله في القريب نلتقي بكم في مصر

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

الأخ العزيز مصطفى

اسف ممكن مساعدة في التفقيط باللغة الإنجليزية حيث انه يوجد بعض التعديل حيث في التفقيط يظهر رفم 21 يظهر الواحد قبل الأثنين ومن رقم 11 حتى 19 وسوف ارسل لكم الكود ارجو

منكم شرحه حيث انني اطبق بدون فهم املي ان افهمه المبلغ 656565.00

Only Six Hundred Six Fifty Thuosand and Five Hundred Five Sixty Riyal Only

تم تعديل بواسطه ahmed amer
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

الأخوة الأفاضل

الأخ العزيز مصطفى

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

ولكم مني جزيل الشكر اتمنى ان يكون به شرح

bank5.rar

تم تعديل بواسطه ahmed amer
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الأخ الفاضل / مصطفى

الأخوه الأفاضل الذين لهم الفضل علينا

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

لكم مني جزيل الشكر والتقدير

bank.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

ارجو توضيح كيفية تصحيح هذا الخطأ وكذلك الأرقام الأكبر من 10 ملايين كيفية زيادتها في البرنامج ولكم جزيل الشكر

1.jpg

1.jpg

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .