Foxtable(狐表)用户栏目专家坐堂 → 讨论:Excel报表中一次打印多张相同格式的报表!


  共有32291人关注过本帖树形打印复制链接

主题:讨论:Excel报表中一次打印多张相同格式的报表!

帅哥哟,离线,有人找我吗?
cpayinyuan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
讨论:Excel报表中一次打印多张相同格式的报表!  发帖心情 Post By:2008/10/2 10:51:00 [显示全部帖子]

   先说明一下,这个贴子经过我多次补充,所以比较长,有耐心的人请认真的看完,如果没有耐心的,也可以不看,希望就不要因为这个贴子太长发表批评的言论了!
  
   在EXcel报表的帮助中和事例文件中都是一次打印一张员工资料卡,在实际中,要根据一张表的多个记录一次打印多张相同格式的员工资料卡,而且要根据纸张大小不同在一张纸上打印两张或者3张(当改来纸张大小时要自适应纸张,不能把同一张资料卡分拆在两张纸上),不知怎样设置?如果我有1000个员工,不会要编写一个循环把相同的语句执行1000次吧?这些在易表中可都是系统自动完成的呀!

    通过对EXcel报表和专业报表的进一步学习,还是非常留恋易表中的报表设计器。易表中的报表设计器虽然简单,但非常实用高效,常用的报表能够很快完成设计。狐表中的EXcel报表虽然简单且比较直观,但如果不编码有许多非常实用的功能根本实现不了;而专业报表,提供的格式设计几乎可以与专业排版工具相比美,但用代码设计专业报表的确效率很低,在易表中一个很简单的报表用专业报表有编制很长的代码才能实现!说得难听些,狐表中的两种报表,没有一个好用的!

     我这样说,可能又得有许多人骂我,但我可以换一种说法,请大家看一下我的分析是否正确,Excel报表比易表中的报表设计器较难(这一点恐怕没有争议吧,易表中的报表设计器完全是可视的,不需要任何编码),但Excel报表的功能比易表中的报表设计器较弱(这一点应该也不会有争议,因为许多在易表中很容易实现的、能够自动生成的报表,用Excel报表实现不了,或者需要很长很长的编码才能实现)。对于想做应用系统的人来说,在易表中只需要用很短的时间掌握报表设计器就可以了,在狐表中,恐怕就只能耗费大量的时间来学习专业报表了!否则,想指望Excel报表?恐怕有很多报表根本是无法完成的!
      
      真不太明白,贺老师有这么大的精力设计Excel报表和专业报表两种报表,为什么不继续延续易表中的报表设计器,在那个基础上再改进一步,加上编码设计功能,就可以实现易用高效与强大灵活的兼顾,恐怕要比狐表中的这两个报表都要实用、高效得多!个人认为易表中的报表设计器是易表最成功的地方之一。贺老师说,狐表与其他开发工具相比最大的优势就是开发效率高,但目前的这两种报表设计,个人一直感觉与狐表这一宗旨严重不符!
     
     补充:
    感谢gdtgl这位老兄的提醒,我找到了贺老师的“批量打印Excel报表的代码”这个贴子。看完这个贴子,而且测试了一下,我只能摇摇苦笑,不知道该说什么了?但为了狐表的发展,也为了狐表的这么多用户,还是说一下我对这种方式的看法吧:我认为这种方式虽然可以实现,但根本不是一种好的办法,与易表相比,真的是一种极大的倒退,主要原因:
1、这种方式用循环的方式,每行记录调用模板一次,反复的生成报表、打印报表(真的被我不幸言中了,还真得使用循环)。当记录数很多的时候,执行效率肯定会很低,会很慢。贺老师是专家,肯定知道多次调用模板多次生成报表,反复多次打印报表;与一次生成报表,然后在一个报表中自动读取每行记录,最后一次性打印(易表中应该是这种方式);这两种方式在执行时的效率会有多大的差别。
2、这种方式好像不能实现在同一张纸上打印多张报表,而且自适应纸张大小的功能!(这么简单常用的功能,难道还得麻烦“专业报表”这个专业人员才需要掌握的东东?)
     总之,狐表中提供了一个功能不全面、使用也不方便的Excel报表,又提供了一个功能全面但编码复杂、设计效率很低的专业报表,两者各有长短,但都不全面!而且我预计,尽管目前的狐表提供了两种报表,如果不对狐表的报表功能进行重大改进,报表功能将是制约狐表发展的又一重要瓶颈!对与不对,希望版主们先不要忙着批评,我们慢慢分析观察、慢慢调查更多的用户,时间长了自有定论!时间会证明一切!
     以上意见对与不对,希望贺老师认真考虑!也欢迎大家再次讨论这个问题。

    
   Excel报表+专业报表 < 可视化有编码功能的报表设计器
 
再补充:

     我又反思了一下,易表的报表设计器之所以方便,其实最关键的特色在于易表的报表设计器中把报表分为表头区、细节区、表尾区等几部分,尤其是细节区部分可根据多行表记录自动重复生成,而且细节区既可以是单行表格也可以是一个多行的复杂表格,再者,易表中的报表可以自适应纸张大小,以避免把同一个表格分拆,这样就实现了自动化的多行记录的重复打印,也实现了自动化的多个相同格式报表的重复打印,应该说这就是易表报表设计器的精髓所在!
      所以,不管是可视化的报表设计器,还是Excel报表,只要能实现类似“细节区”的功能,把重复性的工作由系统自动完成,就能把复杂化的问题简单化!如果像狐表的Excel报表那样对报表的表头、细节区、表尾不加以区分,则无论以什么样的形式设置循环,都是一种复杂的、费时的笨办法!我们都知道关系型数据库的最主要特征就是数据有多行相同字段的行记录组成,狐表作为一种数据库管理系统,如果它的EXcel报表系统连自动提取多行这样简单的功能都没有(也就是类似细节区的功能),我认为它根本就算不上一种报表系统,最多只能算是一种转换Excel的小工具,又何谈功能强弱呢?希望贺老师认真思考一下,看我的观点对不对?
 

      希望不要再说 VS 中没有这个功能,如果VS中什么都有,我们直接用VS做系统就行了,谁还买狐表干什么?也不要一听到有人提易表中的某项功能比狐表中更方便就说两者定位不同,难道因为狐表与易表的定位不同,好的功能也干脆放弃不要了?难道功能增强的同时,易用性、人性化方面就一定得放弃? 
我也很反感有人说狐表和易表是两种不同的产品,不能放在一起比较,既然出自一个人之手,而且有很多的共同用户,为什么不能拿在一起比较?!

     上次提那个窗口中加入表格控件(即后来的DataList)的时候,很多人批评我!这次,希望不要再像上次那样,有的人还没有搞明白怎么回事,就先批评我一通,让我少提意见少发贴! 
      建议关注此项功能的朋友们,注意认真阅读14楼,有补充……
[此贴子已经被作者于2008-10-4 15:22:38编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/10/2 12:59:00 [显示全部帖子]

以下是引用gdtgl在2008-10-2 11:26:00的发言:

DataList 只对于查询有用。但做不到实际的修改数据。因这个原因,个人猜想:用处不会是想像中的这么大

功能当然是有比没有好!

[此贴子已经被作者于2008-10-2 12:32:19编辑过]

好像不太对,多窗口在实际中往往用于查询中。因为用户一般不会同时编辑两个窗口(两个表),更多的时候是需要同时查询多个窗口(多个表),以互相对比,或者多个查询结果互相配合。


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/10/3 19:40:00 [显示全部帖子]

这两天人这么少,估计大家都去旅游去了吧?等贺老师休息完了,再接着讨论大家的问题吧!

 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/10/4 10:09:00 [显示全部帖子]

以下是引用shxiaoya在2008-10-4 10:02:00的发言:
看楼主的帖子一大堆,阅读起来很困难,简单明了说明问题是不是更好?
你的帖子一个问题就是:加强报表设计器功能。
纵观你的帖子,可以看出你根本就没掌握易表,当你设计大量易表报表时你就不会这么认为了。

   
    或许你说得有道理。但我并没有说易表的报表设计器没有问题,我的意思也不是把易表的报表设计器原封不动的搬过来。在易表中设计比较复杂的报表时,有很多地方也不是非常方便,这是有目共睹的。易表中报表设计器的成功之处在于把报表区分为表头区、细节区、表尾区等部分,细节区可以重复读取多行记录。在狐表中,不管哪种报表,都必须把这一点学过来,把重复性的工作交由系统自动完成,否则,无论用什么作报表的模板,都注定不是一个功能完善的报表系统!!!
      换句话说,不是说采用Excel作模板就一定不好,恰恰相反,用Excel作模板是一种很好的创意,但是狐表中目前的Excel报表的功能太弱,连自动读取多行记录的功能都没有,如果不改进再好的创意也必将成为鸡肋!如果改进好了,在采用Excel作模板的基础上,学习易表中报表的长处,把报表也能分为表头区、细节区和表尾区,而且能够自适应纸张以避免表格分拆,两者结合,则是一种功能强大、设置灵活、方便高效的很先进的报表方式!如果贺老师说用Excel作模板根本无法实现这些功能,我们也只能无奈的盼着赶快回到易表的报表设计器时代了!
    
     只有想不到,没有做不到!一切皆有可能!
    
     

[此贴子已经被作者于2008-10-4 15:20:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/10/6 10:05:00 [显示全部帖子]

以下是引用狐狸爸爸在2008-10-6 9:46:00的发言:
Excel报表和文章套打适合打印单据,效率比易表高出不止一个数量级。
我们也提供了Excel报表批量打印的例子,但是有客户担心其效率。
其实代码执行速度,比起打印的速度,快了何止千倍,所以其实Excel报表不存在效率的问题,因为瓶颈在打印机。
而且单据,通常也不会大批量打印的。

如果是分组统及报表,直接设置好汇总模式,然后打印表即可。

复杂一点的打印,用专业报表。
其实专业报表在foxtable的所有编程模块中,是较为简单的,之实现对繁琐而以,学习的难度要远低于其他模块。
即使是专业报表,设计效率也高于易表的划线,例如那个员工资料卡,只是制定行数、列数、合并单元格数,然后填入数据,而填入数据的代码都是通用的,不停地复制粘贴,改改坐标位置和列名即可。
更重要的是,基本上整个报表的代码都是通用的,换一个设计要求,也只是改改行数、列数、列名即可。
专业报表也有数据绑定功能,实现重复打印并不难,更重要的是专业报表提供的功能,设计复杂报表的能力,不是可视化报表所能比拟的。

     理解贺老师的意思,您的意思是,用狐表要设计一个系统,熟悉掌握专业报表是必须的。但既然提供了Excel报表,就应该尽量加强其功能,尤其对于常用的功能,尤其是自动读取多行记录,应尽量给予考虑,重复性工作让系统自动完成,这是软件设计的基本原则!另外,前面我已经说了,在Excel报表中用循环多次调用模板打印单据时,有一个问题好像没有解决,就是怎样在同一张张上打印多个报表!贺老师千万不要说这不常用,我打印工资单或者出库单的时候,用的是240*280的窄行打印纸,如果一张纸只打印一张单,恐怕太浪费了。


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/10/6 10:38:00 [显示全部帖子]

以下是引用狐狸爸爸在2008-10-6 10:13:00的发言:


这个容易解决,你可以在excel报表木板中设计两张单,分别引用当前行和下一个行的数据。
不过这需要我们修改代码,能够在数据引用中使用相对位置,这个我会搞定的。

    只要让Excel报表能够自动读取多行记录,所有的问题就自然都解决了!还是希望贺老师费一下心,想想办法,我们大家对狐表的期望都是很高的!


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/10/6 11:04:00 [显示全部帖子]

以下是引用reachtone在2008-10-6 10:57:00的发言:
cpayinyuan所提的关于EXCEL报表的问题,其实都可以实现。如“在采用Excel作模板的基础上,学习易表中报表的长处,把报表也能分为表头区、细节区和表尾区”。
1、实话说,我目前还没有真正深入研究foxtable,因为我还不完全清楚foxtable以后的注册方式,所以就不敢学,怕花了很多的时间学习以后,自己做的系统因为注册的限制而无法推广,这就很麻烦了,呵呵。
2、不仅可以生成单记录、卡片式的EXCEL报表,还可以生成多记录的列表式报表:只要在EXCEL模板上设置表头、细节和表尾区就可以了。
对老六来说,这些功能绝对可以实现,只要他愿意做,呵呵。
如果需要,我可以做个例子发上来给各位看看。

[此贴子已经被作者于2008-10-6 10:58:37编辑过]

    在Excel模板中可以设置表头区、细节区和表尾区?那赶快做个例子传上来让大家都学习学习吧?贺老师刚才给我说,正在想办法实现,还没有想好,如果真能实现,岂不太好了!
    关于注册方式,我也有同样的担心,所以,一边学习,一边心里不塌实!不过,我感觉这次贺老师应该会认真对待的,到手的钱,难道贺老师非要把它都扔掉!到手的客户,非要都赶走?


 回到顶部
帅哥哟,离线,有人找我吗?
cpayinyuan
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2008/10/7 16:22:00 [显示全部帖子]

以下是引用狐狸爸爸在2008-10-7 16:19:00的发言:
算了,重写excel报表,加上细节区,以及多层关联表嵌套。

非常激动!
感谢老六的重视!


 回到顶部