本指南描述了在 Visual Studio 设计时刻如何创建和保存报表 样式表,并且在运行时刻有条件地加载。

要管理报表的样式表,则执行下列操作。

  1. 创建一个有下列布局的 表格报表

  2. 为了管理报表的样式表,单击报表的 智能标记,并在被调用的操作列表中,单击 XtraReport.StyleSheet 属性的省略号按钮。

  3. 在被调用的 Styles Editor 中,新建一个样式 (命名为 myOddStyle),并把它保存为三个独立的样式表 (分别命名为 myStyle_Rose.repssmyStyle_Yellow.repssmyStyle_Blue.repss),每个样式表都有不同的 BackColor 设置,都在应用程序目录中的 Styles 文件夹内。

    在保存样式表之后,单击 Close 按钮关闭此对话框。

  4. 为把样式指派到细节带区中的 XRTable 控件,在 属性 窗口中,展开控件的 XRControl.Styles 属性,并把 OddStyle 属性指定为所创建的 myOddStyle

  5. 现在,切换到 Form1 的设计器。 把标准的 ComboBox 控件拖放到窗体中。 选中组合框控件,在 属性 窗口中,找到它的 Items 属性并单击省略号按钮,以便于创建组合框选项。 在被调用的对话框中,输入三个选项 —— Rose"、"Yellow" 和 "Blue",然后单击 OK 按钮。

  6. 同样,把一个按钮和 (DX: Win.v10.2 工具栏标签页中的) PrintControl 控件拖放到窗体上。 后者将被用于输出报表。

  7. 现在,以程序方式把样式表指派到报表,所指派的样式表取决于组合框中选中的选项。

    C#CopyCode image复制代码
    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 BasicCopyCode image复制代码
    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
    

现在任务已经完成。 运行打印预览窗体,并查看结果。

CodeCentralShow Me

在 DevExpress Code Central 数据库中可以找到完整的示例项目,网址是 http://www.devexpress.com/example=E486。 取决于目标平台类型 (ASP.NET、WinForms 等),可以在线运行本示例,或者下载自动可执行的示例。

Expand image参阅