ActiveReports 报表应用教程 (5)---解密电子商务领域首张电子发票的诞生(套打报表)

简介: 原文:ActiveReports 报表应用教程 (5)---解密电子商务领域首张电子发票的诞生(套打报表)6月27日京东商城发布了中国电子商务领域首张电子发票,同时宣布相关系统正式上线,这标志着中国电子商务的步伐又向前迈出了重要的一步。
原文: ActiveReports 报表应用教程 (5)---解密电子商务领域首张电子发票的诞生(套打报表)

6月27日京东商城发布了中国电子商务领域首张电子发票,同时宣布相关系统正式上线,这标志着中国电子商务的步伐又向前迈出了重要的一步。目前“电子发票”覆盖的服务范围是在北京地区购买图书、音像商品的个人消费者。消费者在进行指定品类网上消费时可选择开具普通纸质发票或电子发票。本文将揭秘如何通过 ActiveReports 报表实现电子发票的功能。

在使用 ActiveReports 报表控件实现发票打印、发货单打印、物流清单打印、商品条码印刷、员工工卡印刷之类的功能时,您只需在设计报表阶段加载套打纸作为报表背景图片,实际打印时仅将数据打印到套打纸的相应位置。

1、创建报表文件

创建报表,添加背景图片,并根据打印参数来显示或者隐藏背景图片

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

ActiveReports 报表功能展示 页面报表

报表添加完成之后,在报表资源管理器中的【嵌入式图像】节点中添加增值税发票背景图片

ActiveReports 报表功能展示 页面报表

从VS工具箱中将 Image 控件添加到报表设计界面,并设置 Image 控件的值,如下所示:

ActiveReports 报表功能展示 页面报表

ActiveReports 报表功能展示 报表参数

添加完背景图片之后,我们在相应文字添加 TextBox 控件用于显示数据,最终得到的设计效果如下:

image_thumb7

2、自定义 WebViewer 控件

自定义 WebViewer 控件,在工具栏中添加【套打】按钮,当用户点击【套打】时运行报表(不显示背景图)并打印

在工程的ASPX页面中添加两个 WebViewer 控件,一个用于报表预览,一个用于报表打印. 添加完成之后设置两个WebViewer控件的ViewerType为FlashViewer,

并设置FlashViewerOptions中的UseClientApi为True.

在页面中添加以下 JavaScript ,用于报表的打印操作:

    <script language="javascript" type="text/javascript">
        var viewer, viewerforprint;
        var pages;
 
        window.onload = function () {
            GrapeCity.ActiveReports.Viewer.OnLoad("<%=WebViewer1.ClientID %>", function () {
                viewer = GrapeCity.ActiveReports.Viewer.Attach("<%=WebViewer1.ClientID %>");
                viewer.setEventsHandler({
                    OnToolClick: function (e) {
                        if (e.Tool == "套打") {
                            printreport();
                            return false;
                        }
                    },
                    OnLoadProgress: function (e) {
                        if (e.State == "Completed") {
                            pages = e.PageCount;
                        }
                    }
                });
            });
 
            GrapeCity.ActiveReports.Viewer.OnLoad("<%=WebViewer2.ClientID %>", function () {
                viewerforprint = GrapeCity.ActiveReports.Viewer.Attach("<%=WebViewer2.ClientID %>");
            });
        }
 
        function printreport() {
            var orient = "None";
            var scale = "None";
            var from = 1;
            var to = pages;
            var ops = viewerforprint.CreatePrintOptions();
            ops.AdjustPaperOrientation = orient;
            ops.ScalePages = scale;
            ops.ClearPageRanges();
            ops.AddPageRange(from, to);
 
            viewerforprint.Print(ops);
 
        }
 
    </script>

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

    private void CustomizeToolbar()
    {
        // 隐藏打印范围按钮
        ToolBase btnRang = WebViewer1.FlashViewerToolBar.Tools["PageRangeButton"];
        btnRang.Visible = false;
 
        // 隐藏打印按钮
        ToolBase btnPrint = WebViewer1.FlashViewerToolBar.Tools["PrintButton"];
        btnRang.Visible = false;
 
        ToolButton btnCPrint = Tool.CreateButton("套打");
        btnCPrint.Caption = "套打";
        btnCPrint.ToolTip = "套打";
 
        WebViewer1.FlashViewerToolBar.Tools.Insert(0, btnCPrint);
    }

3、运行程序

ActiveReports 报表功能展示 报表套打 增值税发票

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

http://www.gcpowertools.com.cn/products/activereports_demo.htm
ActiveReports 报表功能展示

目录
相关文章
|
8天前
|
数据采集 人工智能 安全
|
4天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:七十、小树成林,聚沙成塔:随机森林与大模型的协同进化
随机森林是一种基于决策树的集成学习算法,通过构建多棵决策树并结合它们的预测结果来提高准确性和稳定性。其核心思想包括两个随机性:Bootstrap采样(每棵树使用不同的训练子集)和特征随机选择(每棵树分裂时只考虑部分特征)。这种方法能有效处理大规模高维数据,避免过拟合,并评估特征重要性。随机森林的超参数如树的数量、最大深度等可通过网格搜索优化。该算法兼具强大预测能力和工程化优势,是机器学习中的常用基础模型。
298 164
|
3天前
|
机器学习/深度学习 自然语言处理 机器人
阿里云百炼大模型赋能|打造企业级电话智能体与智能呼叫中心完整方案
畅信达基于阿里云百炼大模型推出MVB2000V5智能呼叫中心方案,融合LLM与MRCP+WebSocket技术,实现语音识别率超95%、低延迟交互。通过电话智能体与座席助手协同,自动化处理80%咨询,降本增效显著,适配金融、电商、医疗等多行业场景。
307 155
|
11天前
|
SQL 自然语言处理 调度
Agent Skills 的一次工程实践
**本文采用 Agent Skills 实现整体智能体**,开发框架采用 AgentScope,模型使用 **qwen3-max**。Agent Skills 是 Anthropic 新推出的一种有别于mcp server的一种开发方式,用于为 AI **引入可共享的专业技能**。经验封装到**可发现、可复用的能力单元**中,每个技能以文件夹形式存在,包含特定任务的指导性说明(SKILL.md 文件)、脚本代码和资源等 。大模型可以根据需要动态加载这些技能,从而扩展自身的功能。目前不少国内外的一些框架也开始支持此种的开发方式,详细介绍如下。
846 6
|
5天前
|
机器学习/深度学习 人工智能 前端开发
构建AI智能体:六十九、Bootstrap采样在大模型评估中的应用:从置信区间到模型稳定性
Bootstrap采样是一种通过有放回重抽样来评估模型性能的统计方法。它通过从原始数据集中随机抽取样本形成多个Bootstrap数据集,计算统计量(如均值、标准差)的分布,适用于小样本和非参数场景。该方法能估计标准误、构建置信区间,并量化模型不确定性,但对计算资源要求较高。Bootstrap特别适合评估大模型的泛化能力和稳定性,在集成学习、假设检验等领域也有广泛应用。与传统方法相比,Bootstrap不依赖分布假设,在非正态数据中表现更稳健。
239 113