找回密码
 立即注册

QQ登录

只需一步,快速开始

muhuiru

社区贡献组

65

主题

203

帖子

580

积分

社区贡献组

积分
580

活字格认证

muhuiru
社区贡献组   /  发表于:2021-1-15 11:23  /   查看:5513  /  回复:16
JS Viewer 怎么给报表传参

16 个回复

正序浏览
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-1-21 14:01:40
17#
这个方法操作步骤是比之前多,但reportId传参会有字符限制,不是不很完善
回复 使用道具 举报
muhuiru
社区贡献组   /  发表于:2021-1-21 13:57:33
16#
这个方法是可以,但是总感觉有些绕,先从前台传到报表,又从后台取出来处理,但实际这些参数在报表中并不需要,只是在后台加载数据源的时候使用
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-1-21 12:33:53
15#
您好
JSViewer 前台传递参数demo 如附件:


操作步骤:


1. 在报表文件中添加对应的报表参数



2. 在数据集中添加数据集参数,并以将数据集参数 与报表参数对应起来,以帮助在代码中获取前台传进来的参数值。





3.  页面中调用JSViewer 前台API 传参

注意传参的名称一定要和报表中声明的参数名称匹配。
初始化 Viewer 传参:
  1. reportParameters: [{ name: 'P1', values: [1,2,3] },
  2.                            { name: 'P2', values: ['Reports参数2'] }
  3.         ],
复制代码




openReport 传参:

  1. viewer.openReport('RdlReport1.rdlx', [{ name: 'P1', values: ['a1'] }, { name: 'P2', values: ['a2'] }]);
复制代码




本帖子中包含更多资源

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

x
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-1-20 16:24:03
14#
你那边可以提供一个能够重现你问题的demo不,我们这边跟进你提供的demo帮你进行调整下
回复 使用道具 举报
muhuiru
社区贡献组   /  发表于:2021-1-20 12:01:43
13#

本帖子中包含更多资源

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

x
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-1-20 10:37:58
12#
那应该就是你的写法哪里有问题,你断点调试可以进行Startup里面没有,然后你看看我给你的博客,那个GetReport()的那个方法的前后的写法,要这样使用必须要进入该方法才行:
  1.   public void Configuration(IAppBuilder app)
  2.         {
  3.         
  4.             app.UseReporting(settings =>
  5.             {
  6.                 settings.UseCompression = true;
  7.                 settings.UseCustomStore(GetReport);//使用UseCustomStore来自定义一些需要的值
  8.                 //settings.UseFileStore(new DirectoryInfo(String.Format(@"{0}.\Reports", HttpRuntime.AppDomainAppPath)));               
  9.                 settings.LocateDataSource = args =>
  10.                 {
  11.                     DataTable dt = new DataTable();
  12.                     string name = ReportName;
  13.                     args.Report.Dispose();//释放内存
  14.                     //var p = args.Parameters[0].Value.ToString();
  15.                     if (args.DataSet.Query.DataSourceName == "DataSource1")
  16.                     {                     
  17.                         if (args.DataSet.Name == "DataSet1")
  18.                         {
  19.                             dt.Columns.Add("产品编号");
  20.                             dt.Columns.Add("产品名称");
  21.                             dt.Columns.Add("单价");
  22.                             dt.Columns.Add("库存量");
  23.                             dt.Columns.Add("产地");
  24.                             dt.Rows.Add("A001", "苹果", 10, 300, "中国");
  25.                             dt.Rows.Add("A002", "葡萄", 20, 200, "中国");
  26.                             dt.Rows.Add("A003", "香蕉", 30, 400, "中国");
  27.                             dt.Rows.Add("A004", "甘蔗", 10, 300, "中国");
  28.                             dt.Rows.Add("A005", "荔枝", 20, 200, "中国");
  29.                             dt.Rows.Add("A006", "芒果", 30, 400, "中国");
  30.                             dt.Rows.Add("A007", "猕猴桃", 110, 300, "中国");
  31.                             dt.Rows.Add("A008", "柠檬", 210, 200, "中国");
  32.                             dt.Rows.Add("A009", "栗子", 320, 400, "中国");
  33.                             dt.Rows.Add("A010", "火龙果", 100, 300, "中国");
  34.                             dt.Rows.Add("A011", "青芒", 250, 200, "中国");
  35.                             dt.Rows.Add("A012", "巴旦木", 320, 200, "中国");
  36.                             dt.Rows.Add("A013", "土豆", 380, 400, "中国");
  37.                             dt.Rows.Add("A014", "苹果", 110, 300, "中国");
  38.                             dt.Rows.Add("A015", "葡萄", 420, 200, "中国");
  39.                             dt.Rows.Add("A016", "香蕉", 530, 400, "中国");
  40.                             dt.Rows.Add("A017", "土豆", 380, 400, "中国");
  41.                             dt.Rows.Add("A018", "苹果", 110, 300, "中国");
  42.                             dt.Rows.Add("A019", "葡萄", 420, 200, "中国");
  43.                             dt.Rows.Add("A020", "香蕉", 530, 400, "中国");
  44.                             dt.Rows.Add("A021", "苹果", 10, 300, "中国");
  45.                             dt.Rows.Add("A022", "葡萄", 20, 200, "中国");
  46.                             dt.Rows.Add("A023", "香蕉", 30, 400, "中国");
  47.                             dt.Rows.Add("A024", "甘蔗", 10, 300, "中国");
  48.                             dt.Rows.Add("A025", "荔枝", 20, 200, "中国");
  49.                             dt.Rows.Add("A026", "芒果", 30, 400, "中国");
  50.                             dt.Rows.Add("A001", "苹果", 10, 300, "中国");
  51.                             dt.Rows.Add("A002", "葡萄", 20, 200, "中国");
  52.                             dt.Rows.Add("A003", "香蕉", 30, 400, "中国");
  53.                             dt.Rows.Add("A004", "甘蔗", 10, 300, "中国");
  54.                             dt.Rows.Add("A005", "荔枝", 20, 200, "中国");
  55.                             dt.Rows.Add("A006", "芒果", 30, 400, "中国");
  56.                             dt.Rows.Add("A007", "猕猴桃", 110, 300, "中国");
  57.                             dt.Rows.Add("A008", "柠檬", 210, 200, "中国");
  58.                             dt.Rows.Add("A009", "栗子", 320, 400, "中国");
  59.                             dt.Rows.Add("A010", "火龙果", 100, 300, "中国");
  60.                             dt.Rows.Add("A011", "青芒", 250, 200, "中国");
  61.                             dt.Rows.Add("A012", "巴旦木", 320, 200, "中国");
  62.                             dt.Rows.Add("A013", "土豆", 380, 400, "中国");
  63.                             dt.Rows.Add("A014", "苹果", 110, 300, "中国");
  64.                             dt.Rows.Add("A015", "葡萄", 420, 200, "中国");
  65.                             dt.Rows.Add("A016", "香蕉", 530, 400, "中国");
  66.                             dt.Rows.Add("A017", "土豆", 380, 400, "中国");
  67.                             dt.Rows.Add("A018", "苹果", 110, 300, "中国");
  68.                             dt.Rows.Add("A019", "葡萄", 420, 200, "中国");
  69.                             dt.Rows.Add("A020", "香蕉", 530, 400, "中国");
  70.                             dt.Rows.Add("A021", "苹果", 10, 300, "中国");
  71.                             dt.Rows.Add("A022", "葡萄", 20, 200, "中国");
  72.                             dt.Rows.Add("A023", "香蕉", 30, 400, "中国");
  73.                             dt.Rows.Add("A024", "甘蔗", 10, 300, "中国");
  74.                             dt.Rows.Add("A025", "荔枝", 20, 200, "中国");
  75.                             dt.Rows.Add("A026", "芒果", 30, 400, "中国");
  76.                         }
  77.                         if (args.DataSet.Name == "DataSet2")
  78.                         {
  79.                             dt.Columns.Add("产品编号1");
  80.                             dt.Columns.Add("产品名称1");
  81.                             dt.Columns.Add("单价1");
  82.                             dt.Columns.Add("库存量1");
  83.                             dt.Columns.Add("产地1");
  84.                             dt.Rows.Add("A001", "苹果", 10, 300, "中国");
  85.                             dt.Rows.Add("A002", "葡萄", 20, 200, "中国");
  86.                             dt.Rows.Add("A003", "香蕉", 30, 400, "中国");
  87.                             dt.Rows.Add("A004", "甘蔗", 10, 300, "中国");
  88.                             dt.Rows.Add("A005", "荔枝", 20, 200, "中国");
  89.                             dt.Rows.Add("A006", "芒果", 30, 400, "中国");
  90.                             dt.Rows.Add("A007", "猕猴桃", 110, 300, "中国");
  91.                             dt.Rows.Add("A008", "柠檬", 210, 200, "中国");
  92.                             dt.Rows.Add("A009", "栗子", 320, 400, "中国");
  93.                             dt.Rows.Add("A010", "火龙果", 100, 300, "中国");
  94.                             dt.Rows.Add("A011", "青芒", 250, 200, "中国");
  95.                             dt.Rows.Add("A012", "巴旦木", 320, 200, "中国");
  96.                             dt.Rows.Add("A013", "土豆", 380, 400, "中国");
  97.                             dt.Rows.Add("A014", "苹果", 110, 300, "中国");
  98.                             dt.Rows.Add("A015", "葡萄", 420, 200, "中国");
  99.                             dt.Rows.Add("A016", "香蕉", 530, 400, "中国");
  100.                             dt.Rows.Add("A017", "土豆", 380, 400, "中国");
  101.                             dt.Rows.Add("A018", "苹果", 110, 300, "中国");
  102.                         }
  103.                     }
  104.                     //if (args.DataSet.Query.DataSourceName == "DataSource3")
  105.                     //{
  106.                     //    if (args.DataSet.Name == "DataSet3")
  107.                     //    {
  108.                     //        dt.Columns.Add("ID");
  109.                     //        dt.Columns.Add("Name");
  110.                     //        dt.Columns.Add("Phone");
  111.                     //        dt.Columns.Add("Sex");
  112.                     //        dt.Rows.Add(1, 1, 132, "男");
  113.                     //        dt.Rows.Add(2, 1, 125, "女");
  114.                     //        dt.Rows.Add(3, 1, 155, "男");
  115.                     //        dt.Rows.Add(4, 1, 138, "女");
  116.                     //        dt.Rows.Add(5, 1, 189, "男");
  117.                     //        dt.Rows.Add(6, 1, 188, "女");
  118.                     //    }
  119.                     //}
  120.                     return dt;
  121.                 };


  122.             });

  123.         }      
复制代码


本帖子中包含更多资源

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

x
回复 使用道具 举报
muhuiru
社区贡献组   /  发表于:2021-1-20 10:12:07
11#
前台传参里加了json格式的字符串之后,就走不到startup这一步来,一直报错



本帖子中包含更多资源

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

x
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2021-1-19 17:45:42
10#
你好这样使用的话,在StartUp 中需要进行一个分割的操作,然后返回对应的报表名称,因为报表加载就是根据报表名称来进行读取的,具体读取的办法就是最上面给你的办法,前端传参后端StartUp中进行参数的获取
这个博客:https://gcdn.grapecity.com.cn/fo ... &extra=page%3D2
回复 使用道具 举报
muhuiru
社区贡献组   /  发表于:2021-1-19 17:08:48
9#

不传后面这部分报表可以正常加载,加上之后就会报错

本帖子中包含更多资源

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

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