以文本方式查看主题 - 搭建论坛 (http://bbs.diylsoft.com:8118/starforum/index.asp) -- 经验交流 (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=5) ---- [求助]困扰我一个星期仍未解决的问题 (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=5&id=19581) |
||||
-- 作者:fanzhe -- 发布时间:2008-8-17 23:12:09 -- [求助]困扰我一个星期仍未解决的问题 我想打印出如下的报表:(例子以产品"小超女"为例)
产品名称 配件名称 库存总数 我试过各种不同的方法,也更换不同的思路,一个星期过去了没一点头绪。现在把数据库及我的测试项目附上(测试项目中我只能进行到统计每一配件库存总数这一步,再也无法进行下去了),最终打印的效果如上图所示。 希望对数据库熟悉的前辈们指点一下。谢谢!
|
||||
-- 作者:水手 -- 发布时间:2008-8-18 8:53:59 -- 根据你的数据表设置,可以参考下面的例子,改变一下思路:将产品名称作为下面报表的组头区,将配件作为明细区内容。
下面我们以“学生库”为例,完成一张主要/明细结构的报表制作。项目要求,打印出“学生库”中所有同学的各科学习成绩。 窗口1界面设计,如图1所示 图1 主要——明细型结构数据库的属性设置,读者阅读至此应很熟悉,这里不再缀述。下面重点讲述,如何建立主要——明细型结构报表。 创建“窗口2”,作为报表的输入窗口。 下面按照报表构件的拖放顺序,分步进行讲解。 第一步,拖放“报表面板”构件在窗口2中。报表面板将自动充满整个窗口。如图2所示。 图2 属性设置: 报表面板的“数据集”属性设为“ADO数据表1”。 注意:这里的“数据集”属性可设也可不设。如果设置“数据集”属性,表示打印数据集的所有记录。如果不设置“数据集”属性,也就是“数据集”为“空”,表示打印当前记录! 报表面板的“页面”——“纸类型”,选择“A4”;“方向”选择“肖像”。 注意:“纸类型”建议读者不要选择“自定义”! 第二步,拖放三个“报表区域”构件在报表面板中。如图3所示 属性设置: 报表区域1的“区域类型”属性为“页眉区”。用于设置报表的页眉,即在报表每一页头部都要输出的部分; 报表区域2的“区域类型”属性为“内容区”。用于设置报表的主表内容部分,它显示的是学生“基本情况”表的内容; 报表区域3的“区域类型”属性为“组头区”。用于设置报表的内容部分,不过它与“内容区”的区别是,用于输出明细表的表头内容。 图3 第三步,拖放“报表明细区1”构件在报表面板中。 属性设置:报表明细区1的“数据集”属性为“ADO数据表2”;“组头区”属性为“报表区域3”。这样“明细表”与“主表”就相关联起来了。如图4所示 图4 第四步,拖放“报表附属区1”在报表面板中。如图5所示 属性设置:报表附属区1的“主管区域”属性设为“报表区域1”。报表附属区1在这里用于主表表头字段的摆放。 技巧:为了更好的区分报表的各个区域,可以将不同的报表区域设置成不同的颜色。 图5 第五步,设置报表标题。拖放“报表标签1”到页眉区中。 属性设置:报表标签1的“标题”属性为“学生成绩统计表”;“布局到区域”属性设为“真”;“横向布局”属性为“中心”。这样,报表标题自然就摆放在页眉的中心点上了。 第六步,设置报表标题的副栏。拖放“报表网格1”到页眉区的右侧。 属性设置:设置“报表网格1”的宽度高度分别为“200,50”;垂直线属性为“100”;水平线属性为“25”。 第七步,设置报表标题的副栏中的内容。拖放两个“报表系统信息”到报表网格1中。 属性设置: 报表系统信息1的“数据”属性为“页数。用于显示当前打印的页数,由系统自动检测得出; 报表系统信息2的“数据”属性为“日期”。用于显示当前打印报表日期,由系统自动检测得出 在页眉区中构件布局,如图6所示 图6 第八步,设置表头字段。在报表附属区中,拖放“报表标签”构件,其数量一般与“基本情况”表中字段数一致。 属性设置;设置众报表标签的标题与“基本情况”表各字段相一致。分别是:学号、姓名、性别、出生日期、三好学生等。如图7所示 图7 第九步,设置主表打印内容。在内容区中,拖放“报表字段文本”构件,其数量应与报表附属区中报表标签构件相一致。如图8所示。 属性设置: 报表字段文本1的“数据集”属性为“ADO数据表1”;“选择字段”属性为“学号”。 报表字段文本2的“数据集”属性为“ADO数据表1”;“选择字段”属性为“姓名”。 其它报表字段文本设置类型,不再赘述。 图8 第十步,设置明细表的表头字段。在组头区中,拖放“报表标签”构件,其数量应与“学习情况”表中字段数一致。如图9所示 属性设置:设置它们的标题与“学习情况”表各字段一一对应,分别是数学、语文、体育、总分等。 图9 第十一步,设置明细表的打印内容。拖放“报表字段文本”构件,其数量应与组头区中报表标签构件相一致。 注意:与“总分”字段对应的是“报表计算”构件,而不是“报表字段文本”构件。在图9中,细心的读者会发现,在前面的“学习情况”表介绍中,并没有“总分”字段,在这里增加“总分”字段,是借助报表自身的统计功能。 属性设置: 报表字段文本10的“数据集”属性为“ADO数据表2”;“选择字段”属性为“数学”。 报表字段文本11的“数据集”属性为“ADO数据表2”;“选择字段”属性为“语文”。 其它报表字段文本设置类型,不再赘述。 报表计算1的“控制区”属性为“报表明细区1”;设置“表达式”属性如图10所示。 图10 截止目前,窗口2构件布局如图11所示。 图11 现在,从编辑“窗口2”转到“窗口1”。设置“打印”按钮的鼠标单击事件。 当鼠标单击“打印”按钮时,执行报表面板的方法“预览”。 然后,运行项目。鼠标单击“打印”按钮,结果如图12所示 图12 纵观整张报表制作,基本上没有进行事件设置,体现了搭建之星最大特点——搭建。
|
||||
-- 作者:水手 -- 发布时间:2008-8-18 8:55:34 -- 例子就是使用手册中的“报表设计”、“手工制作报表”,请参考。 |
||||
-- 作者:FSJM -- 发布时间:2008-8-18 9:19:59 -- 打印报表,基本上就是打印数据表;任何的复杂统计,就可以先统计在一个临时表中,然后对其进行打印。 |
||||
-- 作者:fanzhe -- 发布时间:2008-8-18 9:50:50 -- 问题是如何创建临时表呢,这思路跟我想的差不多,但不知道如何组织一个临时表. 另外图片看不到 |
||||
-- 作者:admin -- 发布时间:2008-8-18 10:54:59 -- 就是建一个普通的“表”,只是俗称“临时表”。 |
||||
-- 作者:reachtone -- 发布时间:2008-8-18 13:30:32 -- 楼主啊,你怎么就不明白呢?记的之前就给你做过一个例子,你可以采用SQL语句、通过多表关联得到查询结果(这个查询结果看起来象个表,实际上是不存在的,就称之为临时表吧),然后把你要设计的报表的“数据集”属性指向这个查询就行了。 |
||||
-- 作者:fanzhe -- 发布时间:2008-8-18 14:12:01 -- ![]() 就是和前面的例子相关的,但因为我对SQL不熟,一时无法理解例子的思路,同时例子有一个统计总数的功能没有实现,我又不会改,所以多次试过用ADO构件都不成功. 经过大家的提醒,现在好象有点头绪了,想想其实我也做得差不多了,就差做个临时表把数据放进去,然后打印就可以了.再研究研究. |