Tuesday 13 September 2011

Display Group Header In New Page In SSRS Reports.

Hi ..

The following are the steps to display the groups in new page..

Step 1 : Create a Report with one tablix .

Step 2 : Right click on the detail section Select Add group.

Step 3 : Select the column which you want to group.

Step 4 : Click OK.

Step 5 : Right click on the detail section Select Add group.

Step 6 : Right Click on the Group and select row group and then select group properties.

Step 7 : Select the column name for grouping .

Step 8 : In the Page Break section Check the check box.

Step 9 : Click OK.

Step 10 : Export the report.

Following image describes how to check the page breaks for
parent group.

Please let know if you have solve this Issue ... 
Thank You ...


Wednesday 6 July 2011

Indian Currency Format for SSRS Report

Following Steps are to Format the Numbers in Indian Format :- 

Step :1 =Right(Cstr(format(Sum(Fields!salary.Value),
"##\,##\,##\,##\,##\,##\,##0.00")), Len(CStr(Format(Sum(Fields!salary.Value),"N2"))))

OR

1. delete your existing format expression
2. click on your report in design mode
3. press F4 to bring up report properties
4. Under language change to hi-IN
5. right-click on your textbox
6. click text-box properties
7. click number 
8. under category select number
9. check the box labeled 'use regional formatting'
10. preview report




Following Steps are to Format the Indian Numbers in Words :-


Step 1: Right click on the report and select the report properties.


Step 2: Select the code and paste the following code. 
Step 3: Right click the textbox select expression then paste this code
             =Code.MyFunction(ReportItems)


The following is the code :-





Function SpellNumber(ByVal MyNumber)
   Dim Rupees, Paise, Temp
   Dim DPlace, Count As Integer
   Dim Places(9) As String
   Places(2) = " Thousand "
   Places(3) = " Lakh "
   Places(4) = " Crore "
   ' String representation of amount.
   MyNumber = Trim(Str(MyNumber))
   ' Position of decimal place 0 if none.
DPlace = InStr(MyNumber, ".")
   ' Convert Paise and set MyNumber to dollar amount.
   If DPlace > 0 Then
       Paise = GetTens(Left(Mid(MyNumber, DPlace + 1) & "00", 2))
       MyNumber = Trim(Left(MyNumber, DPlace - 1))
   End If
   Count = 1
   Do While MyNumber <> ""
       If Count <> 1 Then
          Temp = GetHundreds(Right(MyNumber, 2))
          If Temp <> "" Then Rupees = Temp & Places(Count) & Rupees
          If Len(MyNumber) > 2 Then
          MyNumber = Left(MyNumber, Len(MyNumber) - 2)
          Else
          MyNumber = ""
          End If
       Else
          Temp = GetHundreds(Right(MyNumber, 3))
          If Temp <> "" Then Rupees = Temp & Places(Count) & Rupees
          If Len(MyNumber) > 3 Then
              MyNumber = Left(MyNumber, Len(MyNumber) - 3)
           Else
              MyNumber = ""
           End If
       End If
       Count = Count + 1
   Loop
   Select Case Rupees
       Case ""
           Rupees = " "
       Case "One"
           Rupees = "One Rupees "
        Case Else
           Rupees = Rupees &  " Rupees "
   End Select
   Select Case Paise
       Case ""
           Paise = " Zero Paise "
       Case "One"
           Paise = " and Paise One"
       Case Else
           Paise =   Paise  & " Paise "
   End Select

   If Rupees <> " " Then Paise = " and " & Paise
   SpellNumber = " [ " & Rupees & Paise & " Only ] "
End Function
 
' For us Doller in words  
Function SpellNumberInDollars(ByVal MyNumber)

Dim Dollars, Cents, Temp
Dim DecimalPlace, Count
Dim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
' 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

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 = "No Dollars" Case "One" Dollars = "One Dollar" Case Else Dollars = Dollars & " Dollars" End Select Select Case Cents Case "" Cents = " and No Cents" Case "One" Cents = " and One Cent" Case Else Cents = " and " & Cents & " Cents" End Select SpellNumberInDollars = 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)) & " Hundred "
   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 = ""          
   If Val(Left(TensText, 1)) = 1 Then  
       Select Case Val(TensText)
           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  ' If value between 20-99...
        Select Case Val(Left(TensText, 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
        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 = "One"
        Case 2: GetDigit = "Two"
        Case 3: GetDigit = "Three"
        Case 4: GetDigit = "Four"
        Case 5: GetDigit = "Five"
        Case 6: GetDigit = "Six"
        Case 7: GetDigit = "Seven"
        Case 8: GetDigit = "Eight"
        Case 9: GetDigit = "Nine"
        Case Else: GetDigit = ""
   End Select
End Function





End of Post ....


If you have any problem... let me know ....



Wednesday 8 June 2011

Crystal Report ( Display Numbers in Indian Currency Format )

The Following are the steps to display the numbers in Indian Currency format :-

Step  1:- Right click on the text object which you want to display in Indian currency format. 


Step  2:- Select  Format object and then click on common 


Step  3:- On the right side of display string click on X2 button.  


Step  4:- Write this code in that 
               Totext({Field Name},"##,##,##,##,##,##,##,##,##,##0.00",2)                 


Step  5:- Click on Save and Close 


Step  6:- OK



The Following are the steps to display the numbers in Indian Currency Words :-



Step  1:-Click on Field explorer and Right click on the Formula Field select New. 

Step  2:- Name the Formula Field and Click OK

Step  3:- Now write the following code

numbervar RmVal:=0; 
numbervar Amt:=0; 
numbervar pAmt:=0; 
stringvar Inwards :=" ";
numbervar totalAmt;
totalAmt := Sum ({Field Name});
Amt := totalAmt;

if Amt >= 10000000 then
    RmVal := truncate(Amt/10000000); 
if RmVal = 1 then 
    Inwards := Inwards + " " + towords(RmVal,0) + " crore" 
else 
    if RmVal > 1 then 
        InWords := Inwards + " " + towords(RmVal,0) + " crores";
Amt := Amt - Rmval * 10000000;

RmVal := 0;
if Amt >= 100000 then 
    RmVal := truncate(Amt/100000); 
if RmVal = 1 then 
    InWords := Inwards + " " + towords(RmVal,0) + " lakh"
Else
    If RmVal > 1 then 
        InWords := Inwards + " " + ToWords(RmVal,0) + " Lakhs";
Amt := Amt - Rmval * 100000;

RmVal := 0;
if Amt >= 1000 then 
    RmVal := truncate(Amt/1000);
if RmVal =1 then 
    Inwords := Inwards + " " + towords(RmVal,0) + "Thousand"
Else
    if RmVal > 1 then 
        InWords := Inwards + " " + towords(RmVal,0) + "thousand ";
Amt := Amt - RmVal * 1000;
        
if Amt > 0 then 
    InWords := Inwards + "  " + towords(truncate(Amt),0);

pAmt := (Amt - truncate(Amt)) * 100;

if pAmt > 0 then 
    InWords := Inwards + " rupees and " + towords(pAmt,0) + " paisa only" 
else 
    InWords := Inwards + " rupees only";

UPPERCASE(Inwards) 

Step  4:- Click on Save and Close             

Step  5:- OK


Done