当前位置:网站首页>C#实现水晶报表绑定数据并实现打印3-二维码条形码
C#实现水晶报表绑定数据并实现打印3-二维码条形码
2022-07-05 16:40:00 【coder i++】
C#实现水晶报表绑定数据并实现打印3-二维码条形码
在水晶报表中显示条形码/二维码
1、将数字或字符转换为条形码或二维码
2、将条形码或二维码在报表中展示
操作二维码的dll
zxing.net
参考:https://blog.csdn.net/xiaoyong_net/article/details/51242190
插入图片
参考:https://www.cnblogs.com/babyt/archive/2009/05/26/1490368.html
主要是如何读取本地图片显示在报表中。
如果是CR XI及以上版本,可以用更简便的方法,参考:水晶报表图片动态加载的另一种简单方案
本文的方法是:水晶报表中如何动态加载图片(图片文件版本及数据库版本) 中的图片文件版本。
本文适用于VS2003及VS2005自带版本的水晶报表,当然同样适用于CR XI及以上版本,就是烦了点。
本文使用VS2005及自带版本的水晶报表。
在这里,我把命题重新提炼一下:
已经有一个完整的报表,现在报表需要加载一个本地磁盘图片做为logo。报表中的Logo随着本地图片的变化自动变化。一般我们通过插入一个pictureobject来插入磁盘图片,但是插入后,图片就成为报表的一份,达不到变化的目的。
1、首先我们已经有一个单表的完整的水晶报表应用
2、为了能挂接我们的本地图片,在dataset里新建一个表mylogo。里面放上两个字段,字段类型为System.Byte[]或System.SByte[]
注意,默认类型里只有System.Bytet 和System.SByte,要自己输入的。
这个mylogo就是一个中介,我们把本地图片读到这个表里,水晶报表从这个表里读到图片显示。
3、在现有报表里加入一个子报表,数据源就是这个mylogo 把两个字段拖到子报表上。
4、代码是这样的
//设置数据源信息
DataSet1 ds1 = new DataSet1();
OleDbDataAdapter da = new OleDbDataAdapter();
String connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath ("~/app_data/test.mdb")+";";
OleDbConnection cn = new OleDbConnection(connstr);
//获取记录集,注意,最终获取的记录集需要与xsd的结构一致!
da = new OleDbDataAdapter("SELECT EmployeeId1 as EmployeeId,EmployeeName1 as EmployeeName From Employee1", cn);
da.Fill(ds1, "Employee");
//把本地图片先写入到数据集
//将图片读到stream,并转换为byte[]
//图片1
FileStream fs1 = new FileStream(@"c:\1.bmp", FileMode.Open, FileAccess.Read);
BinaryReader br1 = new BinaryReader(fs1);
byte[] bt1 = br1.ReadBytes((int)fs1.Length);
//图片2
FileStream fs2 = new FileStream(@"c:\a2.jpg", FileMode.Open, FileAccess.Read);
BinaryReader br2 = new BinaryReader(fs2);
byte[] bt2 = br2.ReadBytes((int)fs2.Length);
fs1.Close();
fs2.Close();
//写入到ds1中(仅1行)
ds1.myLogo.AddmyLogoRow(bt1, bt2);
//以上为数据部分,与报表无关
//-----------------------------------------------------------
//以下为报表部分
//使用报表对象加载报表
string reportPath = Server.MapPath("~/app_data/crystalreport1.rpt");
myReport.Load(reportPath);
//绑定数据集,注意,一个报表用一个数据集。
myReport.SetDataSource(ds1);
CrystalReportViewer1.ReportSource = myReport;
边栏推荐
- [Jianzhi offer] 62 The last remaining number in the circle
- American chips are no longer proud, and Chinese chips have successfully won the first place in emerging fields
- 通过proc接口调试内核代码
- Thoughtworks 全球CTO:按需求构建架构,过度工程只会“劳民伤财”
- Cs231n notes (bottom) - applicable to 0 Foundation
- 【729. 我的日程安排錶 I】
- 编译libssh2报错找不到openssl
- Read the basic grammar of C language in one article
- 【性能测试】全链路压测
- Is it safe to open an account for digging wealth stocks? How is it safe to open a stock account?
猜你喜欢
Embedded UC (UNIX System Advanced Programming) -1
npm安装
腾讯音乐上线新产品“曲易买”,提供音乐商用版权授权
First day of learning C language
机器学习编译第2讲:张量程序抽象
Machine learning compilation lesson 2: tensor program abstraction
High number | summary of calculation methods of volume of rotating body, double integral calculation of volume of rotating body
Games101 notes (III)
IDC报告:腾讯云数据库稳居关系型数据库市场TOP 2!
dried food! Semi supervised pre training dialogue model space
随机推荐
C# TCP如何设置心跳数据包,才显得优雅呢?
高数 | 旋转体体积计算方法汇总、二重积分计算旋转体体积
【剑指 Offer】62. 圆圈中最后剩下的数字
IDC报告:腾讯云数据库稳居关系型数据库市场TOP 2!
Rider 设置选中单词侧边高亮,去除警告建议高亮
It is forbidden to copy content JS code on the website page
Copy mode DMA
【剑指 Offer】61. 扑克牌中的顺子
腾讯音乐上线新产品“曲易买”,提供音乐商用版权授权
2022 年 Q2 加密市场投融资报告:GameFi 成为投资关键词
張平安:加快雲上數字創新,共建產業智慧生態
Embedded-c language-6
Wechat official account web page authorization login is so simple
CMake教程Step6(添加自定义命令和生成文件)
Hiengine: comparable to the local cloud native memory database engine
【beanshell】数据写入本地多种方法
Data verification before and after JSON to map -- custom UDF
URP下Alpha从Gamma空间到Linner空间转换(二)——多Alpha贴图叠加
The survey shows that the failure rate of traditional data security tools in the face of blackmail software attacks is as high as 60%
【7.7直播预告】《SaaS云原生应用典型架构》大咖讲师教你轻松构建云原生SaaS化应用,难题一一击破,更有华为周边好礼等你领!