zoukankan      html  css  js  c++  java
  • [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的封装。

  • 相关阅读:
    淘宝技术分享
    15个富有创意的单页设计
    jQuery全能图片滚动插件
    jquery性能优化
    Algs4-1.4.40随机输入3-sum问题
    Algs4-1.4.39 改进倍率测试的精度
    Algs4-1.4.38 3-sum的初级算法与ThreeSum性能比较
    Algs4-1.4.37自动装箱的性能代价
    Algs4-1.4.35下压栈的时间成本
    Algs4-1.4.36下压栈的空间成本
  • 原文地址:https://www.cnblogs.com/duanshuiliu/p/2584761.html
Copyright © 2011-2022 走看看