本指南描述了在 Visual Studio 设计时刻如何创建和保存报表 样式表,并且在运行时刻有条件地加载。
要管理报表的样式表,则执行下列操作。
-
创建一个有下列布局的 表格报表。
-
为了管理报表的样式表,单击报表的 智能标记,并在被调用的操作列表中,单击 XtraReport.StyleSheet 属性的省略号按钮。
-
在被调用的 Styles Editor 中,新建一个样式 (命名为 myOddStyle),并把它保存为三个独立的样式表 (分别命名为 myStyle_Rose.repss、myStyle_Yellow.repss 和 myStyle_Blue.repss),每个样式表都有不同的 BackColor 设置,都在应用程序目录中的 Styles 文件夹内。
在保存样式表之后,单击 Close 按钮关闭此对话框。
-
为把样式指派到细节带区中的 XRTable 控件,在 属性 窗口中,展开控件的 XRControl.Styles 属性,并把 OddStyle 属性指定为所创建的 myOddStyle。
-
现在,切换到 Form1 的设计器。 把标准的 ComboBox 控件拖放到窗体中。 选中组合框控件,在 属性 窗口中,找到它的 Items 属性并单击省略号按钮,以便于创建组合框选项。 在被调用的对话框中,输入三个选项 —— Rose"、"Yellow" 和 "Blue",然后单击 OK 按钮。
-
同样,把一个按钮和 (DX: Win.v10.2 工具栏标签页中的) PrintControl 控件拖放到窗体上。 后者将被用于输出报表。
-
现在,以程序方式把样式表指派到报表,所指派的样式表取决于组合框中选中的选项。
C# 复制代码 using System; using System.Windows.Forms; using DevExpress.XtraReports.UI; // ... XtraReport1 report; string path = ""; private void buttonPreview_Click(object sender, EventArgs e) { string sheetName = ""; // Define the appropriate style sheet based upon the selected combo box item. switch(comboBox1.Text) { case "Rose": sheetName = "myStyle_Rose.repss"; break; case "Yellow": sheetName = "myStyle_Yellow.repss"; break; case "Blue": sheetName = "myStyle_Blue.repss"; break; } // Set the report's StyleSheetPath property, to define the report's style sheet. report.StyleSheetPath = path + sheetName; // Create a report document. report.CreateDocument(); } private void Form1_Load(object sender, EventArgs e) { // Initialize the report. report = new XtraReport1(); // Associate the report with the PrintControl. printControl1.PrintingSystem = report.PrintingSystem; // Set the first combo box' item as default. comboBox1.SelectedIndex = 0; // Define a relative start-up path, so that styles are loaded // regardless of the application's location. path = Application.StartupPath + @"\..\..\Styles\"; }
Visual Basic 复制代码 Imports System Imports System.Windows.Forms Imports DevExpress.XtraReports.UI ' ... Private report As XtraReport1 Private path As String = "" Private Sub ButtonPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles ButtonPreview.Click Dim sheetName As String = "" ' Define the appropriate style sheet based upon the selected combo box item. Select Case ComboBox1.Text Case "Rose" sheetName = "myStyle_Rose.repss" Case "Yellow" sheetName = "myStyle_Yellow.repss" Case "Blue" sheetName = "myStyle_Blue.repss" End Select ' Set the report's StyleSheetPath property, to define the report's style sheet. report.StyleSheetPath = path & sheetName ' Create a report document. report.CreateDocument() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _ Handles MyBase.Load ' Initialize the report. report = New XtraReport1() ' Associate the report with the PrintControl. PrintControl1.PrintingSystem = report.PrintingSystem ' Set the first combo box' item as default. ComboBox1.SelectedIndex = 0 ' Define a relative start-up path, so that styles are loaded ' regardless of the application's location. path = Application.StartupPath & "\..\..\Styles\" End Sub
现在任务已经完成。 运行打印预览窗体,并查看结果。
Show Me |
---|
在 DevExpress Code Central 数据库中可以找到完整的示例项目,网址是 http://www.devexpress.com/example=E486。 取决于目标平台类型 (ASP.NET、WinForms 等),可以在线运行本示例,或者下载自动可执行的示例。 |