VB条件组合打印

zs304 2008-09-19 03:40:58
我有一个表出货表(单据编号,客户名称,日期,商品名称及规格,...备注)
例如我要查询并打印出8月份XXX客户的报表,要通过日期和客户名称的组合查询才能实现
我有两个想法,一是先建立一个临时表,把查询结果保存临时表中,打印完成后删除临时表;
二是把查询结果通过VB的DataGrid控件显示出来,再把显示的内容打印。
或者还有其他更好的方法,请高手指教。

第一个方法目前正在实施中。第二个方法我失败了,每次打印总是把表中的所有数据全打印出来了,而不是查询的结果。

请高手帮忙解决,给出上述方法的完整代码或新的解决方案及代码,小弟感激不尽!
...全文
109 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zs304 2008-10-01
  • 打赏
  • 举报
回复
帖子我先结了,谢谢大家的帮助!

但我希望还有高手能给个更加简洁的办法!
zs304 2008-09-24
  • 打赏
  • 举报
回复
这么麻烦,我还以为就几条语句就OK了。
zs304 2008-09-22
  • 打赏
  • 举报
回复
例如我要查询8月1号--8月31号出售到XXX公司货物清单,就是一个列表。

不会啊,我的查询没错,查出来的东西是我需要的,但打印出来的是表中所有的数据。
是不是打印语句出错,我所打印的内容 是DataGrid.Text,按理这个就是DataGrid显示的内容啊
如果这个出错,请给出正确的打印语句。谢谢!
lcsfxs 2008-09-22
  • 打赏
  • 举报
回复
用printer打印如:
nLeft = lcsleft
nTop = lcstop
Printer.Width = 13904 '' 13904
Printer.Height = 3800 '' 3800
Printer.Orientation = 1
If MsgBox("请检查打印机是否接电与装纸,开始打印吗?", _
vbYesNo + vbQuestion) = vbYes Then
Printer.Font.Size = 14
' Printer.CurrentX = nLeft + 6250
' Printer.CurrentY = nTop
' Printer.Print ADOTemp![编号]
Printer.CurrentX = nLeft - 300
Printer.CurrentY = nTop + 1100
Printer.Print ADOTemp![用户姓名]
Printer.CurrentX = nLeft + 3300
Printer.CurrentY = nTop + 1100
Printer.Print ADOTemp![地区名称]
Printer.CurrentX = nLeft - 300
Printer.CurrentY = nTop + 1100 + 490 * 1
Printer.Print ADOTemp![上网帐号]
Printer.CurrentX = nLeft + 5700
Printer.CurrentY = nTop + 1100 + 490 * 1
Printer.Print ADOTemp![联系电话]

lcsprinter1

Printer.CurrentX = nLeft - 300
Printer.CurrentY = nTop + 1100 + 490 * 3
Printer.Print ADOTemp![地址]
Printer.CurrentX = nLeft - 300
Printer.CurrentY = nTop + 1000 + 490 * 4
Printer.Print ADOTemp![宽带类型]
Printer.CurrentX = nLeft - 300
Printer.CurrentY = nTop + 1000 + 490 * 5
Printer.Print ADOTemp![受理时间]
Printer.CurrentX = nLeft + 4700
Printer.CurrentY = nTop + 1000 + 490 * 5
Printer.Print ADOTemp![受理工号]
' Printer.CurrentX = nLeft - 300
' Printer.CurrentY = nTop + 1100 + 490 * 6
' Printer.Print ADOTemp![机型]
' Printer.CurrentX = nLeft - 300
' Printer.CurrentY = nTop + 1100 + 490 * 7
' Printer.Print ADOTemp![显示器]
End If
Printer.EndDoc
杨哥儿 2008-09-22
  • 打赏
  • 举报
回复
'打印报表
Public Sub PrintFlexgrid()
On Error GoTo er01
Dim iw(8) As Integer, ij(20) As Integer, ja As Integer, i As Integer
iw(0) = 150: iw(1) = 1500: iw(2) = 2500: iw(3) = 3900: iw(4) = 5300: iw(5) = 6700: iw(6) = 8100: iw(7) = 9500
ij(0) = 1450: ij(1) = 1800: ij(2) = 2150: ij(3) = 2500: ij(4) = 2850: ij(5) = 3200
ij(6) = 3550: ij(7) = 3900: ij(8) = 4250: ij(9) = 4600: ij(10) = 4950: ij(11) = 5300
ij(12) = 5650: ij(13) = 6000: ij(14) = 6350: ij(15) = 6700: ij(16) = 7050: ij(17) = 7400
ij(18) = 7750: ij(19) = 8100
ja = 400
Printer.Font.Size = 20
Printer.Font.Name = "仿宋_GB2312"
'第一行
Printer.CurrentX = 1500
Printer.CurrentY = 200
Printer.Print "发票统计报表"
'第二行
Printer.Font.Size = 12
Printer.CurrentX = 150
Printer.CurrentY = 950
Printer.Print "发票起始号码:" & MSHFlexGrid1.TextMatrix(1, 7) & "-" & MSHFlexGrid1.TextMatrix(1, 8)
'第三行
Printer.CurrentX = iw(0): Printer.CurrentY = ij(0): Printer.Print "收款方式"
Printer.CurrentX = iw(1): Printer.CurrentY = ij(0): Printer.Print "操作员":
Printer.CurrentX = iw(2): Printer.CurrentY = ij(0): Printer.Print "总金额":
Printer.CurrentX = iw(3): Printer.CurrentY = ij(0): Printer.Print "学费"
Printer.CurrentX = iw(4): Printer.CurrentY = ij(0): Printer.Print "住宿费"
Printer.CurrentX = iw(5): Printer.CurrentY = ij(0): Printer.Print "书费"
Printer.CurrentX = iw(6): Printer.CurrentY = ij(0): Printer.Print "张数"
'第四行
Printer.CurrentX = iw(0): Printer.CurrentY = ij(1): Printer.Print MSHFlexGrid1.TextMatrix(1, 0)
Printer.CurrentX = iw(1): Printer.CurrentY = ij(1): Printer.Print MSHFlexGrid1.TextMatrix(1, 1)
Printer.CurrentX = iw(2): Printer.CurrentY = ij(1): Printer.Print MSHFlexGrid1.TextMatrix(1, 2)
Printer.CurrentX = iw(3): Printer.CurrentY = ij(1): Printer.Print MSHFlexGrid1.TextMatrix(1, 3)
Printer.CurrentX = iw(4): Printer.CurrentY = ij(1): Printer.Print MSHFlexGrid1.TextMatrix(1, 4)
Printer.CurrentX = iw(5): Printer.CurrentY = ij(1): Printer.Print MSHFlexGrid1.TextMatrix(1, 5)
Printer.CurrentX = iw(6): Printer.CurrentY = ij(1): Printer.Print MSHFlexGrid1.TextMatrix(1, 6)
Printer.EndDoc
Exit Sub
er01: MsgBox Err.Description
End Sub
杨哥儿 2008-09-22
  • 打赏
  • 举报
回复
DataGrid.Text不等于DataGrid的表格内容.
杨哥儿 2008-09-20
  • 打赏
  • 举报
回复
我用的DataGrid做报表打印不会出现你所说的所有数据全打.肯定是你的查询出错了.
jhone99 2008-09-19
  • 打赏
  • 举报
回复
什么方式报表?
zhju3507 2008-09-19
  • 打赏
  • 举报
回复
jf

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧