اذهب الي المحتوي
أوفيسنا

تحويل أرقام إلى حروف


الردود الموصى بها

السلام عليكم ...
لذي نموذج ( PAIE CCP ) و المتعلق بحساب منحة المعوقين ، عند الضغط على زر الطباعة يفتح تقرير ( PAIE CCP ) ، سؤالي هو :
أريد أسفل التقرير ( صورة مرفقة ) تحويل المبلغ الإجمالي ( Total Général ) إلى حروف في الخانة المشار إليها بالسهم الأحمر,
للعلم أن رمز العملة باللغة الأجنبية هي ( DA ) و بالعربية ( دينار جزائري ).

PAIE CCP.png

PAIE CCP.rar

رابط هذا التعليق
شارك

أزبوكفوس عبدالسلام

للأسف مشروع VBA لملفك لا يفتح عندى

أنشئ وحدة نمطية جديدة وضع فيها هذا الكود

Option Compare Database

Public Function wsiSpellNumber(ByVal MyNumber)
Dim Dollars, Cents, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Mille "
Place(3) = " Million "
Place(4) = " Milliard "
Place(5) = " Billion "
' String representation of amount.
MyNumber = Trim(Str(MyNumber))
' Position of decimal place 0 if none.
DecimalPlace = InStr(MyNumber, ".")
' Convert cents and set MyNumber to dollar amount.
If DecimalPlace > 0 Then
Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
                  "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
        Temp = GetHundreds(Right(MyNumber, 3))
        If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
        If Len(MyNumber) > 3 Then
            MyNumber = Left(MyNumber, Len(MyNumber) - 3)
        Else
            MyNumber = ""
        End If
        Count = Count + 1
    Loop
    Select Case Dollars
        Case ""
            Dollars = "Non DAs"
        Case "One"
            Dollars = "Une DA"
         Case Else
            Dollars = Dollars & " DAs"
    End Select
    Select Case Cents
        Case ""
            Cents = " et Non  Centimes"
        Case "One"
            Cents = " et Une  centime"
              Case Else
            Cents = " et " & Cents & " Centimes"
    End Select
    wsiSpellNumber = Dollars & Cents
End Function
      
' Converts a number from 100-999 into text
Function GetHundreds(ByVal MyNumber)
    Dim result As String
    If Val(MyNumber) = 0 Then Exit Function
    MyNumber = Right("000" & MyNumber, 3)
    ' Convert the hundreds place.
    If Mid(MyNumber, 1, 1) <> "0" Then
        result = GetDigit(Mid(MyNumber, 1, 1)) & " Cent "
    End If
    ' Convert the tens and ones place.
    If Mid(MyNumber, 2, 1) <> "0" Then
        result = result & GetTens(Mid(MyNumber, 2))
    Else
        result = result & GetDigit(Mid(MyNumber, 3))
    End If
    GetHundreds = result
End Function
      
' Converts a number from 10 to 99 into text.
Function GetTens(TensText)
    Dim result As String
    result = ""           ' Null out the temporary function value.
    If Val(Left(TensText, 1)) = 1 Then   ' If value between 10-19...
        Select Case Val(TensText)
            Case 10: result = "Dix"
            Case 11: result = "Onze"
            Case 12: result = "Douze"
            Case 13: result = "Treize"
            Case 14: result = "Quatorze"
            Case 15: result = "Quinze"
            Case 16: result = "Seize"
            Case 17: result = "Dix-sept"
            Case 18: result = "Dix-huit"
            Case 19: result = "Dix-neuf"
            Case Else
        End Select
    Else                                 ' If value between 20-99...
        Select Case Val(Left(TensText, 1))
            Case 2: result = "Vingt "
            Case 3: result = "Trente "
            Case 4: result = "Quarante "
            Case 5: result = "Cinquante "
            Case 6: result = "Soixante "
            Case 7: result = "Soixante-dix "
            Case 8: result = "Quatre-vingts "
            Case 9: result = "Quatre vingt dix "
            Case Else
        End Select
        result = result & GetDigit _
            (Right(TensText, 1))  ' Retrieve ones place.
    End If
    GetTens = result
End Function
     
' Converts a number from 1 to 9 into text.
Function GetDigit(Digit)
    Select Case Val(Digit)
        Case 1: GetDigit = "Une"
        Case 2: GetDigit = "Deux"
        Case 3: GetDigit = "Trois"
        Case 4: GetDigit = "Quatre"
        Case 5: GetDigit = "Cinq"
        Case 6: GetDigit = "Six"
        Case 7: GetDigit = "Sept"
        Case 8: GetDigit = "Huit"
        Case 9: GetDigit = "Neuve"
        Case Else: GetDigit = ""
    End Select
End Function



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

=wsiSpellNumber(Sum([المبلغ الشهري]))

علما بأنى ضعيف جدا فى اللغة الفرنسية فحاول التعديل على المسميات الموجودة فى الوحدة النمطية

حاول ووافنى بالنتيجة

بالتوفيق

رابط هذا التعليق
شارك

السلام عليكم ...

إتبعت الطريقة و لكن لا تظهر الترجمة النصية للمبلغ الشهري في أسفل التقرير و تظهر رسالة خطأ ( erreur# ) ( صورة مرفقة ) ، كما أن هناك خطأ في بداية الكود ( صورة مرفقة ) .

ممكن أنا لم أحسن وضع هذين الكودين في المكان المناسب ، لو تكرّمت أشرلي بالخطوات لإتباعها :

- كيف أسمي Module

- و أين أضع الكود الثاني "=wsiSpellNumber(Sum([المبلغ الشهري])) "

module.png

report.png

رابط هذا التعليق
شارك

أ.بوكفوس عبدالسلام

برنامجك كى يفتح عندى يحذف جميع الأكواد .. وضعت الطريقة بالمرفق وأكرر بدون الاكواد الخاصة بك .. فقط الموديول مع مربع نص على التقرير لعرض النتيجة

4 ساعات مضت, بوكفوس عبدالسلام said:

- و أين أضع الكود الثاني "=wsiSpellNumber(Sum([المبلغ الشهري])) "

 

يوضع فى source de contrôle للتقرير

PAIE CCP(Test).zip

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information