rjsoft 发表于 2023-9-1 15:43:46

JSview传参太长导致报错

本帖最后由 rjsoft 于 2023-9-1 16:21 编辑

我们想要JSviewer在Startup的方法里获取页面传输的值,进行数据筛选,
我们按之前帖子提供的方法 (原贴地址 https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=69784&extra=page%3D2)
使用UseCustomStore的方法进行报表名称和参数的获取和分割
[*]public class Startup1
[*]    {
[*]      public static string EmbeddedReportsPrefix = "JSdatasource";
[*]      string ReportName = "";
[*]      public object GetReport(string P)//获取报表名称和报表参数,进行一个对应的报表名称和参数的分割
[*]      {
[*]            string reportName = P.Split(';');//报表名称;
[*]            string parameter1 = P.Split(';');//参数1,这样就可以根据参数值进行数据的筛选了;
[*]            string parameter2 = P.Split(';');//参数2;
[*]            PageReport rep=new PageReport();
[*]
[*]            string path = System.Web.Hosting.HostingEnvironment.MapPath("~/");
[*]            rep.Load(new FileInfo(@"" + path + "Reports/" + reportName));
[*]            return rep.Report;
[*]      }





页面请求是这样子的: http://localhost:5050/?dataSources=EMR&toolbar=false&id=hlbl&dataSources=EMR&recId=3321&HospitalId=4®No=1035
请求正常报表也能正常显示。但是当参数长度太长(大概260字符以上)时,页面也就报错了,
(http://localhost:5050/?dataSources=EMR&toolbar=false&id=hlbl&dataSources=EMR&recId=4283,4279,4280,4290,4317,4361,4337,4372,4563,4751,4783,4855,4857,4905,5001,5087,5306,5344,5408,5418,5493,5548,5604,5641,5712,5756,5948,5961,5976,5995,6069,6117,6381,6403,6586,6628,6792,6851&HospitalId=4&regNo=74)






查看了请求过程,activereports内部请求了路由http://localhost:5050/api/reporting/reports/{参数}/info 也是这里报错了。


Bad Request - Invalid URLHTTP Error 400. The request URL is invalid.



请问大神,这种要传比较长参数的场景改怎么实现?






rjsoft 发表于 2023-9-5 13:10:37

Bella.Yuan 发表于 2023-9-1 18:27
您好,可以参考下面的连接获取参数:   
如何后台给报表参数赋值 和 如何后台获取报表参数
https://gc ...

翻遍了百度google以及论坛,最终得出的结论就是.net core后端statup中获取参数只能通过reportId 字符串解析;理论上没问题,但是reportId 如果太长了,就不行。后来使用asp.net 那种方式展示报表了。本帖可结贴了。还是谢谢大佬

Eden.Sun 发表于 2023-9-1 16:36:39

您参考一下这个帖子回复,使用ReportParameter:
https://gcdn.grapecity.com.cn/forum.php?mod=redirect&goto=findpost&ptid=95442&pid=397796&fromuid=70395

rjsoft 发表于 2023-9-1 17:10:15

Eden.Sun 发表于 2023-9-1 16:36
您参考一下这个帖子回复,使用ReportParameter:
https://gcdn.grapecity.com.cn/forum.php?mod=redirect& ...

看了下这是在前端传的。有.net core后端获取参数的示例吗?

Bella.Yuan 发表于 2023-9-1 18:27:30

rjsoft 发表于 2023-9-1 17:10
看了下这是在前端传的。有.net core后端获取参数的示例吗?
您好,可以参考下面的连接获取参数:   
如何后台给报表参数赋值 和 如何后台获取报表参数
https://gcdn.grapecity.com.cn/showtopic-48869-1-1.html
(出处: 葡萄城产品技术社区)

Bella.Yuan 发表于 2023-9-5 15:04:27

rjsoft 发表于 2023-9-5 13:10
翻遍了百度google以及论坛,最终得出的结论就是.net core后端statup中获取参数只能通过reportId 字符串解 ...

给您点个赞{:5_117:}
页: [1]
查看完整版本: JSview传参太长导致报错