Foxpro 报表及标签:一、分类及总计报表的设计
- 将要分类的字段索引,比如您的报表要按“部门”分类,那么相应表中“部门”这个字段必须索引;
- 在项目管理器中选中“报表”;
- 按“新建”;
- 按“报表向导”;
- 选择“分组/总计报表向导”;
- 选择所需要的字段,比如选择“编号”、“姓名”、“部门”、“职务”、“基本工资”,下一步;
- 选择分组依据,即按哪个字段分组,最多可以选择三个分组字段,必须选了第一个才能先第二个,这里我们以“部门”做为第一分组依据,以“职务”做为第二个分组依据,即在同一部门中又按职务分小组,另外可以选择是否需要“总计”或“小计”,总计是指第一分组的合计,小计是指第二及第三分组的合计,选择好后,如 图1 ,下一步;
窍门 | 这里还可以对分组依据的字段进行一些修改,按依据字段后面的“修改”按钮,会弹出一个对话窗: - 如果是分组字段是字符型的,可选择“整个字段”或“字段的前几个”字符做分组依据,一般情况下当然都是整个字段,那也就不用修改了,在某些情况下可能需要按前几个字符来分组,比如商品分类,可能会有A-1、A-2、B-1...,如果我们希望按分类分组,而又不希望分得太细,即A-1、A-2等都算A类,分为一组,那么就可选起始第1个字符做为分组依据,否则A-1和A-2就会分在不同的两个组。
- 如果是数值型的字段,可按一定数量级间隔分组,比如按工资分组,如果不修改这个分组依据就会110是一组、120也是一组...,如此可能不知会有多少组,只要数值不一样就是一组,这比不分组可能还糟,为此我们可以选“100s”做为分组依据,即每隔100为一组,200和299都属一组。
- 如果是日期型,可选择按“星期”、“月”、“年”来分组。
|
- 选择在组中排序的字段,比如选择“编号”,最多可选三个字段,下一步;
- 选择报表样式,可选择“帐务式”,下一步;
- 输入报表标题,比如“部门工资统计表”,按“完成”;
- 输入报表文件名,比如“bmgztj”,当然还要选好适当的目录,然后“确定”
在项目管理器中预览报表可看到类似 图2 情况。
注意 | 在VFP6.0中分组/总计报表和一般报表已合并了,您选择分组依据就是分组/总计报表,不选择就是一般报表。另外,不光可以求合计,还可以求平均值、最大值、最小值等等。 |
二、报表的调整
有时用报表向导做出的报表不能完全满足要求,需要手工对做好的报表进行调整。
首先需要在项目管理器中找到所要的报表,选择它,然后再按“修改”,进入报表设计器,如 图3 ,在这里我们一般可以看到四个带区:
- 标题:如 图3 中的“人员花名册”,该带区的内容显示在报表第一页的开头。
- 页标头:该带区的内容显示在每页的开头。
- 细节:为报表的主要内容,紧接在页标头下打印,虽然我们在这里看到只有一行,但打印时却不一定只有一行,而是有多少条记录符合打印的条件就会有多少行,这里的一般都是变量名或字段名,也叫“域控件”(很难理解的名称),它们都有个方框框住,打印时会换为相应的内容。
- 页注脚:打印在每页的底部,一般用于打印页号等内容,在这里一般会看见一个域控件:
“页”+alltrim(str(_pageno))
这就是由报表向导自动产生的页号。
在这里我们可以做如下的调整:
- 调整带区宽度。将鼠标放在带区上,鼠标光标会变为一个上下的箭头,这时按住鼠标左键可上下调整该带区的宽度。比如,一般向导所做的报表,其标题、页标头和页注脚都很窄,这样打出来的报表就会上、下将纸顶得很满,因此应把这些带区调高些,如 图4 。
- 移动控件。报表上的所有东西(标签、域控件、线条、矩形等)都是可以移动,如果您觉得位置不满意,可按您自己的喜好把它们移来移去,就象设计表单一样。比如上面所说的为了不让报表把纸顶的太满,可将带区调高些,对页注脚调高就行了,但对标题和页标头,带区调高后还应将里面的内容往下移,才不会使上面顶的太满。另外页号在左边,这不符合我们的习惯,可将其移到右边。
窍门 | 除了将控件在带区中移动,还可以从一个带区移到另一个带区。西方的习惯也许是只在第一页打印报表的总标题,也就是那个标题带区,但我们中国人一般喜欢在每页上都有相同的标题(可能老外比较小气,那么一点纸也要节约),也就是说我们不需要标题,而只要页标头就行了,为此我们可以将页标头区加宽,将标题中的内容移到页标头中,不需要的线条可以删掉,标题区的内容全部去掉后,将其高度调到最窄。 |
- 修改控件。首先调出报表工具栏,在菜单的“显示/报表控件工具栏”,如要修改标签,比如标题,按下工具栏上的标签工具,再到要修改的标签上按一下,就可以对其进行修改了。
如要修改域控件,双击所要修改的域,会出现一个窗口,如 图5 ,在表达式中作需要的修改,例如,向导生成的页号也不符合我们习惯,什么“页1”,这简直的就是老外说中国话,那么您就可以在表达式框中将其改为:
alltrim(str(_pageno))+"页"
或
"第"+alltrim(str(_pageno))+"页"
再要不,什么都不要,就是一个
alltrim(str(_pageno))
反正您爱怎么改就怎么改,您就是把页号删了人家也管不着。
三、标签的制作
什么是标签呢?比如我们要给人事档案中的每个人打一个小纸条,上面标明他的部门、姓名、职务等,然后贴在他的办公桌上,这就是标签,应用VFP的标签的打印功能就能制作出来。标签可以说是一种简易的报表,其制作的方法与报表非常类似,下面我们就在人事档案软件中制作上面所说的标签。
- 首先将所要用来做标签的数据表所在的数据库打开,可在项目管理器中选择“数据/数据库/rsgl/打开”,如果不是数据库表,而是自由表则不需要做这一步;
- 在项目管理器选择“文档”;
- 在文档中选择“标签”;
- 按“新建”,出现如 图6 ;
- 按“标签向导”,出现如 图7 ;
- 在“数据库和表”选择框中选择rsgl数据库,再在下面的列表框中选择rsgl表。如果是自由表,就按那个带三个点(...)的按钮,选择所要用来做标签的表;
- 按下一步,出现如 图8 ,选择“公制”符合国人习惯,然后选择符合您需要的标签,这里我们选择“Avery L7160 38.10mm x 63.50mm 3列”,3列的意思是在每一行上可以并排打三个标签;
- 按下一步,出现如 图9 ,选择所要的字段然后按
按钮,如要换行,按
按钮,还可按“.”、“,”等按钮在其中插入相应的符号和空格等,如果您想在标签中放入一些自己的文字,如公司名等,可在文本中输入,然后按
,如要取消一个字段,按(自己想想吧),如要取消一个空行,双击该行即可,设置好后如 图10 ,另外在设置的过程中可在左上角的小窗口中看见效果; - 按下一步,出现如 图11 ,在这可以选择标签打印时的先后顺序;
- 按下一步,出现如 图12 ,这时可用预览看一下效果,如 图13 ,如有问题,可回到前面修改,不过这里不要对美观要求太高,这里要想做得很美观比较难,我们可以在做好保存后再把它调出来修改,这样会比较方便些。如果没有问题,按完成,输入标签文件名将做好的标签保存起来。
做好后可在项目管理器中看到所做的标签文件,按预览便可看到所做好的标签,按预览工具栏上的打印机便可将标签打印出来。
也可使用如下命令在命令窗口和程序中将标签打印出来:
label form 标签文件名
另外可用项目管理器上的“修改”按钮,将标签打开来修改,修改的方法与报表基本一样,比如可将上面做好的标签修改成如 图14 ,预览的效果如 图15 。