Lenka.Guo 发表于 2020-8-28 16:48:00

桌面设计器如何实现自定义数据源按钮

本帖最后由 Lenka.Guo 于 2020-8-28 16:49 编辑

很多客户需要将桌面设计器嵌入的Winform系统当中,那最重要的一步是面向最终用户在设计报表时,内置好数据源设置,让客户不需要自己在绑定数据并且为不同用户定制可用的数据。

本文主要介绍了如何在桌面设计器示例中,添加自定义按钮后,为报表添加数据源。

1. 添加按钮



2. 添加 Button_Click 事件
    private void button1_Click(object sender, EventArgs e)
      {

                // create DataSource for the report
                DataSource dataSource = new DataSource();
                dataSource.Name = "DataSource2";
                dataSource.ConnectionProperties.DataProvider = "ODBC";
                dataSource.ConnectionProperties.ConnectString = ExpressionInfo.FromString("DRIVER=SQLITE3 ODBC DRIVER;DATABASE=Data\\ArsDemo.db");
                //Create DataSet with specified query and load database fields to the DataSet
                DataSet dataSet = new DataSet();
                Query query = new Query();
                dataSet.Name = "DataSet1";
                query.DataSourceName = "DataSource2";
                query.CommandType = QueryCommandType.Text;
                query.CommandText = ExpressionInfo.FromString("select * from 订单");
                dataSet.Query = query;

                String[] fieldsList = new String[] { "订单ID", "客户ID", "雇员ID", "订购日期" };

                foreach (string fieldName in fieldsList)
                {
                  Field field = new Field(fieldName, fieldName, null);
                  dataSet.Fields.Add(field);
                }
      GrapeCity.ActiveReports.PageReport report = reportDesigner.Report as PageReport;
            //create report definition with specified DataSet and DataSource
            report.Report.DataSources.Add(dataSource);
            report.Report.DataSets.Add(dataSet);

            reportDesigner.Report = report;
            reportExplorer.ReportDesigner = reportDesigner;
            reportDesigner.Refresh();

      }



该代码中展示了两步骤
1. 添加数据源和数据集,并设置数据源类型。
2. 获取当前设计器的报表对象后,为报表添加数据源和数据集。


这样的话在展示设计器后,添加数据源的时候 需要调用代码刷新数据源节点。
            reportDesigner.Report = report;
            reportExplorer.ReportDesigner = reportDesigner;
            reportDesigner.Refresh();


页: [1]
查看完整版本: 桌面设计器如何实现自定义数据源按钮