Launching Older Versions of Reporting Intelligence from VBA
The information in this article applies to Reporting Intelligence version 18.5 and earlier. For newer versions see the article Launching Reporting Intelligence from VBA.
Overview
If you write macros in Excel or want to launch older versions of Reporting Intelligence from another application, you can launch Excel, update report options, refresh the report and print. Below is some sample code that demonstrates how to do this.
Step-by-Step Process
-
Start Excel
Create a new macro subroutine and add an Object variable to allow you to create a new Excel instance.
Sub JetUpdate()
Dim XLApp as Object
Set XLApp = New Excel.Application
-
Make Excel visible and interactive
Workbooks don't necessarily start in a mode that is visible or interactive.
If the user will interact with the workbook, you need to set the following two values:
XLApp.Visible = True
XLApp.Interactive = True
-
Open the Jet add-in
Add-ins do not automatically open when using automation, so theReporting Intelligence Excel add-in must be opened manually. You must also open any other add-ins that you need.
XLApp.Application.Workbooks.Open ("C:\Program Files (x86)\JetReports\jetreports.xlam") -
Open the report workbook
XLApp.Application.Workbooks.Open ("C:\MyReports\ReportName.xlsx") -
Update the report options
Update the report options. The option values are in single cell named ranges.
XLApp.Application.Workbooks("ReportName.xlsx").Names.Item("DateFilter").RefersToRange.Value ="1/1/2018..3/31/2018" -
Run the Reporting Intelligence report
In Reporting Intelligence versions 2018 R2, the menu option is named RUN
XLApp.Application.Run "JetReports.xlam!JetMenu", "Run"
In earlier versions, the menu option is named REPORT
XLApp.Application.Run "JetReports.xlam!JetMenu", "Report"
-
Print the Worksheet which contains the report
If you want to help with viewer in printing the report, choose a worksheet and launch the print preview (the user can then print the report, if desired).
XLApp.Application.Workbooks("ReportName.xlsx").PrintPreviewTo avoid the message asking if the workbook should be saved, you can mark it as already saved.
XLApp.Application.Workbooks("ReportName.xlsx").Saved = TRUEBe careful with this. You are assuming that the workbook does not actually need to be saved.
-
Close Excel
Close Excel and end your macro
XLApp.Quit
End Sub