Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2008 Forums
 Analysis Server and Reporting Services (2008)
 correct the code(indian currency format in words)

Author  Topic 

vinu
Starting Member

34 Posts

Posted - 2010-11-04 : 03:34:23
hi....

i've developed on ssrs report which displays the number
in words i.e in million and billion..

i want it in crores ,lakhs,thousands,hundreds,rupees and paise..

can any one modifiy the code below..

which is in reports properties->code tab..
the below is my code which is of million and billion dollars and cents....



SHARED suffixes AS String() ={"Thousand ", "Million ", "Billion ", "Trillion ","Quadrillion ", "Quintillion ", "Sextillion "}

SHARED units AS String() ={"","One ", "Two ", "Three ", "Four ", "Five ","Six ", "Seven ", "Eight ", "Nine "}

SHARED tens AS String() ={"Twenty ", "Thirty ", "Forty ", "Fifty ", "Sixty ","Seventy ", "Eighty ", "Ninety "}

SHARED digits AS String() ={"Ten ","Eleven ", "Twelve ", "Thirteen ", "Fourteen ","Fifteen ", "Sixteen ", "Seventeen ", "Eighteen ", "Nineteen"}

SHARED expr AS NEW System.Text.RegularExpressions.Regex("^-?\d+(\.\d{2})?$",System.Text.RegularExpressions.RegexOptions.None)

Public Function ExpandPrice(Price AS Double, Optional pSeparator AS String = ",") AS String

Dim pPrice As String
pPrice = FORMAT(Price,"##############.00")

Dim temp AS New System.Text.StringBuilder()
If Not expr.IsMatch(pPrice) Then
' temp.Append(pPrice) or whatever you want to do here
Else
Dim parts AS String() = pPrice.Split(pSeparator)
Dim dollars AS String = parts(0)
Dim cents AS String = parts(1)
If CDbl(dollars) > 1 Then
temp.Append(ExpandIntegerNumber(dollars) & "Dollars ")
If CInt(cents) > 0 Then
temp.Append("And ")
End If

ElseIf CDbl(dollars) = 0 Then
temp.Append(ExpandIntegerNumber(dollars) & "Zero Dollars ")

If CInt(cents) >= 0 Then
temp.Append("And ")
End If

ElseIf CDbl(dollars) = 1 Then

temp.Append(ExpandIntegerNumber(dollars) & "Dollar " )

End If

If CDbl(cents) > 1 Then

temp.Append(ExpandIntegerNumber(cents) & "Cents")

ElseIf CDbl(cents) = 0 Then

temp.Append(ExpandIntegerNumber(cents) & "Zero Cents ")

ElseIf CDbl(cents) = 1 Then

temp.Append(ExpandIntegerNumber(cents) & "Cent " )

End If

End If

RETURN temp.ToString()

End Function

Function ExpandIntegerNumber(pNumberStr AS String) AS String

Dim temp2 AS New System.Text.StringBuilder()

Dim number AS String =StrDup(3 - Len(pNumberStr) Mod 3, "0") & pNumberStr

Dim i AS Integer, j AS Integer = -1

Dim numPart AS String

For i = Len(number) - 2 To 1 Step -3

numPart = Mid(number, i, 3)

If Clng(numPart > 0) Then

If j > -1 Then

temp2.Insert(0,suffixes(j),1)

End If

End If

temp2.Insert(0,GetNumberUnder1000Str(numPart),1)

j += 1

Next

RETURN temp2.ToString()

End Function

Function GetNumberUnder1000Str(pNumber AS String) AS String

Dim temp1 AS New System.Text.StringBuilder()

If Len(pNumber) = 3 Then

If CLng(Left(pNumber, 1)) > 0 Then

temp1.Append(GetNumberUnder100Str(Left(pNumber, 1)) & "Hundred ")

End If

End If

temp1.Append(GetNumberUnder100Str(Right("0" & pNumber, 2)))

RETURN temp1.ToString()

End Function

Function GetNumberUnder100Str(pNumber AS String) AS String

If pNumber > 19 Then

RETURN tens(Left(pNumber, 1) - 2) & units(Right(pNumber, 1))

ElseIF pNumber >= 10 and pNumber <= 19 Then

RETURN digits(Right(pNumber, 1))

Else

RETURN units(Right(pNumber, 1))

End If

End Function



please modify the code..

webfred
Master Smack Fu Yak Hacker

8781 Posts

Posted - 2010-11-04 : 04:38:01
Your profile shows that you are opening many threads about the same problem.
Please don't do that.
- correct the code(indian currency format in words)
- please correct the code (indian number format code
- total number format in indian currency
- format the number in indian currency format



No, you're never too old to Yak'n'Roll if you're too young to die.
Go to Top of Page
   

- Advertisement -