Foxtable(狐表)用户栏目专家坐堂 → 完全自动化的EXCEL报表,供老六参考


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

主题:完全自动化的EXCEL报表,供老六参考

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
完全自动化的EXCEL报表,供老六参考  发帖心情 Post By:2008/10/6 11:45:00 [显示全部帖子]

    一、下载附件,解包到任意文件夹。自带了两个模板文件例子,存放在解包目录的“模板”文件夹下。如要使用本示例自带模板,请在文件名称上双击重新设置正确的路径。如要正确打印卡片式报表,也请打开ceshi.mdb文件,将图片设置为正确的路径。否则,图片将无法正常输出。


    二、Excel模板文件的相关约定

    (1) 字段名称必须用[]括上;
    (2) 字段名称必须和查询结果字段相同;
    (3) 列表式报表的字段定义必须位于同一行,而且这一行的第一个单元格必须是字段定义;
    (4) 图片字段必须在字段定义后加上"图片"二字,例如 [产品样式]-图片。这里的图片字段是指以存放对应文件名称的字符型字段;
    (5) 图片和备注型字段在生成 EXCEL报表时会自动适应单元格。因此,在设计模板时,请将相应的单元格调整到合适大小;
    (6) 通过EXCEL,可以在模板中设置任意复杂的表头、字体和表格线,也可为表体中的每个单元格分别设置相应的格式。系统在导出 EXCEL报表时,将自动按照用户设置的格式进行输出;
    (7) 一个EXCEL模板文件中,可以设置多个模板工作表。


    三、EXCEL报表管理方法

    (1) 可以通过“增加报表”按钮,随时增加自己需要的任何报表。需要注意的是,在增加报表之前,请先根据需求设计好EXCEL报表模板文件;
    (2) 可以通过“删除报表”按钮,随时删除自己不需要的报表;
    (3) 点击到任一报表名称时,还可随时对该报表的相关设置进行修改;
    (4) “卡片式”仅输出查询结果中的当前记录,“列表式”则输出查询结果中的所有记录。查询结果可通过修改相应的SQL查询语句动态进行调整;
    (5) 当输出的目标EXCEL文件存在时, 如果选择“覆盖原文件”,则以设定的目标工作表名称覆盖原来的文件;否则,输出结果将直接追加到同名工作表中(如果不存在同名工作表,则会自动增加)。

    因权限限制,分成两个包上传:

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:demo.part1.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:demo.part2.rar


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/10/6 11:48:00 [显示全部帖子]

最新版本的EXCEL报表,还可实现:
1、列方向内容相同,可以自动合并单元格;
2、表头表尾可通过变量动态赋值。
特别说明:一楼的例子使用其它工具开发,仅供老六参考。

多记录列表式的例子:

建个EXCEL模版文件,模板文件中引用的字段用[]括起来即可。如下图就是一个模版文件:

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

输出的EXCEL报表:


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2008-10-6 12:12:59编辑过]

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/10/6 12:18:00 [显示全部帖子]

我现在全部都用EXCEL模板输出各种报表了,用EXCEL制做各种模板实在太方便。跟易表的操作方法差不多,设个表头、表体、表尾就行。而且,各种格式设置起来实在也是太方便了。


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/10/6 12:45:00 [显示全部帖子]

以下是引用狐狸爸爸在2008-10-6 12:30:00的发言:
还有,如果细节区是多行呢?

目前只能是一行,也就是以[]区分细节区。多行的问题我没考虑过,在我的应用中暂时还不需要。

另外,在我的应用中不存在关联表的说法,因为我所有的查询,如果涉及到多表的,都是用一条语句SQL语句输出。所以,这样的EXCEL报表只要一个数据源就可以了。


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/10/6 12:56:00 [显示全部帖子]

以下是引用cpayinyuan在2008-10-6 12:46:00的发言:

    经过我对这个事例的分析,好像这位老师做的这个模板中,对于列表式模板,是把所有引用的字段记录都视为多行记录,自动重复读取多行;而对于卡片式模板,也就是细节区是多行的,只读当前记录,没有自动读取多行记录。也就是,目前存在的主要问题是以上两种情况:(1)当细节区是多行记录时(2)当细节区中不但要引用字段,而且有手工输入的字符。

一楼的例子完全是根据我自己的需求开发的。
1、卡片式模板,可以读取多条记录,而且,多条记录的输出内容可以同样的格式输出到一个EXCEL表中。这只要在执行输出时,循环读出所有的记录即可。因为,在输出到同一个文件的同一个数据表时,可以选择“追加”。
2、细节区为多行记录、而且含有手工输入字符的情况,我目前是没有这样的工作需求的,但要实现起来也非常简单,类似于第一条的原理。
3、建议foxtable在加强EXCEL报表功能时,一定要有“自动合并单元格”的功能,这是非常重要的。


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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/10/6 19:18:00 [显示全部帖子]

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


如何用一个直观便捷的方式让用户定义表头、表尾、细节、列头、页眉、页脚......

所有这些功能,都可通过EXCEL本身来实现,因为EXCEL软件本身就有“页面设置”功能,可以设置页眉、页脚,包括分页打印时的“重复表头”等等。
其实,foxtable也没必要把EXCEL报表做的太复杂,只要能满足这些常用的需求就可以了。更专业的报表可以用“专业报表”来完成,两者互为补充。

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

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


加好友 发短信 一级勋章
等级:版主 帖子:1991 积分:19375 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2008/10/7 10:54:00 [显示全部帖子]

以下是引用cpayinyuan在2008-10-7 8:37:00的发言:

楼主能否再做一个这样的例子传上来,让大家都开开眼界!先谢了!

没必要再做例子了,呵呵。因为完全是不同的工具开发的,没有太大意义。我发这个帖的目的,就是想促进老六一下而已,因为我也是FOXTABLE的潜在注册用户,当然希望FOXTABLE功能更完善。
我们目前还已经实现:列方向内容相同可以自动合并单元格,表头表尾可通过变量动态赋值(数量不限,行数不限,通过[变量-1]、[变量-2]、[变量-3]等对应赋值......,以和字段名称区分),表体多行字段功能正在测试中。
其实这些功能实现起来并不复杂,只要老六想做,都可以实现的。我就不再班门弄斧了。


 回到顶部