6月27日京東商城發布了中國電子商務領域首張電子發票,同時宣布相關系統正式上線,這標志著中國電子商務的步伐又向前邁出了重要的一步。目前“電子發票”覆蓋的服務范圍是在北京地區購買圖書、音像商品的個人消費者。消費者在進行指定品類網上消費時可選擇開具普通紙質發票或電子發票。本文將揭秘如何通過葡萄城ActiveReports報表報表實現電子發票的功能。
在使用葡萄城ActiveReports報表控件實現發票打印、發貨單打印、物流清單打印、商品條碼印刷、員工工卡印刷之類的功能時,您只需在設計報表階段加載套打紙作為報表背景圖片,實際打印時僅將數據打印到套打紙的相應位置。
1、創建報表文件
創建報表,添加背景圖片,并根據打印參數來顯示或者隱藏背景圖片
在工程中添加ActiveReports報表,報表模板選擇【ActiveReports 7頁面報表】,命名為rptInvoice.rdlx
報表添加完成之后,在報表資源管理器中的【嵌入式圖像】節點中添加增值稅發票背景圖片
從VS工具箱中將 Image 控件添加到報表設計界面,并設置 Image 控件的值,如下所示:
添加完背景圖片之后,我們在相應文字添加 TextBox 控件用于顯示數據,最終得到的設計效果如下:
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、運行程序
在線演示及源碼下載地址:
http://www.gcpowertools.com.cn/products/activereports_demo.htm
相關閱讀:
文章列表