标题:ActiveReport 如何打印显示在listview中用sql查询到的内容?
只看楼主
mmjun1001
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-7-30
结帖率:50%
已结贴  问题点数:10 回复次数:5 
ActiveReport 如何打印显示在listview中用sql查询到的内容?
请教大家ActiveReport 如何打印显示在listview中用sql查询到的内容?
搜索更多相关主题的帖子: ActiveReport listview sql 打印 查询 
2010-08-27 10:51
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:7 
我只会自定义打印 listview 里的东西..。。。。。

能不能把 SQL 命令传递给 ActiveReport  来打印查询结果??

授人于鱼,不如授人于渔
早已停用QQ了
2010-08-27 11:32
mmjun1001
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-7-30
得分:0 
复杂条件的查询这样没办法解决,比如说查询日期吧,我要指定不同的日期查询数据库中的内容,这个指定的日期是变量,不能传递给activereport
2010-08-27 12:36
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
那就自定义打印吧。

1、先计算纸的长度,宽度。留左右空后,中心剩余高度,宽度。
2、计算标题宽,高,计算表格头是一行还是二行(这个是固定的),有多高。字符高是固定的。如 12磅的字,空半行,那么每行高就是 18磅,转化为缇。
3、根据纸芯的宽度,及 listview 的TAB 总宽度,计算每TAB的起始位置及总宽度。如果不使用 listview 的宽度,那么你要指定各列的宽度。
4、打印标题。居中。 左边距+ (中心宽度-标题宽)/2
5、画第一根横线,打印各标题,画第二根横线。标题可以读 listview 中的标题
6、循环读取 listview 的内容,并且打印到对应的 位置去。
   如果内容超宽的,可以有二种选择,一种是换行,另一种是截断。
       如果是截断的,那么可以计算出每页的行数,按计算出来的行数打印就是了。
       如果是换行的,那么打印本行之前,要计算一下本行最大行数是多少,然后根据行数,计算高度,然后把每个格子对应的内容需要上下进行居中打印。
7、每打印一行内容后,则在这行下面画一根横线。
8、每打印一行后,判断 版芯剩余高度,是否够了一下行,如果不够,则进入换页部分。
9、换页,画各条竖线,上坐标是固定的,对齐第一根横线,下坐标是对齐最后一根横线,用刚打印内容后画的最后一根线。
10、然后再到最后位置打印页码。
11、所有的都打印完成后,根据需要,是否使用空白行填充,如果是,计算剩余高度还能有多少行,使用一个循环画横线下去。
12、然后再进入换页部分,最后再结束打印。

授人于鱼,不如授人于渔
早已停用QQ了
2010-08-27 17:53
mmjun1001
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-7-30
得分:0 
这样代码太多了吧,我想到一个好方法,创建一个新表,然后将listview查询到的内容,填加到这个新表里,这样就可以从这个新表里选择所有字段打印了,不过新问题出来了,创建表会,如何将listview内容,填加到表里就不会了,正在研究中
2010-08-27 21:11
mmjun1001
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2010-7-30
得分:0 
打印完后,删除该表,这样就完美了
2010-08-27 21:12



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-316942-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014624 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved