找回密码
 立即注册

QQ登录

只需一步,快速开始

szg_xn

金牌服务用户

5

主题

15

帖子

46

积分

金牌服务用户

积分
46
最新发帖
szg_xn
金牌服务用户   /  发表于:2024-10-30 18:31  /   查看:428  /  回复:10
1金币

10 个回复

倒序浏览
szg_xn
金牌服务用户   /  发表于:2024-10-30 18:33:59
沙发
1.报表设计时需要如何设置?
2,程序里给AR报表动态赋值DATASET的具体代码和相关变量类型是怎么的?
回复 使用道具 举报
wengMQ悬赏达人认证
银牌会员   /  发表于:2024-10-30 23:09:51
板凳
PgReport.Document.LocateDataSource += new LocateDataSourceEventHandler(OnLocateDataSource);

private void OnLocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
        {
            if (args.DataSet.Query.DataSourceName == "DsSour")
            {
                DataTable R_Data = new DataTable ();
                if (R_Data != null)
                {
                    if (args.DataSet.Name == R_Data.Tables[0].TableName)
                    {
                        args.Data = R_Data;
                     
                    }
                }
            }
        }
回复 使用道具 举报
wengMQ悬赏达人认证
银牌会员   /  发表于:2024-10-30 23:11:37
地板
全顺软件 - 物流系统、ERP管理系统中的报表开发与维护模式 - 成功案例 - 葡萄城官网  https://www.grapecity.com.cn/casestudies/jjqs

有兴趣可以加我QQ546962925
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2024-10-31 08:44:25
5#
您好,针对运行时数据源的动态赋值您可以参考这个链接:
https://help.grapecity.com.cn/pa ... tion?pageId=5968533
回复 使用道具 举报
szg_xn
金牌服务用户   /  发表于:2024-10-31 13:23:06
6#
reportName = mainForm.m_strDataFilePath + "listReport.rdlx";
GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(reportName));
            
//显示报表
viewer1.LoadDocument(report.Document);
这是我程序里调用报表的代码,在显示报表之前,请给出动态赋值数据源需要C#实现的具体代码。
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2024-10-31 13:40:42
7#
szg_xn 发表于 2024-10-31 13:23
reportName = mainForm.m_strDataFilePath + "listReport.rdlx";
GrapeCity.ActiveReports.PageReport rep ...

您看一下楼上的版主和大佬给您的回复,有代码示例:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
szg_xn
金牌服务用户   /  发表于:2024-10-31 15:57:31
8#
reportName = mainForm.m_strDataFilePath + "listReport.rdlx";
GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(reportName));
请在我给出的代码里补充,c#和AR18的实际代码应该怎么用,谢谢
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2024-10-31 16:31:21
9#
szg_xn 发表于 2024-10-31 15:57
reportName = mainForm.m_strDataFilePath + "listReport.rdlx";
GrapeCity.ActiveReports.PageReport rep ...

您好,可以参考下面的代码进行实现,下面的代码是我用18实现的。
  1. private void viewer1_Load(object sender, EventArgs e)
  2. {
  3.      System.IO.FileInfo rptPath = new System.IO.FileInfo(@"demo.rdlx");
  4.      GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(rptPath);
  5.      report.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(Document_LocateDataSource);
  6.      this.viewer1.LoadDocument(report.Document);
  7. }
  8. void Document_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
  9. {
  10.      if (args.DataSet.Query.DataSourceName == "DataSource1")
  11.      {
  12.          if (args.DataSet.Name == "DataSet1")
  13.          {
  14.              args.Data = GetData();
  15.          }
  16.      }
  17. }

  18. private DataTable GetData()
  19. {
  20.      DataTable dt = new DataTable();

  21.      dt.Columns.Add("Col1");
  22.      dt.Columns.Add("Col2");
  23.      dt.Columns.Add("Col3");

  24.      dt.Rows.Add(1, 1, 10);
  25.      dt.Rows.Add(2, 1, 10);
  26.      dt.Rows.Add(3, 1, 10);
  27.      dt.Rows.Add(4, 1, 10);
  28.      dt.Rows.Add(5, 1, 10);
  29.      dt.Rows.Add(6, 1, 10);

  30.      return dt;
  31. }
复制代码
注意数据源,数据集的名称,以及数据集的字段名称要和代码的保持一致。
运行效果:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
szg_xn
金牌服务用户   /  发表于:2024-10-31 17:59:31
10#
c#里代码如下,没有编译错误,运行也正常:
private void listreport_Load(object sender, EventArgs e)
        {
            reportName = mainForm.m_strDataFilePath + "listReport.rdlx";
            GrapeCity.ActiveReports.PageReport report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(reportName));
            report.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(Document_LocateDataSource);
            //显示报表
            viewer1.LoadDocument(report.Document);
        }
        void Document_LocateDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
        {
            if (args.DataSet.Query.DataSourceName == "DataSource1")
            {
                if (args.DataSet.Name == "DataSet1")
                {
                    args.Data = GetData();
                }
            }
        }
        private DataTable GetData()
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("Col1");
            dt.Columns.Add("Col2");
            dt.Columns.Add("Col3");
            dt.Columns.Add("Col4");
            dt.Columns.Add("Col5");

            dt.Rows.Add(1, 1, 10, 11, 12);
            dt.Rows.Add(2, 1, 10, 11, 12);
            dt.Rows.Add(3, 1, 10, 11, 12);
            dt.Rows.Add(4, 1, 10, 11, 12);
            dt.Rows.Add(5, 1, 10, 11, 12);
            dt.Rows.Add(6, 1, 10, 11, 12);

            return dt;
        }

listReport.rdlx报表内容如下:


运行程序后,显示结果如下:

动态赋值的数据没有显示出来,是哪里的问题啊?


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部