在我的rdlc
文件中,我只是想將其轉換爲decimal number in words
。在RDLC中將字數轉換爲字
像'125.2' as 'One hundred and twenty five point two five'
。我在谷歌搜索和使用一些代碼,但我不能轉換小數點。如果任何機構知道請分享。
在我的rdlc
文件中,我只是想將其轉換爲decimal number in words
。在RDLC中將字數轉換爲字
像'125.2' as 'One hundred and twenty five point two five'
。我在谷歌搜索和使用一些代碼,但我不能轉換小數點。如果任何機構知道請分享。
寫在RDLC代碼。選擇下面的代碼,並打開RDLC報告 - >右鍵單擊 - >選擇編碼標記或發現菜單報告,並選擇「報表屬性」比選擇「密碼」選項卡 和編寫以下
Function RupeesToWord(ByVal MyNumber)
Dim Temp
Dim Rupees, Paisa As String
Dim DecimalPlace, iCount
Dim Hundreds, Words As String
Dim place(9) As String
place(0) = " Thousand "
place(2) = " Lakh "
place(4) = " Crore "
place(6) = " Arab "
place(8) = " Kharab "
On Error Resume Next
' Convert MyNumber to a string, trimming extra spaces.
MyNumber = Trim(Str(MyNumber))
' Find decimal place.
DecimalPlace = InStr(MyNumber, ".")
' If we find decimal place...
If DecimalPlace > 0 Then
' Convert Paisa
Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
'Paisa = " and " & ConvertTens(Temp) & " Paisa"
Paisa = ""
' Strip off paisa from remainder to convert.
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
'===============================================================
Dim TM As String ' If MyNumber between Rs.1 To 99 Only.
TM = Right(MyNumber, 2)
If Len(MyNumber) > 0 And Len(MyNumber) <= 2 Then
If Len(TM) = 1 Then
Words = ConvertDigit(TM)
RupeesToWord = "Rupees " & Words & Paisa & " Only"
Exit Function
Else
If Len(TM) = 2 Then
Words = ConvertTens(TM)
RupeesToWord = "Rupees " & Words & Paisa & " Only"
Exit Function
End If
End If
End If
'===============================================================
' Convert last 3 digits of MyNumber to ruppees in word.
Hundreds = ConvertHundreds(Right(MyNumber, 3))
' Strip off last three digits
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
iCount = 0
Do While MyNumber <> ""
'Strip last two digits
Temp = Right(MyNumber, 2)
If Len(MyNumber) = 1 Then
If Trim(Words) = "Thousand" Or _
Trim(Words) = "Lakh Thousand" Or _
Trim(Words) = "Lakh" Or _
Trim(Words) = "Crore" Or _
Trim(Words) = "Crore Lakh Thousand" Or _
Trim(Words) = "Arab Crore Lakh Thousand" Or _
Trim(Words) = "Arab" Or _
Trim(Words) = "Kharab Arab Crore Lakh Thousand" Or _
Trim(Words) = "Kharab" Then
Words = ConvertDigit(Temp) & place(iCount)
MyNumber = Left(MyNumber, Len(MyNumber) - 1)
Else
Words = ConvertDigit(Temp) & place(iCount) & Words
MyNumber = Left(MyNumber, Len(MyNumber) - 1)
End If
Else
If Trim(Words) = "Thousand" Or _
Trim(Words) = "Lakh Thousand" Or _
Trim(Words) = "Lakh" Or _
Trim(Words) = "Crore" Or _
Trim(Words) = "Crore Lakh Thousand" Or _
Trim(Words) = "Arab Crore Lakh Thousand" Or _
Trim(Words) = "Arab" Then
Words = ConvertTens(Temp) & place(iCount)
MyNumber = Left(MyNumber, Len(MyNumber) - 2)
Else
'=================================================================
' if only Lakh, Crore, Arab, Kharab
If Trim(ConvertTens(Temp) & place(iCount)) = "Lakh" Or _
Trim(ConvertTens(Temp) & place(iCount)) = "Crore" Or _
Trim(ConvertTens(Temp) & place(iCount)) = "Arab" Then
Words = Words
MyNumber = Left(MyNumber, Len(MyNumber) - 2)
Else
Words = ConvertTens(Temp) & place(iCount) & Words
MyNumber = Left(MyNumber, Len(MyNumber) - 2)
End If
End If
End If
iCount = iCount + 2
Loop
RupeesToWord = "Rupees " & Words & Hundreds & Paisa & " Only"
End Function
' Conversion for hundreds
'*****************************************
Private Function ConvertHundreds(ByVal MyNumber)
Dim Result As String
' Exit if there is nothing to convert.
If Val(MyNumber) = 0 Then Exit Function
' Append leading zeros to number.
MyNumber = Right("000" & MyNumber, 3)
' Do we have a hundreds place digit to convert?
If Left(MyNumber, 1) <> "0" Then
Result = ConvertDigit(Left(MyNumber, 1)) & " Hundreds "
End If
' Do we have a tens place digit to convert?
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & ConvertTens(Mid(MyNumber, 2))
Else
' If not, then convert the ones place digit.
Result = Result & ConvertDigit(Mid(MyNumber, 3))
End If
ConvertHundreds = Trim(Result)
End Function
' Conversion for tens
'*****************************************
Private Function ConvertTens(ByVal MyTens)
Dim Result As String
' Is value between 10 and 19?
If Val(Left(MyTens, 1)) = 1 Then
Select Case Val(MyTens)
Case 10 : Result = "Ten"
Case 11 : Result = "Eleven"
Case 12 : Result = "Twelve"
Case 13 : Result = "Thirteen"
Case 14 : Result = "Fourteen"
Case 15 : Result = "Fifteen"
Case 16 : Result = "Sixteen"
Case 17 : Result = "Seventeen"
Case 18 : Result = "Eighteen"
Case 19 : Result = "Nineteen"
Case Else
End Select
Else
' .. otherwise it's between 20 and 99.
Select Case Val(Left(MyTens, 1))
Case 2 : Result = "Twenty "
Case 3 : Result = "Thirty "
Case 4 : Result = "Forty "
Case 5 : Result = "Fifty "
Case 6 : Result = "Sixty "
Case 7 : Result = "Seventy "
Case 8 : Result = "Eighty "
Case 9 : Result = "Ninety "
Case Else
End Select
' Convert ones place digit.
Result = Result & ConvertDigit(Right(MyTens, 1))
End If
ConvertTens = Result
End Function
Private Function ConvertDigit(ByVal MyDigit)
Select Case Val(MyDigit)
Case 1 : ConvertDigit = "One"
Case 2 : ConvertDigit = "Two"
Case 3 : ConvertDigit = "Three"
Case 4 : ConvertDigit = "Four"
Case 5 : ConvertDigit = "Five"
Case 6 : ConvertDigit = "Six"
Case 7 : ConvertDigit = "Seven"
Case 8 : ConvertDigit = "Eight"
Case 9 : ConvertDigit = "Nine"
Case Else : ConvertDigit = ""
End Select
End Function
和
選擇總價場的表現,加上就像那個
=Code.RupeesToWord(Fields!deci_NetAmt.Value)
或者,如果你需要的頁腳的頁面添加像這樣
=Code.RupeesToWord(Sum(ReportItems!deci_NetAmt.Value))
上述代碼存在錯誤。
Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
'Paisa = " and " & ConvertTens(Temp) & " Paisa"
Paisa = ""
在你需要派薩之前刪除'像上面的代碼:
Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
Paisa = " and " & ConvertTens(Temp) & " Paisa"
Paisa = ""
現在,這會幫助你工作的罰款。
上述代碼存在錯誤。
Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
'Paisa = " and " & ConvertTens(Temp) & " Paisa"
Paisa = ""
在您需要刪除和替換吹代碼
Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
if Temp >0 then
Paisa = " and " & ConvertTens(Temp) & " Paisa"
end if
RupeesToWord是給錯誤,而試圖讓表達上面的代碼。 – Sribin
刪除 - ' - 從行的開始 - 'Paisa =「和」ConvertTens(Temp)&「Paisa」 - 現在工作正常 – Sribin