请问要做成如下格式的报表怎么实现?谢谢!!
请问.要做出如下的报表怎么实现?在一张A4的纸张上,报表的内容是:
-------- --------------------------------------------------------------
序号 学号 姓名 序号 学号 姓名
1 00042101 XXX 20 00042120 YYY
2 00042102 XED 21 00042121 YYE
3 00042103 XEA 22 00042122 YSE
. ........ ... .. ........ ...
. ........ ... .. ........ ...
. ........ ... .. ........ ...
. ........ ... .. ........ ...
. ........ ... .. ........ ...
19 00042119 XBA 40 00042140 YVE
-----------------------------------------------------------------------
与普通的报表有差别的.
普通的报表只能一排输出数据库中的一种字段集合.上图是要求一排要输出2个相同的字段集合,
而且序号是先往下到底后再往上.
请给予答复,再次感谢了!! --------------------编程问答-------------------- 用VB自带的数据报表设计器可以实现吗?
或者请您推荐其他的思路.谢谢.
--------------------编程问答-------------------- 和VB自带的报表设计器好像不行吧?
你可以使用Printer对象,结合记录集进行输出.
Dim lNumLines As Long '实际行数
ConstlMaxLines As Long = 40 '每页最大行数
Dim lPrintX As Long,lPrintY As Long
Printer.ScaleMode = 3 '将打印机的绘图坐标设为象素
Printer.Print "" '打印一个空字符,让打印机进纸.
Do While Not Rs.Eof
If (lNumLines Mode 40) = 0 '换页
Printer.NewPage
lPrintX = 100 '假设起始列坐标为100象素
lPrintY = 100 '假设起始行坐标为100象素
Else If (lNumLines Mode 20) = 0 '换列
lPrintX = 500 '假设列宽为500
lPrintY = 100 '恢复行坐标为100
Else '换行
lPrintY = lPrintY + 30 '假设每行30个象素高
End If
Printer.CurrentX = PrintX
Printer.CurrentY = printY
Printer.Print Rs.Fields("序号");Rs.Fileds("学号");Rs.Fields("姓名")
Rs.MoveNext
lNumLines=lNumLines+1
Loop
Printer.EndDoc '送往打印机
其它的你自己再细化.(以上代码未测试,只是给你一个说明) --------------------编程问答-------------------- 推荐用VB生成EXCEL文件,例子很多,在这里搜索一下。 --------------------编程问答-------------------- 又是另开了一贴
VB自带的报表工具可以解决,就是构造一个这样格式的记录集来绑定报表
补充:VB , 数据库(包含打印,安装,报表)