以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  外部引用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7497)

--  作者:sophia
--  发布时间:2010/7/1 22:15:00
--  外部引用

我想把当前表的第一列产生一个二维码(纠错水平:M,QR版本:7,QR码大小:3,产生的二维码图像保存在“d:\\图像”目录下),在狐表中应该怎么做?

我有一个二维码dll 文件QRCodeLib.dll,并且有示例说明如下:

///二维码
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
String encoding = "Byte";

qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
int scale = Convert.ToInt16(QR码大小);
qrCodeEncoder.QRCodeScale = scale;

int version = Convert.ToInt16(QR码版本);
qrCodeEncoder.QRCodeVersion = version;

string errorCorrect = cboCorrectionLevel.Text;
if (errorCorrect == "L")
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L;
else if (errorCorrect == "M")
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
else if (errorCorrect == "Q")
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q;
else if (errorCorrect == "H")
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H;

Image image;
String data = 条形码数据;
image = qrCodeEncoder.Encode(data);

image.Save(文件路径, System.Drawing.Imaging.ImageFormat.Jpeg);

 

 


--  作者:lxl
--  发布时间:2010/7/1 22:36:00
--  

看代码,这是一个托管dll,引用起来很简单了。

QRCodeLib.dll放到foxtable目录下面就能直接用了。

Dim qrCodeEncoder As new QRCodeEncoder

Dim encoding As String= "Byte"

qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE
Din scale As Integer = Convert.ToInt16(3)
qrCodeEncoder.QRCodeScale = scale

Dim version As Integer = Convert.ToInt16(7)
qrCodeEncoder.QRCodeVersion = version

Dim errorCorrect As String = cboCorrectionLevel.Text
if  errorCorrect = "L" Then
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.L
elseif  errorCorrect = "M" Then
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M
elseif errorCorrect = "Q" Then
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.Q
elseif (errorCorrect = "H" Then
    qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.H

End If

Dim image As Image
Dim data  As String = Tables("表A").Current("第一列")

image = qrCodeEncoder.Encode(data)

image.Save("d:\\图像\\a.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

 

 

 

大概是这样的 。没调试,可能有些错误


--  作者:lxl
--  发布时间:2010/7/1 22:40:00
--  

哦 仔细看了一下。 cboCorrectionLevel.Text是组合框 让你选纠错水平的  这里可以去掉

 

 

为了理解 我把代码简化一下:

Dim q As new QRCodeEncoder

q.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE
q.QRCodeScale = 3

q.QRCodeVersion = 7

q.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M
Dim image As Image
Dim data  As String = Tables("表A").Current("第一列")

image = q.Encode(data)

image.Save("d:\\图像\\a.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

 


 


--  作者:狐狸爸爸
--  发布时间:2010/7/2 7:39:00
--  
呵呵,楼主把QRCodeLib.dll放到foxtable目录下面后,别忘记引用一下。
--  作者:sophia
--  发布时间:2010/7/2 8:29:00
--  
我把QRCodeLib.dll已经复制到了foxtable目录下,并且保存退出。可是上述代码第一行就报错:
图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
没有QRCodeEncoder这个类型,是QRCodeLib.dll没起作用吗?还是别的原因?
--  作者:lxl
--  发布时间:2010/7/2 8:39:00
--  

呵呵 看4楼  

要添加一下引用


--  作者:sophia
--  发布时间:2010/7/2 8:42:00
--  
以下是引用lxl在2010-7-2 8:39:00的发言:

呵呵 看4楼  

要添加一下引用

已经添加了啊

 


--  作者:sophia
--  发布时间:2010/7/2 8:54:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:未命名1.jpg
图片点击可在新窗口打开查看

--  作者:lxl
--  发布时间:2010/7/2 9:03:00
--  

是命名空间的事情。你把dll发上来,把命名空间也导入就可以了


--  作者:sophia
--  发布时间:2010/7/2 9:28:00
--  
不太懂,能详细说说吗?
图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看