• [Axapta]AX报表中打印条码


    在AX中可以很方便的在报表中打印出条码,这得益于AX已经包含了支持条码的类Barcode,下面我们来看看如何在报表中打印出条码。

    首先在报表中定义一个Barcode类:

    Barcode                 prodIdBarcode;

    定义一个display方法,返回条码类编码后的内容:

    display BarcodeString ProdIdBarCode()
    {
        return prodIdbarcode.barcodeStr();
    }

    将这个display方法拖到报表中,创建一个名为ProdIdBarCodeCtrl的stringControl控件,我们设其AutoDeclaration为true,这样在后面的代码中使用它。

    在报表的初始化函数中初始化这个条码类:

    void InitBarcode()
    {
        ;
        prodIdBarCode=Barcode::construct(BarcodeType::Code128);//使用128编码
    
        ProdIdBarCodeCtrl.font("BC C128 Medium");//设置控件的字体
        ProdIdBarCodeCtrl.fontSize(30);//设置控件字体大小
    
        prodIdBarCode.clear();
        if (prodIdBarCode.validateBarcode(prodTable.ProdId))//验证一下我们的内容是否能够被编码
        {
            prodIdBarCode.string(true, prodTable.ProdId);//传入要编码的字符串
            ProdIdBarCodeCtrl.visible(true);
        }
    }

    运行一下报表就能看到条码了,是不是很简单?!

    AX支持Code128、Code39、EAN8等多种编码,每种编码对应一组相应的字体,比如Code128就有BC C128 Medium、BC C128 HD Medium等字体,具体的信息可以在Basic->Setup->Barcode set up中看到。由它维护一个BarcodeSetup的表,表方法Barcode()可以得到一个Barcode类实例,所以用BarcodeSetup也是很方便的。

    就Barcode内部实现来看,它用到了动态链接库Bcfont32.dll,这是AX client安装的一个dll。这个dll导出一些编码函数,比如BC_Code128(string)实现128编码,这些函数在不同的Barcode扩展类比如BarcodeCode128被调用,是对Bcfont32.dll的封装。

  • 相关阅读:
    在多台PC上进行ROS通讯-学习笔记
    sd 卡驱动--基于高通平台
    Android安全研究经验谈
    连锁百货企业数据系统整理解决方案
    ros_indigo使用keyboard键盘控制虚拟或实际机器人
    ROS_RGB-D SLAM学习笔记--室内环境测试
    UE4 动画系统
    程序员如何利用空闲时间挣零花钱
    【福利】微信小程序130个精选Demo合集
    web开发快速提高工作效率的一些资源
  • 原文地址:https://www.cnblogs.com/duanshuiliu/p/2584761.html
Copyright © 2020-2023  润新知