昀迅昊 发表于 2021-11-16 16:00:49

动态数据集手动赋值

本帖最后由 Crystal.Li 于 2021-11-23 17:21 编辑

多个DataSet 如何在这里赋值?
void Document_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
      {
            args.Data = ((DataSet)rs);
      }


      private void tsbtnQry_Click(object sender, EventArgs e)
      {
            GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(System.Environment.CurrentDirectory + ReportPath));
            GrapeCity.ActiveReports.Document.PageDocument document = new GrapeCity.ActiveReports.Document.PageDocument(report);
            document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(Document_LocateDataSource);
            for (int i = 0; i < Parameters.Count; i++)
            {
                if(document.Parameters[((structReportsParameters)Parameters).ParametersID] != null)
                {
                  document.Parameters[((structReportsParameters)Parameters).ParametersID].CurrentValue = ((structReportsParameters)Parameters).ParametersValue;
                }
            }
            viewer2.LoadDocument(document);
      }

Crystal.Li 发表于 2021-11-16 17:45:05

您好,您可以写if判断,判断数据集的名称绑定,参考博客:
JS Viewer 如何绑定动态数据源
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=54413&fromuid=59070
(出处: 葡萄城产品技术社区)


昀迅昊 发表于 2021-11-16 17:53:57

本帖最后由 昀迅昊 于 2021-11-16 17:55 编辑

谢谢,我试试

Crystal.Li 发表于 2021-11-17 09:13:13

昀迅昊 发表于 2021-11-16 17:53
谢谢,我试试

:mj72:

昀迅昊 发表于 2021-11-22 15:51:13

void Document_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
      {
            args.Data = ((DataSet)rs);
      }
这里没办法赋值两个甚至多个Dataset嘛?

Crystal.Li 发表于 2021-11-22 17:28:48

昀迅昊 发表于 2021-11-22 15:51
void Document_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args ...

您好,多个数据集的赋值如第一条回复所说,需要通过if判断数据集名称具体去赋值:

昀迅昊 发表于 2021-11-23 14:43:45

本帖最后由 昀迅昊 于 2021-11-23 15:04 编辑

可以了

Crystal.Li 发表于 2021-11-23 17:21:24

昀迅昊 发表于 2021-11-23 14:43
可以了

:hjyzw:

昀迅昊 发表于 2021-11-29 15:04:44

本帖最后由 昀迅昊 于 2021-11-29 15:21 编辑

      void Document_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
      {

            string DataSetName = "DataSet1";
            MyArrayList rsList = new MyArrayList();
            GetRs(ref rsList);
            DataSet[] DsCunt = new DataSet;
            GrapeCity.ActiveReports.PageReportModel.DataSet dataSet = new GrapeCity.ActiveReports.PageReportModel.DataSet();
            for (int i = 0; i < args.Report.DataSets.Count; i++)
            {
                DataSetName = ((GrapeCity.ActiveReports.PageReportModel.DataSet)args.Report.DataSets).Name;
                DsCunt = (DataSet)rsList;
            }
            args.Data = DsCunt;

      }

昀迅昊 发表于 2021-11-29 15:07:23

我现在有3个 DataSet1,DataSet2,DataSet3,需要赋值到args.Data里面,模板里面已经定义了3个数据集
页: [1] 2
查看完整版本: 动态数据集手动赋值