找回密码
 立即注册

QQ登录

只需一步,快速开始

liushutao

金牌服务用户

14

主题

35

帖子

99

积分

金牌服务用户

积分
99

活字格认证

liushutao
金牌服务用户   /  发表于:2015-11-26 17:29  /   查看:3678  /  回复:9
function getViewer() {
            if (viewer && viewer.destroy) {
                viewer.destroy();
                viewer = null;
            }
            viewer = GrapeCity.ActiveReports.Viewer({
                element: '#viewer',
                reportService: {
                    url:  "~/Service/VM/EvcDataPackage.ReportService.asmx"
                },
                uiType: isPC() ? 'desktop' : 'mobile',
                availableExports: ["df", "Word", "Image", "Xls"],
                reportLoaded: function () {

                },
                documentLoaded: function () {
                    $("#BtnSearch").removeAttr("disabled");
                    $("#BtnSearch").html('<i class="fa fa-search"></i>查 询');
                    $("#BtnSearch").css("cursor", "pointer");
                                 },
                error: function (error) {
                    console.log("error");
                }
            });

            return viewer;
        }
        var _rpt = "Reports/VM/原始数据包查询.rdlx";

        var reportsButtons = $('#BtnSearch');
        reportsButtons.bind('click', function (ev) {
            ev.stopImmediatePropagation();
            var target = $(ev.target);
         
            var reportOption = {
                id: _rpt,
                parameters: [
                         { name: 'KeyValue', value: $("#KeyValue").val() },
                         { name: 'BeginTime', value: $("#sAppDate").val() },
                         { name: 'EndTime', value: $("#eAppDate").val() },
                         { name: 'OrderByDesc', value: $('#hideSortWay').val() },
                         { name: 'InputDesc', value: $('#InputDesc').val() },
                         { name: 'Type', value: $('#hideType').val() }
                ]
            };
            $("#BtnSearch").attr("disabled", "disabled");
            $("#BtnSearch").html('<i class="fa fa-search"></i>查询中');
            $("#BtnSearch").css("cursor", "default");
            getViewer().option('report', reportOption);

        });
后台:
protected override object OnCreateReportHandler(string reportPath)
        {
            switch (reportPath)
            {
                case "Reports/VM/原始数据包查询.rdlx":
                    PageReport definition1 = (PageReport)base.OnCreateReportHandler("Reports/VM/原始数据包查询.rdlx");
                    definition1.Document.LocateDataSource += new LocateDataSourceEventHandler(InitDataSource);
                    return definition1;
                default:
                    return base.OnCreateReportHandler(reportPath);

            }
        }
base.Context.Request["BeginTime"]; 取不到值

9 个回复

倒序浏览
liushutao
金牌服务用户   /  发表于:2015-11-26 17:38:00
沙发
{&quot;d&quot;:{&quot;__type&quot;:&quot;GrapeCity.ActiveReports.Web.Models.SetParametersResult&quot;,&quotarameterCollection&quot;:null,&quot;Error&quot;:{&quot;Description&quot;:&quot;Too much parameters&quot;,&quot;ErrorCode&quot;:11},&quot;Token&quot;:&quot;9e303d43-dad6-49d7-85ce-37383982e1dc&quot;}}
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-11-27 10:09:00
板凳
您好,

var reportOption = {
                id: _rpt,
                parameters: [
                         { name: 'KeyValue', value: $(&quot;#KeyValue&quot;).val() },
                         { name: 'BeginTime', value: $(&quot;#sAppDate&quot;).val() },
                         { name: 'EndTime', value: $(&quot;#eAppDate&quot;).val() },
                         { name: 'OrderByDesc', value: $('#hideSortWay').val() },
                         { name: 'InputDesc', value: $('#InputDesc').val() },
                         { name: 'Type', value: $('#hideType').val() }
                ]
            };

这个里面的参数,作为报表的参数进行添加,添加的位置是
GrapeCity.ActiveReports.PageReport _reportDef = XXX
_reportDef.Report.ReportParameters[0]

不会添加的到Context的Request,这个是URL请求的参数。
回复 使用道具 举报
liushutao
金牌服务用户   /  发表于:2015-11-27 10:28:00
地板
definition1.Document.LocateDataSource += new LocateDataSourceEventHandler(InitDataSource);
如果在InitDataSource方法里怎么取值
  public  void InitDataSource(object sender, LocateDataSourceEventArgs args)
        {
            Dictionary<string, string> dc = new Dictionary<string, string>();
          string beginTime=base.Context.Request["BeginTime"]; 取不到值
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-11-27 11:38:00
5#
您好,

这个参数必须在创建PageReprot的时候拿到,如果您在InitDataSource中使用,可以设置一个全局的变量进行参数的传递。
回复 使用道具 举报
liushutao
金牌服务用户   /  发表于:2015-11-27 14:22:00
6#
_reportDef.Report.ReportParameters[0],试验了这种方法也取不到值
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-11-27 14:54:00
7#
您好,

这个问题经过电话沟通,和之前给您的真分页传递参数的方式是一致的,您可以参考下。
回复 使用道具 举报
liushutao
金牌服务用户   /  发表于:2015-11-27 15:14:00
8#
我加上参数之后直接报错了
回复 使用道具 举报
liushutao
金牌服务用户   /  发表于:2015-11-27 16:32:00
9#
id: reportid + &quot;?totalpage=-1&amp;currentpage=0&amp;p1=&quot; + $(&quot;#Text1&quot;).val() + &quot;&amp;p1=&quot; + $(&quot;#Text2&quot;).val(),
回复 使用道具 举报
frank.zhang
社区贡献组   /  发表于:2015-11-27 16:34:00
10#
您好,

根据电话沟通的结果是0731后缀的那个文件,调用参数的代码是
  1.         var reportsButtons = $('#btnReport1');
  2.         reportsButtons.bind('click', function (ev) {
  3.             ev.stopImmediatePropagation();
  4.             reportsButtons.removeClass('active');
  5.             var target = $(ev.target);
  6.             target.addClass('active');
  7.             var page = new Number($(&quot;#page-control&quot;).val());
  8.             $(&quot;#page-control&quot;).val(page-1);
  9.             var reportOption = {
  10.                     id: target.attr('data-bind'),
  11.                         parameters: [
  12.                         {
  13.                             name: 'PageNum',
  14.                             value: page-1
  15.                         }]
  16.             };
  17.             reportsButtons.prop('disabled', true);
  18.             viewer.option('report', reportOption);
  19.         });
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部