[AX2012 R3]在SSRS报表中使用QR二维码

AX2012是自带生成QR二维码的类,可以很方便的用在SSRS报表中,下面演示如何在RDP的报表中使用二维码,首先从定义临时表开始:

字段URL是要用于二维码的字符串,QrCode是container类型,保存最终生成的二维码图形二进制数据。

DP类:

class TestQrCodeDp extends SRSReportDataProviderBase
{
    TestQrCodeTmp   qrCodeTmp;
}
[
    SRSReportDataSetAttribute(tableStr(TestQrCodeTmp))
]
public TestQrCodeTmp getQrCodeTmp()
{
    select qrCodeTmp;
    return qrCodeTmp;
}
public void processReport()
{
    container       imageContainer;
    str             url=‘http://www.cnblogs.com/duanshuiliu/‘;
    EFDocQRCode_BR  qrCode = new EFDocQRCode_BR();

    imageContainer = qrCode.generateQRCode(url);

    qrCodeTmp.clear();
    qrCodeTmp.URL=url;
    qrCodeTmp.QrCode=imageContainer;
    qrcodeTmp.insert();
}

这里使用类EFDocQRCode_BR来生成二维码图片并保存在container中,从后缀名看应该是巴西地区的feature,图片默认为bmp格式。这个类是对.net的Microsoft.Dynamics.QRCode.Encoder类的封装,AOT的C#工程QrCode包含了完整的代码。

EFDocQRCode_BR内部调用的是Microsoft.Dynamics.QRCode.Encoder.GetTempFile(),它将二维码图片保存在临时文件后,在AX中使用BinData读取临时文件内容到container,如果你不想使用这种临时文件的方法,希望在内存中直接实现,可以如下直接使用.net的Encoder:

public void processReport()
{
    Microsoft.Dynamics.QRCode.Encoder   qrCode=new Microsoft.Dynamics.QRCode.Encoder();
    System.Drawing.Bitmap bitmap;
    container       imageContainer;
    str             url=‘http://www.cnblogs.com/duanshuiliu/‘;
    System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();

    bitmap=qrCode.Encode(url);
    bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat::get_Png());
    imageContainer=Binary::constructFromMemoryStream(memoryStream).getContainer();

    qrCodeTmp.clear();
    qrCodeTmp.URL=url;
    qrCodeTmp.QrCode=imageContainer;
    qrcodeTmp.insert();
}

生成的二维码图片被编码为Png格式保存在container,最后插入到临时表中。

创建SSRS报表,使用这个RDP作为dataset,图片在precision design或者auto desgin上都可以使用,比如下面的auto design:

设置图片的source为Database,相应的MIME Type,expression则是dataset的二维码数据字段。

最后的预览效果:

拿出你的手机扫扫看吧。

时间: 2024-08-12 01:39:11

[AX2012 R3]在SSRS报表中使用QR二维码的相关文章

pbfunc外部函数扩展应用-直接在Datawindow中生成QR二维码,非图片方式

利用pbfunc外部函数在Datawindow中直接生成QR二维码,非图片方式.需要注意以下面几点: 1 Datawindow的DataObject的单位必须为像素(Pixels). 2 Datawindow的DataObject中放一个Text控件作为要显示QR二维码的位置和大小,长宽要相同 下面代码演示在Datawindow中直接显示QR二维码的操作: 在Datawindow中显示一行QR码: 1 string ls_Data 2 ls_Data = mle_1.Text//QR码内容 3

【转】Delphi+Halcon实战一:两行代码识别QR二维码

Delphi+Halcon实战一:两行代码识别QR二维码 感谢网友:绝代双椒( QQ:51536348)的支持 本文是绝代双椒的作品,因为最近在忙zw量化培训,和ziwang.com网站的升级,halcon没时间操作. 不过,随着国内产业升级,机器人行业的发展,Delphi+Halcon的未来,是无可限量的. 其他网友,有halcon这方面作品的,有需要,也可以交给zw转发. 另外,zw正在争取培训机构合作,开办Delphi+Halcon方面的培训的项目,有兴趣的机构可以联系QQ:3578117

Google API快速生成QR二维码

Google API快速生成QR二维码 现在来说生成二维码最简单的方法是使用Google Chart API来实现,再次膜拜Google大神- Google Chart API是一套可以让你在线生成报表图的系统,通过URL你可以得到各种图表.举个例子:你在浏览器中输入 https://chart.googleapis.com/chart?cht=qr&chs=200×200&choe=UTF-8&chld=L|4&chl=http://Codeup.org 你将得到一个内容

在树莓派(Debian系统)上通过usb摄像头扫描识别QR二维码

树莓派(Debian系统)自带Python开发环境IDLE(Python 2.7.3),接上摄像头,就能通过Python实行对QR code的创建和识别: 首先,需要在树莓派上安装如下工具: sudo apt-get install python-imaging sudo apt-get install zbar-tools sudo apt-get install qrencode sudo apt-get install python-pygame 然后创建qrcode.py文件: #!/u

Android "QR二维码扫描"

没什么说的,上图上源码 git: http://git.oschina.net/892642257/QRCode csdn(0分): http://download.csdn.net/detail/onlyonecoder/7713589 Android "QR二维码扫描"

C# QR二维码DEMO

C# QR二维码DEMO QR二维码 二维码的一种 相关技术 ThoughtWorks.QRCode 第三方类库 DEMO功能 Encode 生成二维码图片 Encoding 编码 Correction Level 等级 Version 版本 Size 大小 Decode 解密二维码 GitHub .NET-Demo/QRCode/ 原文地址:https://www.cnblogs.com/bmbh/p/9034487.html

在Vue项目中动态生成二维码 阿星小栈

一.使用jquery.qrcode生成二维码 1.首先在页面中加入jquery库文件和qrcode插件 <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="jquery.qrcode.min.js"></script> 2.在页面中需要显示二维码的

在DevExpress程序中使用条形码二维码控件,以及进行报表打印处理

在很多业务系统里面,越来越多涉及到条形码.二维码的应用了,不管在Web界面还是WInform界面都需要处理很多物料相关的操作,甚至很多企业为了减少录入错误操作,为每个设备进行条形码.二维码的标签,直接在流程中进行扫描处理,仅仅在界面勾选一些处理选项即可,极大提高工作效率,降低出错的几率.本篇随笔介绍如何在基于WInform的DevExpress程序中对条形码.二维码的处理,包括界面展示,报表打印等常规的处理. 1.DevExpress的条形码操作及报表打印 在15.1以上的DevEpxress版

QR二维码(转)

二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等.这两天学习了一下二维码图片生成的相关细节,觉得这个玩意就是一个密码算法,在此写一这篇文章 ,揭露一下. 基础知识 首先,我们先说一下二维码一共有40个尺寸.官方叫版本Version.Version 1是21 x 21的矩阵,Version 2是 25 x 25的矩阵,Version