نمایش نتایج 1 تا 14 از 14

نام تاپیک: نحوه تبدیل عدد به حروف در کریستال ریپورت

  1. #1
    کاربر دائمی آواتار hadi2345
    تاریخ عضویت
    بهمن 1383
    محل زندگی
    تبریز
    سن
    46
    پست
    595

    نحوه تبدیل عدد به حروف در کریستال ریپورت

    چگونه می توان توسط فرمولا فیلد در کریستال ریپورت عدد را به حروف تبدیل کرد
    یا
    چگونه میتوانیم یک dll را به توابع کریستال ریپورت اضافه کرد

  2. #2
    کاربر دائمی آواتار sm
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    ایساتیس
    پست
    1,389
    شما میتونین توی کریستال با Syntax زبان VB و C کدنویسی انجام بدین که البته در این مورد خاص منطقی نیست.
    شما میتونین DLL مربوط به این عمل رو که کم هم نیست به کریستال اضافه کنین و بعد استفاده بشه... البته DLL هایی که میخوان توی کریستال استفاده بشن باید دارای شرایط خاصی باشن.
    روش دیگه اینه که از توی بانک حروفی رو بسازین و به گزارش رد کنین.
    راه دیگه هم اینه که از توی محیط برنامه نویسی این کار رو انجام بدین.

    موفق باشید

  3. #3
    شما میتونین توی کریستال با Syntax زبان VB و C کدنویسی انجام بدین که البته در این مورد خاص منطقی نیست.
    منظورتون vb.net , C#‎.net هست؟ یا vba و c خودمون؟

  4. #4
    کاربر دائمی آواتار sm
    تاریخ عضویت
    اردیبهشت 1383
    محل زندگی
    ایساتیس
    پست
    1,389
    vb اون نزدیک به دات نت هست ولی C نه... خاصه

    موفق باشید

  5. #5
    از چه نسخه کریستال ریپورت استفاده می کنی

    اگر با کریستال 8.5 کار می کنی کافیه این فایل dll را در vb فعال کنی سپس در ریپورت مورد نظرت کد زیر را تایپ کنی
    Dim a As New ConvertyAdadToHorof.ConvertAdadToHorof
    Private Sub Section9_Format (By Val pFormattingInfo As Object)
    Target field.SetText (a.Adad (Source field.Value))
    End Sub
    فایل های ضمیمه فایل های ضمیمه

  6. #6

    dll مورد نظر برای کریستال 9

    با این dll می تونین تو وی بی 6 با کریستال 9 کار مورد نظر رو انجام بدین
    فایل های ضمیمه فایل های ضمیمه

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    آذر 1385
    محل زندگی
    تهران
    سن
    41
    پست
    43

    مشکل در نمودار

    به نام خدا
    دوستان سلام من در کریستال 10 یک چارتی درست کردم که در اون مثلا 400 رکورد وجود دارد. اما مشکل اینجاست که همه این رکورد ها در یک صفحه نمایش داده می شود. آیا راه حلی موجود می باشد که با نمودار مثل Detailes کریستال رفتار کرد و با پر شدن تعداد معینی رکورد ادامه چارت در صفحه های بعد نمایش داده شود. خیلی فوریه

  8. #8

    نقل قول: نحوه تبدیل عدد به حروف در کریستال ریپورت

    نقل قول نوشته شده توسط hadi2345 مشاهده تاپیک
    چگونه می توان توسط فرمولا فیلد در کریستال ریپورت عدد را به حروف تبدیل کرد
    یا
    چگونه میتوانیم یک dll را به توابع کریستال ریپورت اضافه کرد
    نحوه تبدیل عدد به حروف در کریستال ریپورت?

  9. #9

    نقل قول: نحوه تبدیل عدد به حروف در کریستال ریپورت

    با این روش به راحتی هر عددی رو میشه تو خود کریستال به حروف گذاشت و احتیاجی به هیچ Dll و کد توی لرنامه نداره


    Digit2Alpha ({sp_tbl_axCashHeadSql.Mablag}, 0) + Del + 'ريال'



    '************************************************* ********************
    * Creation Date : ? *
    '************************************************* ********************
    '* Modification History: *
    * a) this fuction always returned *
    '* "FixDigitToAlpha(FixPart) + " مميز " + *
    '* DecimalDigitToAlpha(DecimalPart) and if decimaldigit *
    '* part was null the "ممیز" was returned again and it was*
    '* wrong , so this problem was solved *
    '************************************************* ********************
    'Convert a number(integer or decimal) to farsi alphabet.
    'Parameters: 1- Value: is the number should be convert.
    ' 2- CurrencyDecimal: digit of rounding.
    Function Digit2Alpha (Value As Number,CurrencyDecimal As Number) As String
    Dim DecimalPart,FixPart As Number
    DecimalPart = Value - Truncate(Value)
    FixPart = Truncate(Value)
    DecimalPart = Round (DecimalPart,CurrencyDecimal)
    If(CurrencyDecimal = 0)Then
    If(DecimalPart = 1)Then
    FixPart = FixPart + 1
    End If
    Digit2Alpha = FixDigitToAlpha(FixPart)
    Else
    '1383-06-21 By A.Behnam: was Added this condition.
    If DecimalDigitToAlpha(DecimalPart) <> "" Then
    Digit2Alpha = FixDigitToAlpha(FixPart) + " مميز " + DecimalDigitToAlpha(DecimalPart)
    Else
    Digit2Alpha = FixDigitToAlpha(FixPart)
    End If
    End If

    End Function


    '************************************************* ******************
    '* Creation Date : ? *
    '************************************************* ******************
    '* Modification History: *
    '* a) was checked if the input Parameter "value" was *
    '* not null the body of function is done else *
    '* it shouldn't be done . *
    '************************************************* ******************
    'Convert a 9 digital decimal number to farsi alphabet.
    'This Function use by Digit2Alpha.
    'Parameter: 1- Value: is the number should be convert.
    Function DecimalDigitToAlpha (Value As Number) As String
    Dim Str1,Str2,Result,s,Temp As String
    Dim i,ExterZero As Number
    '1383-06-21 By A.Behnam:was added "If Value <> 0 Then"
    If Value <> 0 Then
    Temp = ToText(Value ,10)
    For i =1 To 10 Step 1
    s = Mid(StrReverse(Temp),i,1)
    If(s = "0")Then
    ExterZero = ExterZero + 1
    Else
    Exit For
    End if
    Next i
    Str1 = Mid(Temp,3,(len(Temp) - ExterZero -2))
    Str2 = FixDigitToAlpha(ToNumber(Str1))
    Select Case len(Str1)
    Case 1
    Result = Str2 + " دهم "
    Case 2
    Result = Str2 + " صدم "
    Case 3
    Result = Str2 + " هزارم "
    Case 4
    Result = Str2 + " ده هزارم "
    Case 5
    Result = Str2 + " صد هزارم "
    Case 6
    Result = Str2 + " ميليونيم "
    Case 7
    Result = Str2 + " ده ميليونيم "
    Case 8
    Result = Str2 + " صد ميليونيم "

    End Select
    DecimalDigitToAlpha = Result
    End If
    End Function


    'Determine the actual decimals digits of Value
    'Parameters: 1- Value: the number that will be determined the actual decimals digits of it.
    ' 2- CurrencyDecimal: decimals digits that determine by user.
    Function DetermineDecimals (Value As Number,CurrencyDecimal As Number)As Number
    Dim CurrencyDecimalTemp As Number
    Dim i As Number
    Dim j As Number
    Dim k As Number
    CurrencyDecimalTemp = 0
    j = 1
    k = 1
    For i = 1 To CurrencyDecimal Step 1
    if(Remainder (Value,j ))<> 0 Then
    CurrencyDecimalTemp = CurrencyDecimalTemp + 1
    k = k* 10
    j = 1/k
    else
    Exit For
    end if
    Next i
    DetermineDecimals = CurrencyDecimalTemp
    End Function


    'Convert a 3 digital number to farsi alphabet.
    'This Function use by FixDigitToAlpha.
    'Parameter: 1- Value: is the number should be convert.
    Function DigitCalassyfying (Num As Number) As String
    Dim s,harf As String
    Dim s1,s2,s3,l,i As Number
    s = ToText (Num,0)
    l = Len (s)
    If l<3 Then
    For i=1 To 3-l Step 1
    s = "0" + s
    Next i
    End If
    s1 = ToNumber (Mid (s,3,1))
    s2 = ToNumber (Mid (s,2,1))
    s3 = ToNumber (Mid (s,1,1))
    harf = " "
    Select Case s1
    Case 1
    harf = "يک"
    Case 2
    harf = "دو"
    Case 3
    harf = "سه"
    Case 4
    harf = "چهار"
    Case 5
    harf = "پنج"
    Case 6
    harf = "شش"
    Case 7
    harf = "هفت"
    Case 8
    harf = "هشت"
    Case 9
    harf = "نه"
    End Select
    's2
    Select Case s2
    Case 1
    Select Case s1
    Case 0
    harf = "ده"
    Case 1
    harf = "يازده"
    Case 2
    harf = "دوازده"
    Case 3
    harf = "سيزده"
    Case 4
    harf = "چهارده"
    Case 5
    harf = "پانزده"
    Case 6
    harf = "شانزده"
    Case 7
    harf = "هفده"
    Case 8
    harf = "هجده"
    Case 9
    harf = "نوزده"
    End Select
    Case 2
    If(harf = "")Then
    harf = "بیست" + harf
    Else
    harf = "بيست و " + harf
    End If
    Case 3
    If(harf = "")Then
    harf = "سی" + harf
    Else
    harf = "سی و " + harf
    End If
    Case 4
    If(harf = "")Then
    harf = "چهل" + harf
    Else
    harf = "چهل و " + harf
    End If
    Case 5
    If(harf = "")Then
    harf = "پنجاه" + harf
    Else
    harf = "پنجاه و " + harf
    End If
    Case 6
    If(harf = "")Then
    harf = "شصت" + harf
    Else
    harf = "شصت و " + harf
    End If
    Case 7
    If(harf = "")Then
    harf = "هفتاد" + harf
    Else
    harf = "هفتاد و " + harf
    End If
    Case 8
    If(harf = "")Then
    harf = "هشتاد" + harf
    Else
    harf = "هشتاد و " + harf
    End If
    Case 9
    If(harf = "")Then
    harf = "نود" + harf
    Else
    harf = "نود و " + harf
    End If
    End Select
    's3
    Select Case s3
    Case 1
    If(harf = "")Then
    harf = "يکصد" + harf
    Else
    harf = "يکصد و " + harf
    End If
    Case 2
    If(harf = "")Then
    harf = "دويست" + harf
    Else
    harf = "دويست و " + harf
    End If
    Case 3
    If(harf = "")Then
    harf = "سيصد " + harf
    Else
    harf = "سيصد و " + harf
    End If
    Case 4
    If(harf = "")Then
    harf = "چهارصد" + harf
    Else
    harf = "چهارصد و " + harf
    End If
    Case 5
    If(harf = "")Then
    harf = "پانصد" + harf
    Else
    harf = "پانصد و " + harf
    End If
    Case 6
    If(harf = "")Then
    harf = "ششصد" + harf
    Else
    harf = "ششصد و " + harf
    End If
    Case 7
    If(harf = "")Then
    harf = "هفتصد" + harf
    Else
    harf = "هفتصد و " + harf
    End If
    Case 8
    If(harf = "")Then
    harf = "هشتصد" + harf
    Else
    harf = "هشتصد و " + harf
    End If
    Case 9
    If(harf = "")Then
    harf = "نهصد" + harf
    Else
    harf = "نهصد و " + harf
    End If
    End Select
    DigitCalassyfying = Trim(harf)
    End Function


    'Convert a 15 digital number to farsi alphabet.
    'This Function use by Digit2Alpha.
    'Parameter: 1- Value: is the number should be convert.
    Function FixDigitToAlpha (Value As Number)As String
    Dim Separator,s , s1 , s2 , s3 , s4, s5, Part1, Part2, Part3, Part4, TotalParts As String
    Dim l,i,ZeroCounter As Number

    Part1 =" "
    Part2 =" "
    Part3 =" "
    Part4 =" "
    TotalParts =" "
    Separator = " "
    s = ToText (Value,0)
    l = Len (s)
    If(l<20)Then
    If(l>4)Then
    If(Not IsNumeric(Mid (s,(l-3),1)))Then
    Separator = Mid (s,(l-3),1)
    ZeroCounter = 19
    Else
    ZeroCounter = 15
    End If
    Else
    ZeroCounter = 15
    End If
    If(ZeroCounter = 19)Then

    If(((l+1) mod 4)<> 0)Then
    For i=1 To 3-(l mod 4) Step 1
    s = "0" + s
    Next i
    End If
    For i=1 To (ZeroCounter-l)/4 Step 1
    s = "000" + Separator + s
    Next i

    Else
    For i=1 To ZeroCounter-l Step 1
    s = "0" + s
    Next i
    End if

    If(l>4 And Separator <> " ")Then
    s1 = Mid (s,17,3)
    s2 = Mid (s,13,3)
    s3 = Mid (s,9,3)
    s4 = Mid (s,5,3)
    s5 = Mid (s,1,3)
    Else
    s1 = Mid (s,13,3)
    s2 = Mid (s,10,3)
    s3 = Mid (s,7,3)
    s4 = Mid (s,4,3)
    s5 = Mid (s,1,3)
    End If
    If Len(s1)< 3 Then
    For i=1 To 3-l Step 1
    s1 = "0" + s1
    Next i
    End If
    If Len(s2)< 3 Then
    For i=1 To 3-l Step 1
    s2 = "0" + s2
    Next i
    End If
    If Len(s3)< 3 Then
    For i=1 To 3-l Step 1
    s3 = "0" + s3
    Next i
    End If
    If Len(s4)< 3 Then
    For i=1 To 3-l Step 1
    s4 = "0" + s4
    Next i
    End If
    If Len(s5)< 3 Then
    For i=1 To 3-l Step 1
    s5 = "0" + s5
    Next i
    End If
    If (ToNumber (s5)<>0) Then
    Part4 = DigitCalassyfying(ToNumber (s5)) + " تريليون "
    End If
    If (ToNumber (s4)<>0) Then
    Part3 = DigitCalassyfying(ToNumber (s4)) + " ميليارد "
    End If
    If (ToNumber (s3)<>0) Then
    Part2 = DigitCalassyfying(ToNumber (s3)) + " ميليون "
    End If
    If (ToNumber (s2)<>0) Then
    Part1 = DigitCalassyfying(ToNumber (s2)) + " هزار "
    End If
    TotalParts = DigitCalassyfying(ToNumber (s1))
    If((Part1<>"") And (s1<>"000")) Then
    TotalParts = Part1 + "و" + TotalParts
    Else
    TotalParts = Part1 + TotalParts
    End If

    If((Part2<>"") And (s2<>"000")) Or ((Part2<>"") And (s1<>"000")) Then
    TotalParts = Part2 + "و" + TotalParts
    Else
    TotalParts = Part2 + TotalParts
    End If
    If((Part3<>"") And (s3<>"000")) Or ((Part3<>"") And (s2<>"000")) Or ((Part3<>"") And (s1<>"000"))Then
    TotalParts = Part3 + "و" + TotalParts
    Else
    TotalParts = Part3 + TotalParts
    End If
    If((Part4<>"") And (s4<>"000")) Or ((Part4<>"") And (s3<>"000")) Or ((Part4<>"") And (s2<>"000")) Or ((Part4<>"") And (s1<>"000")) Then
    TotalParts = Part4 + "و" + TotalParts
    Else
    TotalParts = Part4 + TotalParts
    End If

    Else
    TotalParts = " "
    End If
    FixDigitToAlpha = Trim(TotalParts)
    End Function

  10. #10

    نقل قول: نحوه تبدیل عدد به حروف در کریستال ریپورت

    سلام
    دوستم من ميتوني يه راهنمايي كني چجوري از اين كد ها استفاده كنم؟

  11. #11

    نقل قول: نحوه تبدیل عدد به حروف در کریستال ریپورت

    سلام.
    من هم ممنون میشم نحوه استفاده از این کدها رو بگید.

  12. #12

    نقل قول: نحوه تبدیل عدد به حروف در کریستال ریپورت

    بالاخره خودم فهیمیدم
    اول یه کلاس تعریف میکنیم مثلا من lib تعریف کردم .بعد کد های صفحه قبلو تو کلاس کپی میکنی. فقط کافیه عددی که می خوای را بریزی تو تابع num2str.مثل کد زیر
    البته برای دیدن حروف خروجی رو تو label1ریختم.
    ;int x=12330000

    this.label1.Text = lib.num2str(x.ToString());



    this.label1.Text = lib.num2str(x.ToString());


  13. #13
    کاربر دائمی آواتار saeed-kh
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مازندران - بابل
    پست
    148

    نقل قول: نحوه تبدیل عدد به حروف در کریستال ریپورت

    در قسمت Field Explorer مربوط به فایل گزارشت روی Formula Fields کلیک راست کن و New(یک نام بده)
    در کادر باز شده
    CStr ({CLientParent.Cost})

    CLientParent.Cost اسم فیلدی هست که رد دیتاست هست.
    گزینه اضافه شده در Formula... رو به گزارش اضافه کن

  14. #14

    نقل قول: نحوه تبدیل عدد به حروف در کریستال ریپورت

    نقل قول نوشته شده توسط saeed-kh مشاهده تاپیک
    در قسمت Field Explorer مربوط به فایل گزارشت روی Formula Fields کلیک راست کن و New(یک نام بده)
    در کادر باز شده
    CStr ({CLientParent.Cost})

    CLientParent.Cost اسم فیلدی هست که رد دیتاست هست.
    گزینه اضافه شده در Formula... رو به گزارش اضافه کن
    سلام
    کسی تبدیل تاریخ به حروف رو نداره؟؟؟

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •