如何实现报表设计中的高精度报表套打?

Posted by

在多数行业中票据具备从严的本行标准,格式是无计可施校正的,豆蔻梢头旦格式有所改观,票据数据就能够失效无效。由此普通状态下,我们会在事先设计好格式的表格的打字与印刷版中,手动填写数据新闻,如左近的各式账本,报废单等填写数据。

十一月25日京东市廛宣告了中华电子商务领域首张电子收据,同时发表相关系统专门的学业上线,那注解着华夏电子商务的步伐又迈进迈出了首要的一步。近年来“电子小票”覆盖的劳务范围是在香水之都地区购买书籍、录音带和录录像带商品的民用花费者。花费者在進展点名项目英特网海消防费时可筛选开具普通纸质发票或电子小票。本文将揭示怎么样通过山葫芦城ActiveReports报表报表完成电子小票的机能。

在前边介绍过《Web打印建设方案之见惯不惊报表打字与印刷成效》的一片文章中涉及过非常打印控件Lodop,做起套打来感到照旧挺方便的,最少地点调度分界面无需协和弄,地方嘛,也提供了自行保存的功用,无需理会。

 

在动用蒲陶城ActiveReports报表控件完成小票打字与印刷、发货单打字与印刷、物流项目清单打印、商品条码印制、工作者工卡印刷之类的效力时,您只需在绸缪报表阶段加载套打纸作为报表背景图片,实际打字与印刷时仅将数据打字与印刷到套打纸的应和岗位。

诚如的套打,包罗了几有的操作:打印预览、打字与印刷维护、打印设计。

单张票据手动填写是未曾别的难点的,而随着办公自动化,多量数量都急需电子化管理,不止异常的快还平价保存,不易出错。在单据成为斗办公操作时,手动填写不止不可能满意何况特别低效,又因为票据的格式是力不能支纠正的,古板的报表工具日常是耗费量的措施显著数据区域的职位,来布署报表。如此一来,制作一张票据打字与印刷的报表不独有费时费事,並且很难保险票据的得力,更是不可能满意今后面世的新票据格式的要求。套打报表的产出减轻了那生龙活虎难点,简化了电子票证制作打字与印刷的成效。

 

打字与印刷预览和打印维护是面向终端顾客的,打字与印刷维护是指内容不能够改改删除、但岗位能够调动,给差别的打字与印刷机差异的尺寸打字与印刷提供调度职分的恐怕。

 

1、创制报表文件

创建报表,增加背景图片,并基于打字与印刷参数来彰显也许隐蔽背景图片

在工程中增加ActiveReports报表,报表模板选拔【ActiveReports
7页面报表】,命名字为rptInvoice.rdlx

图片 1

报表增加达成未来,在表格能源微机中的【嵌入式图像】节点中加多增值税发票背景图片

图片 2

从VS工具箱少将Image 控件增多到报表设计分界面,并安装 Image 控件的值,如下所示:

图片 3

图片 4

加多完背景图片之后,大家在相应文字加多TextBox 控件用于展示数据,最终得到的兼备功用如下:

图片 5 

 

打字与印刷设计是面向开荒人士的,发轫需求通过那几个职能来规划好套打客车分界面,正是依赖套打证件的背景图片,大约摆放好各类内容的职责。

套打报表
套打也被称作定位打字与印刷,即在一张预设格式的票据上,零绝对误差打字与印刷上急需填写的数目内容。预设票据纸龙威以精通为,在报表制作进度中,为报表设置为特定的表格背景(票据电子版卡塔尔国,然后依照此背景设置供给填写的多寡项及相称的多寡控件。因而打字与印刷时只打字与印刷数据,而整个背景不会输出到打字与印刷机中。套打报表也足以开始的敞亮为“套格式打字与印刷”。套打报表效能是报表开拓工具提供的最大旨最常用且最核查报表专门的事业性的功力。

2、自定义 WebViewer 控件

自定义 WebViewer
控件,在工具栏中增多【套打】开关,当顾客点击【套打】时运转报表(不显得背景图卡塔尔国并打字与印刷

在工程的ASPX页面中增加多个WebViewer 控件,二个用以报表预览,贰个用于报表打字与印刷.
增添实现今后设置八个WebViewer控件的ViewerType为FlashViewer,
并设置FlashViewerOptions中的UseClientApi为True.

在页面中加多以下
JavaScript ,用于报表的打字与印刷操作:

 1     <script language="javascript" type="text/javascript">
 2         var viewer, viewerforprint;
 3         var pages;
 4 
 5         window.onload = function () {
 6             GrapeCity.ActiveReports.Viewer.OnLoad("<%=WebViewer1.ClientID %>", function () {
 7                 viewer = GrapeCity.ActiveReports.Viewer.Attach("<%=WebViewer1.ClientID %>");
 8                 viewer.setEventsHandler({
 9                     OnToolClick: function (e) {
10                         if (e.Tool == "套打") {
11                             printreport();
12                             return false;
13                         }
14                     },
15                     OnLoadProgress: function (e) {
16                         if (e.State == "Completed") {
17                             pages = e.PageCount;
18                         }
19                     }
20                 });
21             });
22 
23             GrapeCity.ActiveReports.Viewer.OnLoad("<%=WebViewer2.ClientID %>", function () {
24                 viewerforprint = GrapeCity.ActiveReports.Viewer.Attach("<%=WebViewer2.ClientID %>");
25             });
26         }
27 
28         function printreport() {
29             var orient = "None";
30             var scale = "None";
31             var from = 1;
32             var to = pages;
33             var ops = viewerforprint.CreatePrintOptions();
34             ops.AdjustPaperOrientation = orient;
35             ops.ScalePages = scale;
36             ops.ClearPageRanges();
37             ops.AddPageRange(from, to);
38 
39             viewerforprint.Print(ops);
40 
41         }
42 
43     </script>

 

切换到ASPX后台代码视图,
增加以下代码在 WebViewer 工具栏中增加[套打]按钮:

 

 1     private void CustomizeToolbar()
 2     {
 3         // 隐藏打印范围按钮
 4         ToolBase btnRang = WebViewer1.FlashViewerToolBar.Tools["PageRangeButton"];
 5         btnRang.Visible = false;
 6 
 7         // 隐藏打印按钮
 8         ToolBase btnPrint = WebViewer1.FlashViewerToolBar.Tools["PrintButton"];
 9         btnRang.Visible = false;
10 
11         ToolButton btnCPrint = Tool.CreateButton("套打");
12         btnCPrint.Caption = "套打";
13         btnCPrint.ToolTip = "套打";
14 
15         WebViewer1.FlashViewerToolBar.Tools.Insert(0, btnCPrint);
16     }

大约的落到实处代码如下所示:

 

3、运路程序

图片 6

 

<script language="javascript">
var LODOP=document.getElementById("LODOP");//这行语句是为了符合DTD规范
CheckLodop();
</script>
<script language="javascript" type="text/javascript"> 
function Preview2() { 
CreateDataBill();
LODOP.PREVIEW(); 
}; 
function Setup2() { 
CreateDataBill();
LODOP.PRINT_SETUP(); 
};
function Design2() { 
CreateDataBill();
LODOP.PRINT_DESIGN();
}; 
function RealPrint() { 
CreateDataBill();
if (LODOP.PRINTA()) 
alert("已发出实际打印命令!"); 
else 
alert("放弃打印!"); 
}; 
function CreateDataBill() {
LODOP.SET_PRINT_PAPER(10,10,762,533,"打印控件功能演示_Lodop功能_移动公司发票套打");
LODOP.ADD_PRINT_TEXT(126,150,100,20,"郭德刚");
LODOP.SET_PRINT_STYLEA(1,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(151,150,100,20,"13954885177");
LODOP.SET_PRINT_STYLEA(2,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(125,584,99,20,"发票打印(第1次)");
LODOP.SET_PRINT_STYLEA(3,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(465,140,198,20,"陆百柒拾捌元叁角零分");
LODOP.SET_PRINT_STYLEA(4,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(465,599,70,20,"678.30");
LODOP.SET_PRINT_STYLEA(5,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(496,408,59,20,"H112063");
LODOP.SET_PRINT_STYLEA(6,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(191,58,100,20,"国内漫游通话");
LODOP.SET_PRINT_STYLEA(7,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(191,217,100,20,"584.00");
LODOP.SET_PRINT_STYLEA(8,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(222,58,100,20,"增值业务费");
LODOP.SET_PRINT_STYLEA(9,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(222,217,100,20,"48.30");
LODOP.SET_PRINT_STYLEA(10,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(251,58,100,20,"代收费");
LODOP.SET_PRINT_STYLEA(11,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(251,217,100,20,"50.00");
LODOP.SET_PRINT_STYLEA(12,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(280,58,100,20,"优惠费");
LODOP.SET_PRINT_STYLEA(13,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(280,217,100,20,"4.00");
LODOP.SET_PRINT_STYLEA(14,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(98,101,150,20,"101081005747319387");
LODOP.SET_PRINT_STYLEA(15,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(97,307,150,20,"2008年10月19日 10:28:38");
LODOP.SET_PRINT_STYLEA(16,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(152,584,103,20,"138860016786");
LODOP.SET_PRINT_STYLEA(17,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(95,571,112,20,"06775516");
LODOP.SET_PRINT_STYLEA(18,"FontName","System");
LODOP.SET_PRINT_STYLEA(18,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(496,135,183,20,"2008年09月(20080901-20080930)");
LODOP.SET_PRINT_STYLEA(19,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(496,572,112,20,"-王府井中心店营");
LODOP.SET_PRINT_STYLEA(20,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(311,217,100,20,"678.30");
LODOP.SET_PRINT_STYLEA(21,"FontColor",16711680);
LODOP.ADD_PRINT_TEXT(311,58,100,20,"费用合计");
LODOP.SET_PRINT_STYLEA(22,"FontColor",16711680);
LODOP.ADD_PRINT_SETUP_BKIMG("<img src=Report/证件背景.jpg' />");
LODOP.SET_SHOW_MODE ("BKIMG_IN_PREVIEW",1);
}
</script> 

编码达成套打代码,专门的学问量大不说,完毕逻辑特别复杂,精准度无法掌握控制。如下图中的打字与印刷,很显然为了对齐大写的“现金支付”栏目,其余项指标打字与印刷都曾经偏离。

在线演示及源码下载地址:

http://www.gcpowertools.com.cn/products/activereports\_demo.htm
图片 7

连带阅读:

【报表福利大放送】100余套报表模板免费下载 

 矩表 –
今世数量解析中供给的报表工具

 

在这之中山大学部分内容依然相比好理解的,不一样的意义调用分化的函数Preview为预览、Setup为爱戴、Design为安排。

图片 8

在套打大巴时候,注意要求经过下边代码来设置展现背景图片(打字与印刷的时候,是不打字与印刷背景的卡塔尔国。

 

LODOP.ADD_PRINT_SETUP_BKIMG("<img src=Report/证件背景.jpg' />");
LODOP.SET_SHOW_MODE ("BKIMG_IN_PREVIEW",1); //打印预览时是否包含背景图

动用情状

别的,由于表格的内容都是写在HTML页面中的,由此在动态设置剧情的时候,豆蔻梢头能够用脚本来读取分界面成分作为数据源,二得以经过后台代码自动生成脚本代码,输出到前台页面中,看现实的急需了。

套打作用在五行的表格打字与印刷中都有很宽泛的施用。如小票打字与印刷,发货运单,以至科学普及的各个证据等,上面大家就来看某个行当套打报表的演示。
财务系统中小票打字与印刷正是非常卓绝的套打报表的实例。在报表设计进程中只要求将诸如:名称、抬头、地址电话等音信,而任何背景不会输出到打字与印刷机中。

套打客车预览分界面差不离如下图所示,其铁赫色部分是内需打字与印刷的内容,背景图片是叁个收据的模范。

图片 9

图片 10

发货物运输单是电子商务系统中十一分独立的套打报表,打字与印刷时只会打字与印刷数据,比如:客户编码、寄件公司、联络人、地址等音信。

上面代码是通过脚本获取分界面成分来获取相应的内容的,这种情形符合于分界面上大概会修正部分打印的源委的气象。

图片 11

LODOP.ADD_PRINT_TEXT(95, 695, 250, 52, document.getElementById("txtCompanyName").innerText); //业户名称
LODOP.SET_PRINT_STYLEA(1, "FontSize", 14);
LODOP.SET_PRINT_STYLEA(1, "Bold", 1);
var licenseDate = document.getElementById("txtLicenseDate").value;//证件有效期
var licenseYear = "";
var licenseMonth = "";
var licenseDay = "";
if (licenseDate != null && licenseDate != "") {
licenseYear = licenseDate.split("-")[0];
licenseMonth = licenseDate.split("-")[1];
licenseDay = (licenseDate.split("-")[2]).substr(0, 2);
}
LODOP.ADD_PRINT_TEXT(396, 190, 46, 22, validateYear); //有效期 结束 年 
LODOP.SET_PRINT_STYLEA(6, "FontSize", 11);
LODOP.SET_PRINT_STYLEA(6, "Bold", 1);
LODOP.ADD_PRINT_TEXT(396, 253, 30, 22, validateMonth); //有效期 结束 月
LODOP.SET_PRINT_STYLEA(7, "FontSize", 11);
LODOP.SET_PRINT_STYLEA(7, "Bold", 1);
LODOP.ADD_PRINT_TEXT(396, 304, 32, 22, validateDay); //有效期 结束 日
LODOP.SET_PRINT_STYLEA(8, "FontSize", 11);
LODOP.SET_PRINT_STYLEA(8, "Bold", 1);

除此而外上述管见所及的套打报表打字与印刷成效,像大家生活中储蓄凭条,等证据及小票的打字与印刷用就是套打成效。

最终附上它的统筹分界面,个中变化代码作用能够生成用于静态HTML中的内容布局显示,做肯定的校勘调治就可以用在动态页面中了。特别实用的贰个职能。

图片 12

图片 13

达成方式

上述所述是我给大家介绍的Web打字与印刷建设方案之证件套打客车落实思路,希望对大家有所帮忙,假若大家有任何疑问请给本身留言,作者会及时恢复生机我们的。在这也特别多谢大家对台本之家网址的支撑!

本文以赐紫含桃城报表为例,在计划报表阶段加载套打纸作为报表背景图片,实际打字与印刷时仅将数据打字与印刷到套打纸的对应地点,以便更有助于的落到实处报表套打。

您恐怕感兴趣的稿子:

  • Web打字与印刷解决方案之普通报表打字与印刷效率
  • 网页WEB打字与印刷控件制作
  • JavaWeb达成打字与印刷作用
  • 选用javascript完结web页面中钦点区域打字与印刷
  • js调控web打字与印刷(局地打字与印刷)方法整理
  • web打印 window.print()介绍
  • web的各类前端打字与印刷格局之jquery打字与印刷插件jqprint完毕网页打字与印刷
  • web的种种前端打字与印刷形式之jquery打字与印刷插件PrintArea完结网页打字与印刷
  • web 页面分页打字与印刷的贯彻
  • web打字与印刷小结

 

1.
新建报表文件

环视制式表获取复印件,设置为背景层;创立PAJERODL
报表,增添背景图片,并基于打字与印刷参数来呈现可能蒙蔽背景图片,注意,要是对格式有特别严苛的供给,提议选用页面报表。

图片 14

 

 

2.
增多背景图片到报表

报表增加实现之后,在报表能源处理器中的【嵌入式图像】节点中增加增值税收据背景图片。

图片 15

 

3.
增多图片控件

将图纸控件增添到设计器中,并设置图片的以下属性:

图片 16

 

4.
设置好背景图片

图片 17

到此背景已经设置在Default层中,背景层经常没有必要打字与印刷出来(因为是依照制式表格打字与印刷的卡塔尔国,由此设置Default层的TargetDevice
属性。

图片 18

接下去设置套打内容控件。

 

5.
应用报表分层进行套打

山葫芦城报表控件首创建议报表层的安插性思想,报表分层设计是对报表中央调节件分组管理和设计,可对同组内的百分百控件进行锁定/解锁,增加/删除,呈现/隐藏,调治光滑度等操作,分解报表设计,裁减复杂报表模板的设计难度。相同的时间,可以层为单位决定其在不一样道具上的可以预知性,如是不是在纸张呈现,该层全体的控件是还是不是输出到显示屏,该层是还是不是用于导出。零编码实现生龙活虎式多份、报表套打等中华夏族民共和国式报表需要。

 

6.
落到实处套打注重-新建层

张开【层微处理器】
点击+
符号,命名称叫控件层,选中央调控件层后,在控件层中地方增加对应控件。

图片 19

加多控件到控件层 

图片 20

 

7.
预览报表

图片 21

转发请表明来源:草龙珠城报表

 

相关阅读:

在线民报告表设计实战类别 –
制作图表类报表
在线民报告表设计实战种类 –
制作交叉剖判表
在线民报告表设计实战连串 –
制作多Y轴组合图表

 

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注