[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的二维码数据字段。
最后的预览效果:

拿出你的手机扫扫看吧。
[AX2012 R3]在SSRS报表中使用QR二维码的更多相关文章
- pbfunc外部函数扩展应用-直接在Datawindow中生成QR二维码,非图片方式
利用pbfunc外部函数在Datawindow中直接生成QR二维码,非图片方式.需要注意以下面几点: Datawindow的DataObject的单位必须为像素(Pixels). Datawindow ...
- 【转】Delphi+Halcon实战一:两行代码识别QR二维码
Delphi+Halcon实战一:两行代码识别QR二维码 感谢网友:绝代双椒( QQ号应原作者要求隐藏了:xxxx6348)的支持 本文是绝代双椒的作品,因为最近在忙zw量化培训,和ziwang.co ...
- Google API快速生成QR二维码
Google API快速生成QR二维码 现在来说生成二维码最简单的方法是使用Google Chart API来实现,再次膜拜Google大神- Google Chart API是一套可以让你在线生成报 ...
- QR 二维码总结
@(Java ThirdParty)[QR] QR 二维码总结 根据Wiki中的介绍,QR Code(Quick Response Code),二维条形码,由日志设计应用于汽车制造工业中.条形码中包含 ...
- C# vb .NET生成QR二维码
二维码比条形码具有更多优势,有些场合使用二维码比较多,比如支付.通过将某些数据生成二维码,就可以实现一码走天下.那么如何在C#,.Net平台代码里生成二维码呢?答案是使用SharpBarcode! S ...
- C# vb .NET识别读取QR二维码
二维码比条形码具有更多优势,有些场合使用二维码比较多,比如支付.那么如何在C#,.Net平台代码里读取二维码呢?答案是使用SharpBarcode! SharpBarcode是C#快速高效.准确的条形 ...
- 利用zxing制作彩色,高容错,支持中文等UTF编码的QR二维码图片
利用zxing制作彩色,高容错,支持中文等UTF编码的QR二维码图片.代码如下 import java.awt.Color;import java.io.File;import java.util.H ...
- C# QR二维码DEMO
QR二维码 二维码的一种 相关类库 ThoughtWorks.QRCode 第三方类库 DEMO功能 Encode 生成二维码图片 Encoding 编码 Correction Level 等级 Ve ...
- 如何通过github上传项目并在readme.md中展示图片二维码
将本地项目上传至github 第一步:git init (创建仓库) 第二步:git add README.md (添加项目)git add * 第三步:git commit -m &qu ...
随机推荐
- C++混合编程之idlcpp教程Lua篇(3)
上一篇 C++混合编程之idlcpp教程Lua篇(2) 是一个 hello world 的例子,仅仅涉及了静态函数的调用.这一篇会有新的内容. 与LuaTutorial0相似,工程LuaTutoria ...
- Eclipse配置详解(包括智能提示设置、智能提示插件修改,修改空格自动上屏、JDK配置、各种快捷键列表……)
Eclipse编辑器基本设置 1.添加行号 在边缘处右键 2.改字体 字体的一般配置 3.去掉拼写错误检查 4.Java代码风格 代码格式化 Ctrl + Shift + F 之后点击右边的New按钮 ...
- SpringMVC文件上传实现
SpringMVC(注解)上传文件需要注意的几个地方:1.form的enctype="multipart/form-data",这个是上传文件必须的2.applicationCon ...
- CentOS 7 service systemnctl
在之前的版本中关闭防火墙等服务的命令是 service iptables stop /etc/init.d/iptables stop 在RHEL7中,其实没有这个服务 [root@rhel7 ~]# ...
- .NET读取Office文件内容(word、excel、ppt)
引用命名空间 using Microsoft.Office.Core; using Word = Microsoft.Office.Interop.Word; using Excel = Micros ...
- SVG的路径动画效果
使用SVG animateMotion实现的一个动画路径效果,相关代码如下. 在线调试唯一地址:http://www.gbtags.com/gb/debug/c88f4099-5056-4ad7-af ...
- paip.指针 引用 c++ java的使用总结.
paip.指针 引用 c++ java的使用总结. ///////////////一般一个变量包括下面的信息 a.地址(指针) b.命名(引用,别名) c.变量内容.. 指针是一个变量的地址, ...
- springMVC乱码问题-转
彻底解决Spring MVC 中文乱码 问题 1:表单提交controller获得中文参数后乱码解决方案 注意: jsp页面编码设置为UTF-8 form表单提交方式为必须为post,get ...
- Leetcode 168 Excel Sheet Column Title 进制数转化
题意:将数字转化成excel表中的行中的项目 本质是10进制转化为26进制,但是在中间加入了一个不一样的操作,在每次操作前都需要n-- class Solution { public: string ...
- Android动画及图片的缩放和旋转
Android动画有2种,一种是Tween Animation,另一种是Frame Animation,先说说Tween动画吧. Tween动画是对视图对象中的内容进行一系列简单的转换,比如位置的移动 ...