因特殊图片打印要求,用了query1+DBGrid1+QuickRep1+QRImage 这几个控件来实现:1.图片存储在D:\Pictuer 文件夹,图片名称存储在数据库表 TPicture.2.在QuickRep1上放了20个QRImage来显示20张图片,也就是在一页A4纸上打印20张图片.3.已经查询要打印图片的名称到query1,并且显示了图片的名称在DBGrid1,
根据每次打印图片数量的不同,有时1-150左右不等.假如要打印98张图片,
怎样从query1读取图片名称和加载对应的D:\Pictuer 文件夹的图片
到QuickRep1上显示,当打印完第一页图片后,接着打印第二页,以此类推... 各位有什么好的实现方法??? 高分相送
根据每次打印图片数量的不同,有时1-150左右不等.假如要打印98张图片,
怎样从query1读取图片名称和加载对应的D:\Pictuer 文件夹的图片
到QuickRep1上显示,当打印完第一页图片后,接着打印第二页,以此类推... 各位有什么好的实现方法??? 高分相送
解决方案 »
- 执行一句SQL将返回100行,可以每次压10行到一个数组吗?
- 关于登录窗口的问题。
- 我想做一个edit组件,请问edit在窗体设计是改变他的大小时,产生哪个事件?
- 如何对enable属性为false的memo控件中显示的内容进行复制,拷贝?
- 请教各位大虾,ComboBox.AddItem() 怎么使用?
- 这句SQL语句什么意思?
- 各位大虾帮忙侃侃我的代码好吗??(是数据库连接的)
- 我用webbrower打开了一个指定网页,我想在这个网页中查找指定的字符,怎么做?分数不是问题。
- 用QRRichtext在自动换行后,为什么会出现一行空格,怎么去掉这行空格
- 请问那一位大侠有GBK的编码规则?急急急急急!!!
- *******公司开表彰大会。开完会,销售人员个个都洋洋得意,好像在过年;开发人员个个都垂头丧气,好像死了娘。老板,说句心里话:我们对
- 服务器windows 2003 server SQL数据库连接问题
说下我的解决方法.
用的是Access数据库,ADOQuery,QRImage,QuickRep,QRDBText这几个控件实现双列打印(也可以更多列,自己设置).
假设一下你的数据库TPicture表有两个字段,Name(图片名)和Image(OLE对象存图片).
步骤:
1.新建Form1,添加ADOQuery1,设置数据库连接.其SQL属性添加查询语句'select * from TPicture';
2.添加QuickRep1,属性:Page->Comlumns设置为2(列数);DataSet设置为ADOQuery1;
3.添加QRBand1,BandType属性设为rbDetail,注意!!!如果这里设置不正确,就不能显示出数据库所有内容.
4.在QRBand1上添加QRImage1和QRDBText1,其中QRImage所有属性默认;QRDBText1的DataSet设为ADOQuery1,DateField属性设为'Name'(TPicture表里的字段)
5.真正有技术含量的地方在这里.强调!!! 在ADOQuery1的AfterScroll事件中添加读取图象的代码,QRImage默认读取的格式是BMP,如果你的数据库存是JPEG格式需要自己转换,恕不赘述.
6.好了,到这里已经基本搞定,加个按钮Button1,在Click事件里添加代码'QuickRep1.Preview;'F9运行程序点Button1就可以看到预览页面了.
7.如果有其它不明白的地方,可以加我QQ17382959,注明CSDN学友就可以了
注意:我的图片是存储在D盘上 D:\picture文件夹里,图片格式是*.JPG
现在想'select TPName from TPicture'查询出图片的名称,
然后加载存储在D盘上 D:\picture文件夹里的图片到QuickRep1上,实现多页打印.可有好方法? TKS!
可以试下这样.
还是在ADOQuery1的AfterScoll事件里添加以下代码:procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
var JpegPic : TJpegImage;
begin
if (not ADOQuery1.Bof) or (not ADOQuery1.Eof) then
begin
JpegPic := TJpegImage.Create;
try
JPEGPic.LoadFromFile(ADOQuery1.FieldByName('Name'),AsString);
//这里用数据库里的文件名,当然需要是完整带路径的文件名
QRImage1.Picture.Graphic := JPegpic;
except
end;
JpegPic.Free;
end;
end;哈哈,实现了吧?
几万张的图片存储到数据库里面占用空间太大了,
所以我选择把图片存储在D盘的 D:\picture文件夹里,
并且每次所要打印的图片数量是不同的,1、2、3--150张左右不等,
另外我把图片名称单独存储在数据库表TPicture,
这样就可以根据要查询出的图片数量和名称,
来加载D:\picture文件夹里的图片实现多页打印了。
就是没有找到好的实现方法???继续等待。