以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教:在调用Excel模板打印报表时怎样打印一个表中不连续的多行? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=6773) |
-- 作者:cpayinyuan -- 发布时间:2010/4/23 20:49:00 -- 请教:在调用Excel模板打印报表时怎样打印一个表中不连续的多行? 如题,在以前的时候,我记得使用Excel模板打印时,只能在表中选定连续的多行(手工选定或者用代码选定),然后再调用模板打印。若果要打印不连续的多行,就必须先筛选出想要打印的行,然后再选定筛选出的所有行。 总感觉这样比较麻烦,也比较别扭。现在又几个月过去了,是不是能有更简便的方法来实现这个功能?即在调用Excel模板的时候,直接利用表中符合条件的不连续的多行生成EXCEL报表? |
-- 作者:程兴刚 -- 发布时间:2010/4/23 21:05:00 -- 模板里面加入筛选条件。 |
-- 作者:cpayinyuan -- 发布时间:2010/4/23 22:48:00 -- 仍然有个问题,一个模板中设置的筛选条件是相对固定的,用代码改非常麻烦! [此贴子已经被作者于2010-4-23 23:23:37编辑过]
|
-- 作者:程兴刚 -- 发布时间:2010/4/24 0:15:00 -- 暂时采用多模板解决! |
-- 作者:程兴刚 -- 发布时间:2010/4/24 0:19:00 -- 建议贺老师,在文章套打里面给一个Save()方法,这样多条件打印就好办了,直接套打excel并替换条件、保存为新模板、继续打印模板文件,一气呵成! |
-- 作者:czy -- 发布时间:2010/4/24 1:14:00 -- Excel可以使用事件,上述要求好象不是问题吧 |
-- 作者:czy -- 发布时间:2010/4/24 1:55:00 -- 以下是引用cpayinyuan在2010-4-23 22:48:00的发言:
仍然有个问题,一个模板中设置的筛选条件是相对固定的,用代码改非常麻烦!
|
-- 作者:cpayinyuan -- 发布时间:2010/4/24 6:58:00 -- 以下是引用czy在2010-4-24 1:55:00的发言:
例如我要打印Table中选择框选中的行,调用Excel模板生成报表。目前的实现方法是,先把表中筛选一下,只保留选择框选中的行,然后打印,打印后再恢复没筛选之前的表,这样的实现方法虽然可以实现,但比较曲折,比较麻烦。 |
-- 作者:blackzhu -- 发布时间:2010/4/24 7:11:00 -- 我现在采用的利用LOA加载所需数据,然后利用全选代码选定区域打印. |
-- 作者:cpayinyuan -- 发布时间:2010/4/25 7:17:00 -- 其实我们换个角度来解决问题,也完全可以,甚至更简单。在利用Excel模板生成报表的时候,我们都是先用select选定表的一块连续的区域,例如:tt.Select(0,1,tta.Rows.Count-1,tta.cols.count-1),然后再定义Book,定义Sheet,最后利用Book的Build方法生成报表。 目前利用Table的select方法只能在表中选定一块连续的区域,进而生成Excel报表。目前的Excel报表本身的功能已经非常强大,但如果这一点不解决,会限制Excel报表的方便性!这种需求是很常用的,例如打印员工档案卡的时候,我不一定非要打印连续的多张,可能我需要打印符合一定条件的几张,或者我用表的复选框根据需要选几张打印。目前我每次都要先筛选一下,然后用select选定筛选后的所有行,而且这样打印后还要再重新再恢复打印前的筛选条件,不但罗索,而且会影响执行的效率!我想知道,有没有办法选定不连续的区域,例如:选择符合一定筛选条件的行,或者选择复选框被选中的行,然后利用这些行生成Excel报表?不知这样是否容易实现? [此贴子已经被作者于2010-4-25 7:22:25编辑过]
|