zqhuang 发表于 2020-1-21 13:48:39

原本在H5上的前台传参方式用jsviewer要怎么写

本帖最后由 zqhuang 于 2020-4-2 15:35 编辑


原本在H5上的前台传参方式用jsviewer要怎么写?

Lenka.Guo 发表于 2020-1-21 14:22:46

您好,
可以参考如下代码:
viewer.openReport('json.rdlx',[{ name: 'ParOrderID', values: ['201902059']}] )

zqhuang 发表于 2020-1-21 14:40:02


还是取不到值,用的ar14,想将之前ar13上用的h5,改成jsviewer,但是无法前台进行参数赋值。

Lenka.Guo 发表于 2020-1-21 16:03:51

您好,JSViewer 传参的代码是正确的。
如果没有获取,就必须查看下您的代码逻辑。您可以把重现问题的Demo给我发一下,我这边测试下,看看是哪里设置的问题。

zqhuang 发表于 2020-2-4 10:02:35

demo源码

zqhuang 发表于 2020-2-4 10:04:31

Lenka.Guo 发表于 2020-1-21 16:03
您好,JSViewer 传参的代码是正确的。
如果没有获取,就必须查看下您的代码逻辑。您可以把重现问题的Demo ...

源码已经上传,麻烦帮忙看下。

Lenka.Guo 发表于 2020-2-4 10:32:23

收到,正在验证中

Lenka.Guo 发表于 2020-2-6 10:45:10

您好,
我这边测试您的示例都是正常的,我在报表中把参数拖拽到界面中用于显示值:

zqhuang 发表于 2020-2-6 14:58:31

Lenka.Guo 发表于 2020-2-6 10:45
您好,
我这边测试您的示例都是正常的,我在报表中把参数拖拽到界面中用于显示值:

我现在需要在程序中获取到这个参数,而不是仅仅在报表中。
现在的问题是如何在程序中获取到我在jsviewer上传递进来的这个参数。

Lenka.Guo 发表于 2020-2-6 15:56:30

本帖最后由 Lenka.Guo 于 2020-2-6 16:04 编辑

JSViewer 传参是 JSViewer 的接口,在报表展示时候会传给报表,并生效。
如果是在程序中获取报表参数的值,我们一般采取报表名称拼接的方式。
可参考博客:https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=69784&extra=page%3D1

1. 在 create 方法中设置 id option 时采用特殊的格式,如id: 'SalesDetail.rdlx' + ';' + $("#TextBox1").val()+';' + $("#TextBox2").val()
<script type="text/javascript">
    var viewer = GrapeCity.ActiveReports.JSViewer.create({
      element: '#viewerContainer',
      id: 'SalesDetail.rdlx' + ';' + $("#TextBox1").val()+';' + $("#TextBox2").val()//报表名称和参数的传递
      reportService: {}
      
    });
</script>


2. 在startup 函数里面通过使用Split函数来分割reportid,并获取前台传递的值。
    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;
      }
      

页: [1] 2
查看完整版本: 原本在H5上的前台传参方式用jsviewer要怎么写