RE-Decoded

A technical look at the Raiser’s Edge API from Blackbaud

Opening a custom Crystal Report from code

October 8th, 2007 by David Zeidman

Have you ever wanted to call your own Crystal Report from a custom user form? Here is how… 

In this example I have a UserForm, a button, a text field for the constituent id and a Crystal Report Control. You will need to go to the control toolbox and add this control before it can be added to your form. All of the constants (variables in upper case) have been previously defined somewhere in the code.

Private Sub cmdReport_Click() 

    Dim sMsg As String    CrystalReport1.Connect = "DSN = " + ODBCSource + ";UID = " + DBUID + ";PWD = " + DBPWD 

    CrystalReport1.ReportFileName = REPORT_LOC 

    CrystalReport1.Formulas(0) = "CurrentConstituent=" & txtConstituentId.text 

    CrystalReport1.Destination = crptToWindow 

    CrystalReport1.PrintReport 

    sMsg = CrystalReport1.LastErrorString 

    If Not sMsg = "" Then 

        MsgBox sMsg 

    End If 

End Sub

Many of the parameters for the Crystal Report control can be entered into the parameters box in the IDE but for the greatest flexibility it is possible to steer everything in the code too.

The most useful is the formulas collection. In my Crystal Report I have parameter called “CurrentConstituent”. I use this parameter to filter the records to be shown. In this case it will only show the specific constituent’s details. You can decide where the Crystal should appear using the Destination parameter. Most commonly you will want this to go the the screen but you may want it to be printed directly.

If there is an error in displaying the report then the LastErrorString will let you know what it is and is a good way of debugging the link to Crystal.

No related posts.

Posted in Intermediate |

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.