Although ActiveReports writes report layouts in either C# or Visual Basic.NET, you can save the layout of your report as a report XML (RPX) file for portability. If you make changes to the RPX file and load it back into an ActiveReport in Visual Studio, you can see the changes you made reflected in the C# or Visual Basic.NET code in the YourReportName.Designer.vb or YourReportName.Designer.cs file.
Caution: When you load an RPX layout into a report object, it overwrites everything in the report object. In order to avoid overwriting important layouts, create a new blank ActiveReport and load the RPX file into the new report. |
Note: When you save a layout that contains a dataset, ActiveReports saves the data adapter and data connection in the component tray, but not the dataset itself. When the saved layout is loaded into another report, you can regenerate the dataset with the data adapter and data connection. |
Save report layouts before they run. If you save a layout after the report runs, you also save any dynamic changes made to properties or sections in the report. To avoid this when you call SaveLayout inside the report code, use the ReportStart event.
Important: When you save a report layout, ActiveReports only saves the code in the script editor to the file. Any code behind the report in the .cs or .vb file is not saved to the RPX file. For more information, see the Add Code to Layouts Using Script |
The following examples show what the code for the method looks like.
To write the code in Visual Basic.NET
Visual Basic.NET code. Paste INSIDE the Form class. |
Copy Code |
---|---|
Private Sub SaveRPX() Dim rpt As New DataDynamics.ActiveReports.ActiveReport() rpt.Run() rpt.SaveLayout("C:\NewRPX.RPX") End Sub |
To write the code in C#
C# code. Paste INSIDE the Form class. |
Copy Code |
---|---|
private void SaveRPX() { DataDynamics.ActiveReports.ActiveReport rpt = new DataDynamics.ActiveReports.ActiveReport(); rpt.Run(); rpt.SaveLayout(@"C:\NewRPX.RPX"); } |
Note: The SaveLayout method uses utf-16 encoding when you save to a stream, and utf-8 encoding when you save to a file. |
The following examples show what the code for the method looks like.
To write the code in Visual Basic.NET
Visual Basic.NET code. Paste INSIDE the Form class. |
Copy Code |
---|---|
Dim rpt As New DataDynamics.ActiveReports.ActiveReport() Private Sub LoadRPX() rpt.LoadLayout("C:\NewRPX.RPX") Viewer1.Document = rpt.Document rpt.Run() End Sub |
To write the code in C#
C# code. Paste INSIDE the Form class. |
Copy Code |
---|---|
private void LoadRPX() { DataDynamics.ActiveReports.ActiveReport rpt = new DataDynamics.ActiveReports.ActiveReport(); rpt.LoadLayout(@"C:\NewRPX.rpx"); viewer1.Document = rpt.Document; rpt.Run(); } |