阿七, 发表于 2017-7-11 10:05:32

ActiveReports报表查询之后怎么清空

点击查询之后查看报表,之后如果再次查询并且未查出结果,想把之前第一次查询出结果的报表去掉,变成跟没点击查询按钮的时候一样
以下是绑定报表的代码,查询第一次走过之后,之后想清空,不知道应该把哪个clear
            report = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("Reports/HLWSPJS.rdlx"));
            report.Report.ReportParameters.DefaultValue.Values.Clear();

            // 根据画面上的检索条件,设置报表的标题内容
            report.Report.ReportParameters.DefaultValue.Values.Add(this.dtpKSRQ.Text + "~" + this.dtpJSRQ.Text);

            // 将取得的数据绑定到报表中
            this.vwrBB.LocateDataSource += (sdr, args) =>
            {
                if (args.DataSourceName == "HLWSPJSDataSource")
                {
                  if (args.DataSetName == "HLWSPJSDataSet")
                  {
                        args.Data = selectHlwspsjxxList;
                  }
                }
            };
            this.vwrBB.LoadDocument(report.Document);

KearneyKang 发表于 2017-7-11 14:56:56

本帖最后由 Lenka.Guo 于 2017-7-11 18:46 编辑

您好,

您通过以下代码为参数设置默认值了,是固定不变的,参数始终有一个默认值,所以导致如果该值无法查询到结果时,仍保留上次的查询记录。
    report.Report.ReportParameters.DefaultValue.Values.Add(this.dtpKSRQ.Text + "~" + this.dtpJSRQ.Text);


建议您在为参数赋值之前,添加以下代码进行清空:
pagereport.Report.ReportParameters.DefaultValue.Values.Clear();



阿七, 发表于 2017-7-12 15:27:39

KearneyKang 发表于 2017-7-11 14:56
您好,

您通过以下代码为参数设置默认值了,是固定不变的,参数始终有一个默认值,所以导致如果该值无法 ...

我想问的不是怎么给参数清空,是点击查询后才加载报表嘛,我想第二次再点击查询如果没查出数据的话 就不出现报表了,这段代码是在第一次查询的时候走,在查询不出数据的时候,前面就return了,虽然第二次不走这些代码了,但是报表还是会留在win窗体里,想把整个报表去掉,就是不要看见他了

KearneyKang 发表于 2017-7-12 16:27:12

您好
请问你用的是webviewer还是Html5Viewer
如果是Webviewer你试着设置这个Webviewer这个控件可见不可见
如果是Html5Viewer 你就通过用css 把div来进行隐藏
页: [1]
查看完整版本: ActiveReports报表查询之后怎么清空