学生的基本信息都已存在,教务处一般都用Excel来处理。但要在Excel中打印毕业证书却有些困难,因为一般证书都是用Word设计,然后从Excel原始表中“复制”学生的信息“粘贴”到Word中,制作一张打印一个,工作量可想而知,决不会比手工书写快,只是打印出来美观罢了。
要能连续自动打印,而无需人工操作该多好。笔者带着问题,经过反复尝试和实践找到了一种既不用编程,且简捷、易用的方法。
1. 首先要把Excel中的数据转化为VFP6.0中的数据,插入一行VFP6.0字段名(如图2),选择“文件”下的“另存为”命令,在对话框中的“保存类型”中选择“DBF4(dBASE Ⅳ)(?.dbf)”,转换成功后的文件扩展名为DBF。
cs.xzking.com/xu/20150508/office/0511151137544425.jpg' />图1
注意:Excel表的第一行内容需要先输好(如图2),否则转换时可能会出现VFP6.0不能识别的字段名,从而导致转换不成功的现象。其中xm表示姓名、xb表示性别、xjh表示学籍号、csny表示出生年月、jgs表示籍贯的省份、jgs1表示籍贯的县、byzh表示毕业证号。
图2
[next]
2. 用VFP6.0的报表设计器设计界面
(1)选择VFP6.0菜单的“文件/新建”命令,选择“文件类型”中的“报表”,单击“新建文件”,输入文件名,便创建了一报表文件,如“打初中毕业证书”。打开“显示/工具栏”菜单命令,选择“报表设计器”。如图3,按下“报表设计器中”的“报表控件”。在整个设计中我们只用了〔选取对象〕按钮、〔标签〕按钮和 〔域控件〕按钮。
图3
(2)图4是笔者设计好的初中毕业证书打印报表,下面对此做一说明:常量部分用〔标签〕按钮,在其中直接输入,文字的字体、字号等可用“格式/字体”来设定。变量部分用〔域控件〕按钮,在弹出的“报表表达式”中输入对应的字段名,如xm(表示姓名)、xb(表示性别)、xjh(表示学籍号)、jgs(表示籍贯的省份)、jgs1(表示籍贯的县)、byzh(表示毕业证号)。下面对出生年月作特殊说明:在年、月、日的“报表表达式”中分别输入“substrc(csny,1,4)”、“substrc(csny,6,2)”、“substrc(csny,9,2)”,因为从Excel转换时用的是字符型,如“1988.01.07”,所以用了取字符的函数“substrc”;若从Excel转换时用的是日期型,则对应年、月、日“报表表达式”要用“year(csny)"、month(csny)、day(csny),与库中的字段名一一对应。
图4
(3)完成好界面后要花一定的时间来调试,微调时可用左、右、上、下光标键。若发现打印“域控件”的表达式的内容只显示了其中的一部分,问题可能是方框太小,选取拖动控点来放大方框即可。报表保存后生成两个文件,扩展名分别为FRT和FRX。
报表设计完成后,按〔打印〕按钮,选择从Excel转换来的毕业学生的DBF文件,就可以坐享其成了。
……