yy 发表于 2015-4-3 16:38:00

请问viewer工具栏上的"导出"按钮怎么出来

演示的工具栏上有一个"导出报表"的按钮,但我在VB.NET中引用的Viewer没有这个按钮,
请问怎样可以把它显示出来?

frank.zhang 发表于 2015-4-3 18:17:00

您好,
这是一个自定义的按钮。需要增加前端代码。
    <script src="http://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">
      function ForcePostBack() {
            form1.submit();
      }

      function printreport() {
            viewModel.Print();
      }


      var reportSelect = '<select id="ReportSelect" style="width:150px"><option selected disabled>Choose Report</option><option value="SectionReport1">SectionReport1</option><option value="SectionReport2">SectionReport2</option><option value="RdlReport1">RdlReport1</option></select>';
      var exportSelect = '<select id="ExportSelect" style="width:80px"><option selected disabled>Export</option><option value="PDF" style="background: url(images/pdf.png) right no-repeat; width: 50px">PDF</option><option value="Excel" style="background: url(images/Excel.gif) right no-repeat; width: 50px">Excel</option></select>';
      var printBtn = '<span><input id="btnPrint" type="Button" value="Print" onclick="print()"/></span>';


      $(document).ready(function () {
            var selectedValue = $("#fldReportName").val();
            if (selectedValue !== "") {
                setTimeout(function () {
                  $("#ReportSelect").val(selectedValue);
                }, 100);
            }
            var toolbar = $('#WebViewer1').find('.arvToolBar');
            toolbar.append(reportSelect);
            toolbar.append(exportSelect);
            toolbar.append(printBtn);
            var viewModel = GetViewModel("WebViewer1");

            //Force a postback upon report selection
            $("#ReportSelect").change(function (e, args) {
                var reportName = this.value;
                $("#fldReportName").val(reportName);
                ForcePostBack();
                this.value = $("#fldReportName").val();
            });

            function print() {
                viewModel.Print();
            };


            //Check the selected value in DropDown and Export
            $("#ExportSelect").change(function (e, args) {
                var valueSelected = this.value;
                if (viewModel.PageLoaded()) {
                  switch (valueSelected) {
                        case "PDF":
                            viewModel.Export(ExportType.Pdf, function (uri) {
                              window.location = uri;
                            }, true);
                            break;
                        case "Excel":
                            viewModel.Export(ExportType.Xls, function (uri) {
                              window.location = uri;
                            }, true);
                            break;
                  }
                }
            });
      });
    </script>

yy 发表于 2015-4-3 19:18:00

谢谢!我先试试看.

frank.zhang 发表于 2015-4-7 08:59:00

您好,可以参考以下博客
http://blog.gcpowertools.com.cn/post/2014/08/24/advanced-html-viewer-with-export-options.aspx

yy 发表于 2015-4-10 14:18:00

你好!我的编程环境是VS2010,VB.NET开发的系统,CS架构,目前用Viewer来显示打印报表,请问是否有相关的参考,谢谢!

frank.zhang 发表于 2015-4-10 17:05:00

您好,
您的项目是CS架构,是winform还是WPF。展现报表的viewer控件,有直接打印的按钮。自定义的打印时,viewer控件有print的方法。您可以先尝试一下。

yy 发表于 2015-4-10 17:59:00

是winform,创建好窗体和View控件,所有报表通过这个窗体装载显示
      Dim cn As New SqlConnection(sysArCnnString)
      Dim cmd As New SqlCommand(sysArSqls)
      Dim rd As SqlDataReader
      cmd.Connection=cn
      cn.Open()
      rd=cmd.ExecuteReader()
      objARrpt.DataSource=rd
      Viewer1.LoadDocument(objARrpt)
      Viewer1.Width=Me.Width -(Viewer1.Top*2)
      Viewer1.Height=Me.Height-(Viewer1.Left*2)
用户直接用viewer的工具栏提供的按钮操作,按下打印按钮就调出Windows的打印对话框了,不太明白怎么可以自定义,望指点,谢谢!

frank.zhang 发表于 2015-4-10 18:09:00

您好,
可以在winform新建一个button,触发一个方法,在这个方法中调用Viewer1的print方法。

yy 发表于 2015-4-11 11:21:00

试了下,有点摸不着头脑,可否给段调用代码参考,谢谢了!

frank.zhang 发表于 2015-4-13 08:55:00

您好,
您方便上传你现在运行的代码吗?我们可以在这个基础上讨论,会比较有效率。
页: [1] 2 3
查看完整版本: 请问viewer工具栏上的"导出"按钮怎么出来