找回密码
 立即注册

QQ登录

只需一步,快速开始

pmway

中级会员

41

主题

140

帖子

945

积分

中级会员

积分
945

活字格认证

pmway
中级会员   /  发表于:2014-11-10 16:42  /   查看:8530  /  回复:14
打印问题,请尽快处理,谢谢

请看附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

14 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-11-10 18:56:00
沙发
回复 1楼pmway的帖子

你好,

我通过附件 Demo 使用1#中模板测试没能重现问题:


测试环境:
Win8.1 +Chrome 38.0.2125.111 + VS2013 + AR 8.2.492.0 + XPS 虚拟打印机

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-11-11 09:39:00
板凳
回复 使用道具 举报
pmway
中级会员   /  发表于:2014-11-11 09:56:00
地板
导出代码如下:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-11-11 11:04:00
5#
回复 4楼pmway的帖子

区域报表 xml 模板可以实现每页只显示三行数据,概括说需要定制大小为:
三行数据高度=报表打印高度-PageHeader-PageFooter-ReportHeader-ReportFooter-Margin具体需要调整纸张大小、Margin、Header、Footer 及Detail区域高度及CanGrow设置为false来实现。具体请参考模板:



同时推荐阅读 ActiveReports 基础教程——排版与布局:http://www.gcpowertools.com.cn/p ... sources.htm#layouts

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
pmway
中级会员   /  发表于:2014-11-11 12:01:00
6#
PDF导出:
  1. private void ExportPdf(HttpContext context,SectionReport report)
  2.     {
  3.       
  4.         
  5.         
  6.         if (string.IsNullOrEmpty(filename))
  7.         {
  8.             filename = "MyPDF";
  9.         }
  10.         filename = AttachFileName(context, filename + ".PDF");
  11.         context.Response.ContentType = "application/pdf";
  12.         context.Response.Clear();
  13.         context.Response.HeaderEncoding = System.Text.Encoding.Default;
  14.         context.Response.AddHeader("content-disposition", "attachment;filename=" + filename);
  15.       
  16.         
  17.         var pdf = new PdfExport();
  18.         var memStream = new System.IO.MemoryStream();
  19.         pdf.Export(report.Document, memStream);
  20.         context.Response.BinaryWrite(memStream.ToArray());
  21.         context.Response.Flush();
  22.         context.Response.End();
  23.     }
复制代码
WORD 导出:
  1. private void ExportWord(HttpContext context, SectionReport report)
  2.     {
  3.         if (string.IsNullOrEmpty(filename))
  4.         {
  5.             filename = "MyWord";
  6.         }
  7.         filename = AttachFileName(context, filename + ".doc");
  8.         context.Response.ContentType = "application/rtf";
  9.         context.Response.Clear();
  10.         context.Response.AddHeader("content-disposition", "attachment;filename=" + filename);
  11.         var rtf = new RtfExport();
  12.         var memStream = new System.IO.MemoryStream();
  13.         rtf.Export(report.Document, memStream);
  14.         context.Response.BinaryWrite(memStream.ToArray());
  15.         context.Response.End();
  16.     }
复制代码
Excel导出:
  1. private void ExportExcel(HttpContext context, SectionReport report)
  2.     {
  3.         if (string.IsNullOrEmpty(filename))
  4.         {
  5.             filename = "MyExcel";
  6.         }
  7.         filename = AttachFileName(context,filename + ".xlsx");
  8.         context.Response.ContentType = "application/excel";
  9.         context.Response.Clear();
  10.         context.Response.AddHeader("content-disposition", "attachment;filename=" + filename);
  11.         XlsExport xls = new XlsExport();
  12.         System.IO.MemoryStream memStream = new System.IO.MemoryStream();
  13.         xls.FileFormat = FileFormat.Xlsx;
  14.         xls.Export(report.Document, memStream);
  15.         context.Response.BinaryWrite(memStream.ToArray());
  16.         context.Response.End();
  17.     }
复制代码
回复 使用道具 举报
pmway
中级会员   /  发表于:2014-11-11 16:08:00
7#
前台代码:
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Print.aspx.cs" Inherits="Report_Print" %>
  2. <%@ Register Assembly="GrapeCity.ActiveReports.Web.v8, Version=8.1.414.0, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" Namespace="GrapeCity.ActiveReports.Web" TagPrefix="ActiveReportsWeb" %>
  3. <%--<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>--%>
  4. <!DOCTYPE html>
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head id="Head1" runat="server">
  7.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8.     <title></title>
  9.     <style type="text/css">
  10.         /** {
  11.             margin:0px;
  12.             padding:0px;
  13.         }
  14.         .bar {
  15.             height: 26px;
  16.             margin: 6px 0px 4px;
  17.         }
  18.         .barBtn {
  19.             margin-right: 10px;
  20.         }*/
  21.     html, body, #ReportViewer, #ReportViewer_controlDiv
  22.     {
  23.         width: 100%;
  24.         height: 100%;
  25.         margin: 0;
  26.     }
  27.     </style>
  28.     <script type="text/javascript" src="/Scripts/jquery/jquery-1.5.2.min.js"></script>
  29.     <script type="text/javascript">
  30.         var viewer, viewerforprint;
  31.         var pages;
  32.         window.onload = function() {
  33.             GrapeCity.ActiveReports.Viewer.OnLoad("WebReportViewer", function () {
  34.                 viewer = GrapeCity.ActiveReports.Viewer.Attach("WebReportViewer");
  35.                 viewer.setEventsHandler({
  36.                     OnToolClick: function(e) {
  37.                         if (e.Tool == "导出PDF") {
  38.                             reportExport("PDF");
  39.                             return false;
  40.                         }
  41.                         if (e.Tool == "导出Word") {
  42.                             reportExport("WORD");
  43.                             return false;
  44.                         }
  45.                         if (e.Tool == "导出Excel") {
  46.                             reportExport("EXCEL");
  47.                             return false;
  48.                         }
  49.                     }
  50.                 });
  51.             });
  52.         };
  53.         function reportExport(act) {
  54.             var url = "/Report/Ashx/ReportExport.ashx?act=" + act + "&amp;key=" + key + "&amp;filename=" + encodeURIComponent(moduleName);
  55.             window.open(url);
  56.         }
  57.         $(function() {
  58.             var hight = $(window).height();
  59.             var objHeight = hight;
  60.             $("#ReportViewer_fvo").css("height", objHeight);
  61.         });
  62.    
  63.     </script>
  64. </head>
  65. <body>
  66.           <form id="form1" runat="server">
  67.               <ActiveReportsWeb:WebViewer ID="WebReportViewer" ViewerType="FlashViewer" runat="server" height="100%" width="100%">
  68.               </ActiveReportsWeb:WebViewer>
  69.           </form>
  70. </body>
  71. </html>
复制代码
回复 使用道具 举报
pmway
中级会员   /  发表于:2014-11-11 16:08:00
8#
后台添加导出按钮代码:
  1. ToolButton pdfButton = Tool.CreateButton(DisplayControl_Tag.GetDisplayName(PmwayProfile.TenantId, &quot;btnExport_Dena.PDF&quot;));
  2.                     pdfButton.Caption = DisplayControl_Tag.GetDisplayName(PmwayProfile.TenantId, &quot;btnExport_Dena.PDF&quot;);
  3.                     pdfButton.ToolTip = DisplayControl_Tag.GetDisplayName(PmwayProfile.TenantId, &quot;btnExport_Dena.PDF&quot;);
  4.                     WebReportViewer.FlashViewerToolBar.Tools.Add(pdfButton);
  5.                     ToolButton wordButton = Tool.CreateButton(DisplayControl_Tag.GetDisplayName(PmwayProfile.TenantId, &quot;btnExport_Dena.Word&quot;));
  6.                     wordButton.Caption = DisplayControl_Tag.GetDisplayName(PmwayProfile.TenantId, &quot;btnExport_Dena.Word&quot;);
  7.                     wordButton.ToolTip = DisplayControl_Tag.GetDisplayName(PmwayProfile.TenantId, &quot;btnExport_Dena.Word&quot;);
  8.                     WebReportViewer.FlashViewerToolBar.Tools.Add(wordButton);
  9.                     ToolButton excelButton = Tool.CreateButton(DisplayControl_Tag.GetDisplayName(PmwayProfile.TenantId, &quot;btnExport_Dena.Excel&quot;));
  10.                     excelButton.Caption = DisplayControl_Tag.GetDisplayName(PmwayProfile.TenantId, &quot;btnExport_Dena.Excel&quot;);
  11.                     excelButton.ToolTip = DisplayControl_Tag.GetDisplayName(PmwayProfile.TenantId, &quot;btnExport_Dena.Excel&quot;);
  12.                     WebReportViewer.FlashViewerToolBar.Tools.Add(excelButton);
复制代码
回复 使用道具 举报
pmway
中级会员   /  发表于:2014-11-11 16:09:00
9#
导出实现代码:
  1. public class ReportExport : IHttpHandler, IReadOnlySessionState
  2. {
  3.     private string filename = string.Empty;
  4.    
  5.     public void ProcessRequest (HttpContext context)
  6.     {
  7.         var key = context.Request["key"];
  8.         var act = context.Request["act"];
  9.         filename = context.Request["filename"];
  10.         if (string.IsNullOrEmpty(key))
  11.         {
  12.             context.Response.Write("缺少参数key");
  13.             context.Response.End();
  14.         }
  15.         if (string.IsNullOrEmpty(act))
  16.         {
  17.             context.Response.Write("缺少参数act");
  18.             context.Response.End();
  19.         }
  20.         var report = Report(key);
  21.         switch (act)
  22.         {
  23.             case  "PDF":
  24.                 ExportPdf(context, report);
  25.                 break;
  26.             case "WORD":
  27.                 ExportWord(context, report);
  28.                 break;
  29.             case "EXCEL":
  30.                 ExportExcel(context, report);
  31.                 break;
  32.         }
  33.     }
  34.     private SectionReport Report(string key)
  35.     {
  36.        return UserGrade.GetData(CacheDataTypes.Other, key) as SectionReport;
  37.     }
  38.     /// <summary>
  39.     /// PDF导出
  40.     /// </summary>
  41.     /// <param name="context"></param>
  42.     /// <param name="report"></param>
  43.     private void ExportPdf(HttpContext context,SectionReport report)
  44.     {
  45.       
  46.         
  47.         
  48.         if (string.IsNullOrEmpty(filename))
  49.         {
  50.             filename = "MyPDF";
  51.         }
  52.         filename = AttachFileName(context, filename + ".PDF");
  53.         context.Response.ContentType = "application/pdf";
  54.         context.Response.Clear();
  55.         context.Response.HeaderEncoding = System.Text.Encoding.Default;
  56.         context.Response.AddHeader("content-disposition", "attachment;filename=" + filename);
  57.       
  58.         
  59.         var pdf = new PdfExport();
  60.         var memStream = new System.IO.MemoryStream();
  61.         pdf.Export(report.Document, memStream);
  62.         context.Response.BinaryWrite(memStream.ToArray());
  63.         context.Response.Flush();
  64.         context.Response.End();
  65.     }
  66.     private void ExportWord(HttpContext context, SectionReport report)
  67.     {
  68.         if (string.IsNullOrEmpty(filename))
  69.         {
  70.             filename = "MyWord";
  71.         }
  72.         filename = AttachFileName(context, filename + ".doc");
  73.         context.Response.ContentType = "application/rtf";
  74.         context.Response.Clear();
  75.         context.Response.AddHeader("content-disposition", "attachment;filename=" + filename);
  76.         var rtf = new RtfExport();
  77.         var memStream = new System.IO.MemoryStream();
  78.         rtf.Export(report.Document, memStream);
  79.         context.Response.BinaryWrite(memStream.ToArray());
  80.         context.Response.End();
  81.     }
  82.     private void ExportExcel(HttpContext context, SectionReport report)
  83.     {
  84.         if (string.IsNullOrEmpty(filename))
  85.         {
  86.             filename = "MyExcel";
  87.         }
  88.         filename = AttachFileName(context,filename + ".xlsx");
  89.         context.Response.ContentType = "application/excel";
  90.         context.Response.Clear();
  91.         context.Response.AddHeader("content-disposition", "attachment;filename=" + filename);
  92.         XlsExport xls = new XlsExport();
  93.         System.IO.MemoryStream memStream = new System.IO.MemoryStream();
  94.         xls.FileFormat = FileFormat.Xlsx;
  95.         xls.Export(report.Document, memStream);
  96.         context.Response.BinaryWrite(memStream.ToArray());
  97.         context.Response.End();
  98.     }
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-11-11 18:01:00
10#
回复 9楼pmway的帖子

请问有相应的前台代码吗?如果方便的话请您把相关页面打包上传避免信息不全增加交流次数的问题。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部