当前位置:网站首页>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;
边栏推荐
- Writing method of twig array merging
- 拷贝方式之DMA
- China Radio and television officially launched 5g services, and China Mobile quickly launched free services to retain users
- Use byte stream to read Chinese from file to console display
- ternary operator
- It is forbidden to copy content JS code on the website page
- Etcd 构建高可用Etcd集群
- 国产芯片产业链两条路齐头并进,ASML真慌了而大举加大合作力度
- Embedded UC (UNIX System Advanced Programming) -3
- 激动人心!2022开放原子全球开源峰会报名火热开启!
猜你喜欢

Embedded-c Language-2

WR | 西湖大学鞠峰组揭示微塑料污染对人工湿地菌群与脱氮功能的影响

Embedded UC (UNIX System Advanced Programming) -2

中国广电正式推出5G服务,中国移动赶紧推出免费服务挽留用户

Keras crash Guide

CMake教程Step4(安装和测试)

Deeply cultivate 5g, and smart core continues to promote 5g applications

精准防疫有“利器”| 芯讯通助力数字哨兵护航复市

composer安装报错:No composer.lock file present.

Judge whether a string is a full letter sentence
随机推荐
【剑指 Offer】61. 扑克牌中的顺子
Yarn common commands
高数 | 旋转体体积计算方法汇总、二重积分计算旋转体体积
机器学习编译第2讲:张量程序抽象
国产芯片产业链两条路齐头并进,ASML真慌了而大举加大合作力度
Jarvis OJ simple network management protocol
Jarvis OJ Flag
Android privacy sandbox developer preview 3: privacy, security and personalized experience
深潜Kotlin协程(二十一):Flow 生命周期函数
美国芯片傲不起来了,中国芯片成功在新兴领域夺得第一名
干货!半监督预训练对话模型 SPACE
First day of learning C language
Jarvis OJ Telnet Protocol
High number | summary of calculation methods of volume of rotating body, double integral calculation of volume of rotating body
网上办理期货开户安全吗?网上会不会骗子比较多?感觉不太靠谱?
采用药丸屏的iPhone14或引发中国消费者的热烈抢购
EasyX second lesson
thinkphp模板的使用
【微信小程序】一文读懂小程序的生命周期和路由跳转
Scratch colorful candied haws Electronic Society graphical programming scratch grade examination level 3 true questions and answers analysis June 2022