VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 370|回复: 5

[求助] 大哥大姐 都来看看 代码问题出在那里了!!!

[复制链接]
发表于 2017-9-4 12:00:34 | 显示全部楼层 |阅读模式





如图所示 为何第二张   16行 过后的数据 却打不出来是空白的 呢

第一张 打印出来 的数据都是正常 的

----------------------------------以下是程序打印代码-----------------------------------------------------------------------------

If ListView2.ListItems.Count = 0 Then Exit Sub
If MsgBox("确定没有问题开始打印数据吗?", vbYesNo + 32 + vbDefaultButton2, "提示") = vbNo Then Exit Sub
On Error GoTo Err001

'--------------------设置打印机
Set_PrintMode (Form1.IniEnv1.Load_Key("打印机", "木工单", 100, False))




'------ 释放小票文件

    Dim DataFile() As Byte
    DataFile = LoadResData(104, "CUSTOM") '从资源文件读入文件内容 104
    Label2.Caption = Spath(0) & "木工单.xls"
    Open Spath(0) & "木工单.xls" For Binary As #1   '建立数据文件,以二进制方式打开
    Put #1, , DataFile
    Close #1    '写完后关闭文件



Dim tmp

Dim xlApp As Excel.Application '定义EXCEL类
Dim xlBook As Excel.Workbook '定义工件簿类
Dim xlsheet As Excel.Worksheet '定义工作表类


'-------------写入数据

'--------门页
Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
xlApp.Visible = False '设置EXCEL可见
Set xlBook = xlApp.Workbooks.Open(Label2.Caption)  '打开EXCEL工作簿
Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表
xlsheet.Activate '激活工作表



xlsheet.Cells(1, 4) = "电话:" & Text1.Text
xlsheet.Cells(2, 2) = Text2.Text
xlsheet.Cells(2, 3) = "地址:" & Text3.Text
xlsheet.Cells(1, 6) = Combo1.Text
xlsheet.Cells(3, 2) = Format(Now, "yyyy") & " 年 " & Format(Now, "mm") & " 月 " & Format(Now, "d") & " 日"
xlsheet.Cells(2, 6) = Text4.Text





For i = 1 To ListView2.ListItems.Count
xlsheet.Cells(Label1.Caption + 4, 1) = ListView2.ListItems.Item(i).Text
xlsheet.Cells(Label1.Caption + 4, 2) = ListView2.ListItems.Item(i).SubItems(1)
xlsheet.Cells(Label1.Caption + 4, 3) = ListView2.ListItems.Item(i).SubItems(2)
xlsheet.Cells(Label1.Caption + 4, 4) = ListView2.ListItems.Item(i).SubItems(3)
xlsheet.Cells(Label1.Caption + 4, 5) = ListView2.ListItems.Item(i).SubItems(4)
xlsheet.Cells(Label1.Caption + 4, 6) = ListView2.ListItems.Item(i).SubItems(5)

Label1.Caption = Label1.Caption + 1


If Label1.Caption = "17" Then

xlsheet.PrintOut '打印工作表

MsgBox "第一张已满,继续打第二张!", vbInformation, "提示"

For ii = 5 To 20
xlsheet.Cells(ii, 1) = ""
xlsheet.Cells(ii, 2) = ""
xlsheet.Cells(ii, 3) = ""
xlsheet.Cells(ii, 4) = ""
xlsheet.Cells(ii, 5) = ""
xlsheet.Cells(ii, 6) = ""
Next ii
xlsheet.Cells(2, 6) = "副单"
Label1.Caption = 1
End If




Next i



xlsheet.PrintOut '打印工作表
xlBook.Close (True) '关闭工作簿
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放EXCEL对象
操作日志 "打印木工单", "客户:" & Text2.Text & "安装工:" & Combo1.Text & "金额:" & Text4.Text
MsgBox "打印完毕!", vbInformation, "提示"
Unload Me
Exit Sub
Err001:
ErrMsgbox "发生错误打印失败,请检查表格是否被打开?或者根据下列提示找原因!"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
发表于 2017-9-4 20:35:58 | 显示全部楼层
容我大胆猜测一下,程序里加个sleep 的API函数更好点?因为 打印机执行程序的 速度 比不上 VB程序的执行。所以VB 程序执行完了,打印机程序还未反应过来,VB就跟它说:“伙计,程序结束了。别打了。”然后这就得到个空白单。 是不是这个原因呢? 楼主试一下吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-5 00:34:42 | 显示全部楼层
忧伤 发表于 2017-9-4 20:35
容我大胆猜测一下,程序里加个sleep 的API函数更好点?因为 打印机执行程序的 速度 比不上 VB程序的执行。 ...

你说的这种情况 不存在! 他写入后才执行打印的  !
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-5 00:34:52 | 显示全部楼层
忧伤 发表于 2017-9-4 20:35
容我大胆猜测一下,程序里加个sleep 的API函数更好点?因为 打印机执行程序的 速度 比不上 VB程序的执行。 ...

你说的这种情况 不存在! 他写入后才执行打印的  !
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-9-5 00:35:52 | 显示全部楼层
忧伤 发表于 2017-9-4 20:35
容我大胆猜测一下,程序里加个sleep 的API函数更好点?因为 打印机执行程序的 速度 比不上 VB程序的执行。 ...

不存在这种问题 因为  Msgbox 提示 那一下都有 2秒左右
回复 支持 反对

使用道具 举报

发表于 2017-9-6 19:30:52 | 显示全部楼层
将打印后的语句删除,或者打印后设置断点看看
xlBook.Close (True) '关闭工作簿
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放EXCEL对象
看一下是不是数据没有完全写入。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2017-9-26 01:12

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表