scchao1986 发表于 2015-3-25 10:05:00

动态报表导出时,如何取得客户已输入的参数呢?

如果我在参数里面输入了值,然后进行了展示,如何在点导出时在后台取得已输入过的参数呢,或者有什么办法可以直接取到当前已生成的报表对象

frank.zhang 发表于 2015-3-25 12:15:00

您好,
取得输入的参数要使用动态数据源绑定。通过args.Report.Parameters.Label记录参数。
      protected void WebViewer1_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
      {
            string productId = args.Report.Parameters.Label;
            string connStr = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};", Server.MapPath("/Data/NWind_CHS.mdb"));
            string productSql = string.Format("SELECT * From 产品 where 产品ID = {0}", productId);
            DataLayer dl = new DataLayer(connStr, productSql);
            args.Data = dl.DataSetData.Tables["产品"];
      }

    internal sealed class DataLayer
    {
      private DataSet dataSetData;
      public DataLayer(string connStr, string productSql)
      {
            LoadDataToDataSet(connStr, productSql);
      }

      public DataSet DataSetData
      {
            get { return dataSetData; }
      }

      private void LoadDataToDataSet(string connStr, string productSql)
      {
            dataSetData = new DataSet();
            OleDbConnection conn = new OleDbConnection(connStr);
            OleDbCommand cmd = new OleDbCommand(productSql, conn);
            OleDbDataAdapter adapter = new OleDbDataAdapter();
            adapter.SelectCommand = cmd;
            adapter.Fill(dataSetData, "产品");
      }
    }

scchao1986 发表于 2015-4-2 11:12:00

回复 2楼frank.zhang的帖子

你好,这个事件怎么触发呢,我这里试了触发不了

frank.zhang 发表于 2015-4-2 16:10:00

您好,
触发的事件在另外的帖子内回复
http://gcdn.gcpowertools.com.cn/showtopic-16417.html
页: [1]
查看完整版本: 动态报表导出时,如何取得客户已输入的参数呢?