Login / Register  search  syndication  about

          Jason Buss' Blog

Jason Buss on SalesLogix development & customization, SQL, and more.

Setting conditions for Crystal Reports in SalesLogix LAN

I wanted to quickly outline a process for passing a condition to a Crystal report in two simple steps.  Say you've created an account report that you want to launch via a button on the account detail, limited to the current account record.

Step 1, Setting up the button:

The button is going to do two things:  Set the current accountid to a global variable, and launch the report.

Sub Button1Click(Sender)
    Application.BasicFunctions.GlobalInfoSet "gAccountID", Application.BasicFunctions.CurrentAccountID
    Application.BasicFunctions.DoInvoke "CrystalReportPreview", "Account:New Account Report"
End Sub

Step 2, pass the current ID to the launched report:

In order to pass the ID to the report, we need to create a VB Script which grabs the Global Variable, then passes it to the report using the ReportAddCondition function found under Application.BasicFunctions.  This script is attached to the report via the report properties set under manage|Crystal Reports.

The new script is named Account Report Add Condition, and contains:

Sub Main
Dim AccID

    AccID = Application.BasicFunctions.GlobalInfoFor("gAccountID")
    Application.BasicFunctions.ReportAddCondition "AccountID", "=", AccID, "String", ""
    Application.BasicFunctions.GlobalInfoClear "gAccountID")

end sub

Three things are happening here.  First of all, we're assigning a local variable to the ID contained in the Global Variable.  Next, we add the condition to the report, and finally, we clear the global variable.  Once the script is saved, go to the menu item "Manage|Reports", select the report you want to add the condition to and view the properties of the report.  On the Execution tab, add the script to the When Open event.


That's all there is to it!  You now have a button on account detail which launches your new report for the current opportunity record.

What's This?
Bookmark and Share

About Jason Buss

   Jason is a senior application developer with Customer FX.

Related Content
   Using Global Script functions in InforCRM
I recently had a project that required me to be able to check if a user belonged to a particular team.
Posted on May 05, 2015 by Jason Buss to Jason Buss' Blog
   Better Code Organization for Infor CRM (Saleslogix) Mobile Customizations
When customizing the Infor CRM (Saleslogix) Mobile client, it's common for the ApplicationModule to g
Posted on May 05, 2015 by Ryan Farley to Ryan Farley's Blog
   Index of Posts for Starting with Infor CRM (Saleslogix) Development
The blogs on customerfx.com go all the way back to 2003. There's years and years worth of information
Posted on Dec 30, 2014 by Ryan Farley to Ryan Farley's Blog
   Telnet Sample to Send an SMTP email
I am always forgetting how to test sending an email through an SMTP gateway using the Telnet client. 
Posted on Dec 12, 2014 by Kris Halsrud to Kris Halsrud's Blog
   Problem setting SLXTextbox enabled property / Setting unexposed base control properties for a custom control
I recently had an issue with a Quickform where I was attempting to set the Enabled property of a TextBox
Posted on Dec 05, 2014 by Jason Buss to Jason Buss' Blog


Mike Douglas said:


Been doing similar for some years in slx 62. Hit an issue when you get 72 and beyond. Whilst the above still work fine for a report called from a button, the script does not run for reports called from the normal reports menu system within LAN. Which is a major pain. Just doing an upgrade at present and a lot of the reports have code which would run on OnOpen

June 26, 2009 7:45 AM

Leave a Comment

All contents Copyright © 2015 Customer FX Corporation
Customer FX Corporation
2324 University Avenue West, Suite 115
Saint Paul, Minnesota 55114
Tel: 800.728.5783

  Follow @CustomerFX on twitter
Follow the best news, tips, and articles
  Subscribe to Customer FX on youtube
Watch SalesLogix tutorial videos from Customer FX
Login / Register