Foxtable(狐表)用户栏目专家坐堂 → 窗口打印时的选定行问题


  共有19870人关注过本帖树形打印复制链接

主题:窗口打印时的选定行问题

帅哥哟,离线,有人找我吗?
mr725
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/5 12:03:00 [显示全部帖子]

按照don老师的:“选定行→打印→选定行→打印.....: 一样可以一次列印多行。”步骤,我也还没有试,
我想:是否用select来选定行,这样焦点会在该行上,用表事件currentchanged或positionchanged来返回改行的数据到窗口控件中;再用狐爸的:
Dim doc As PrintDoc
Forms("支piao").Open()
doc = Forms("支piao").GernatePrintDoc()
doc.Preview()

一种思路,有空我也试一试。。。。。

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/5 12:17:00 [显示全部帖子]

我用下面代码可以预览显示三次:(当然每次显示后都要手动关闭预览后自动显示下一行的预览)
Dim doc As PrintDoc
CurrentTable.select(0, 0,0, CurrentTable.cols.Count - 1)
Forms("支piao").Open()
doc = Forms("支piao").GernatePrintDoc()
doc.Preview()

CurrentTable.select(1, 0,1, CurrentTable.cols.Count - 1)
doc = Forms("支piao").GernatePrintDoc()
doc.Preview()

CurrentTable.select(2, 0,2, CurrentTable.cols.Count - 1)
doc = Forms("支piao").GernatePrintDoc()
doc.Preview()

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/5 12:20:00 [显示全部帖子]

以下是引用yangming在2009-6-5 10:36:00的发言:

.................

forms("支piao").Show()
CurrentTable.Position = 0
With Tables("支piao")
       For i AS integer = 0 To  .Rows.Count-1
         Dim doc As PrintDoc
doc = Forms("支piao").GernatePrintDoc()
doc.Preview()
   CurrentTable.Position = CurrentTable.Position + 1
    Next
End With
........................................................
用表事件currentchanged或positionchanged来返回该行的数据到窗口控件中后
估计1楼的代码,将CurrentTable.Position = 0 放到 For i AS integer = 0 To  .Rows.Count-1 下一行 改为:
CurrentTable.Position = i 可能可以~!
[此贴子已经被作者于2009-6-5 12:24:10编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
导入文件  发帖心情 Post By:2009/6/5 12:27:00 [显示全部帖子]

以下是引用狐哥在2009-6-5 12:11:00的发言:
支piao打印我不敢一次打印多张,还是传统一点好,新增一行,填入内容,预览一张打一张.
.............

这个没有问题的啊~   只要不是象会计凭证那样要连续进纸的就行。支piao等都是手工进纸的!◎◎◎◎


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/5 13:16:00 [显示全部帖子]

以下是引用yangming在2009-6-5 12:37:00的发言:

.............如果是用代码对某列进行计算时就会出问题,呵呵

我试了,在positionchanged 中将金额大小写用代码计算后,返回到窗口textbox,是可以的,没有出现什么问题。


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/5 16:55:00 [显示全部帖子]

以下是引用yangming在2009-6-5 15:49:00的发言:

试验结果,必须时时打开此窗口.不然会报错

把窗口设为独立型,
Forms("支piao").open()
Forms("CheckPrint").visible = false
这样窗口就看不见了,预览可以照常进行  !~


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/6/5 21:22:00 [显示全部帖子]

以下是引用yangming在2009-6-5 19:06:00的发言:

窗口的

AfterLoad中还是要放上以下的代码,不然打开窗口时第一行的大写金额还是不能计算
Dim lbl As WinForm.Label
lbl = e.Form.Controls("Label5")
lbl.Text = CUMoney(dr("金额"))

[此贴子已经被作者于2009-6-5 19:08:18编辑过]

afterload只是在打开窗口时加载一次,换行时不会重新加载呀~  所以要在positionchanged中给(支piao)窗口的控件来赋值吧~


 回到顶部