zoukankan      html  css  js  c++  java
  • FastReport快速实现条形码,二维码面单打印

    一、什么是FastReport?

    FastReport是功能齐全的报表控件,使开发者可以快速并高效地为·NET/VCL/COM/ActiveX应用程序添加报表支持。

    FastReport有很多产品,如FastReport.Net、FASTREPORT VCL等,这里不一一去做概述,描述下FastReport.Net的具体使用。

    FastReport.Net

    A、是一款适用于Windows Forms, ASP.NET和MVC框架的功能齐全的报表分析解决方案。

    B、可用在Microsoft Visual Studio 2005到2015,支持.Net Framework 2.0到4.x。

    C、2013版支持AJAX,云存储,地图编辑器和自定义标签。

    二、使用FastReport可以完成什么功用?

    打印预览、打印设计、导出PDF、根据数据源生成报表等

    三、如何使用FastReport?

    (1)下载安装

    下载地址:链接: https://pan.baidu.com/s/1wAx3A-chefjgVUwWjvzDLw  密码: 2dca

    解压后,见以下文件:

    (2)打开程序,并进行界面汉化

    A、双击Demo.exe打开程序

    B、在弹出窗体中,点击设计按钮

     弹出设计界面:

    C、点击菜单File-- Select Language

    弹出界面如下:界面已汉化

    (3)设计模板:

     A、根据情况,可适当删除画布中的位置,只保留Data数据区部分,删除方式见下图:

    在对应模块的空白区域,点击右键--删除即可:

    B、设置页面的尺寸:(很重要,与打印的面单纸大小要一致,如A4纸,或自定义的尺寸)

     

    弹出设置窗口,如下:

    点击确定后,画布会自动调整尺寸大小

    C、点击左侧的工具,进行排版设计(此处以一个条形码做为案例):

    点击条形码按钮,弹出编码方式,这里选择Code128(原因是生成的数据会做压缩,条形码更简洁,见下图有对比)

    点击后,把鼠标移动到data编辑区,即可以看到一个条形码随鼠标移动:

    如需添加文字,左侧的工具栏也有对应的按钮。

    (4)保存模板:.frx后缀名

    (5)电脑连接好打印机,安装好驱动,保证在打印机列表中,可以选择。

    (6)在项目中使用模板,进行打印操作

     1 private bool GodownEntryPrint(string instorageNumber, string localhostCode)
     2         {
     3             try
     4             {
     5                 //创建Report对象
     6                 var report = new Report();
     7                 //获得模板的路径
     8                 string reportLabel = Application.StartupPath + @"" + "Report\GodownEntry.frx";
     9                 //判断文件是否存在
    10                 if (!File.Exists(reportLabel))
    11                 {
    12                     MessageTool.Show("标签模板不存在!请先获取标签模板!");
    13                 }
    14                 //清空
    15                 report.Clear();
    16                 //加载报表模板
    17                 report.Load(reportLabel);
    18                 //获取模板中,对应的TextObject节点-替换模板内容
    19                 var textObject = report.FindObject("Text2") as TextObject;
    20                 if (textObject != null) textObject.Text = localhostCode;   //库位编码
    21 
    22                 //同理:一/二维码文本替换
    23                 var barcodeObject = report.FindObject("Barcode1") as BarcodeObject;
    24                 if (barcodeObject != null)
    25                 {
    26                     barcodeObject.Text = instorageNumber;   //入库单号
    27                     //更改一维码的生成方式为Code128码
    28                     barcodeObject.Barcode = new Barcode128();
    29                 }
    30 
    31                 //预览面单
    32                 //report.Show();
    33                 //默认不显示打印机选择页面
    34                 report.PrintSettings.ShowDialog = false;
    35                 //获取打印机的名称,这里是通过封装的方法去获取打印机名,这里可以直接指定“打印机名称”; 
    36                 string strPrintName = PrinterHelper.GetPrintSetting("LocationPrint");
    37                 if (string.IsNullOrWhiteSpace(strPrintName))
    38                 {
    39                     MessageTool.Show("未设置打印机!");
    40                     return false;
    41                 }
    42                 //当前操作打印机
    43                 report.PrintSettings.Printer = strPrintName;
    44                 //启动打印
    45                 report.Print();
    46             }
    47             catch (Exception)
    48             {
    49                 return false;
    50             }
    51             return true;
    52         }
  • 相关阅读:
    Mysql 服务无法启动 服务没有报告任何错误
    mysql国内镜像下载网址
    windows上自动设置java环境变量的脚本
    史上最详细的新浪广告系统技术架构优化历程
    十分钟理解广告系统
    Nginx基础配置指令
    nginx配置详情(总结)
    利用tcpdump抓包工具监控TCP连接的三次握手和断开连接的四次挥手
    Windows7配置QT-Android开发环境!
    一位计算机专业硕士毕业生的求职经历和感想[转载]
  • 原文地址:https://www.cnblogs.com/xmyjcs/p/8733624.html
Copyright © 2011-2022 走看看