Foxtable(狐表)用户栏目专家坐堂 → [求助]关于数据置换的问题


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

主题:[求助]关于数据置换的问题

美女呀,离线,留言给我吧!
rophy0952
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
[求助]关于数据置换的问题  发帖心情 Post By:2017/3/9 12:25:00 [只看该作者]

图片点击可在新窗口打开查看
如图,想在打印控件内加入一段代码,目的是想在打印之前置换红框内表格控件中“送货明细表”中其中一列的内容,置换后不保存。
dim s as string = forms("包装顺序"). controls("号码").value
tables("送货明细表").replace("tables("送货明细表").current("箱号").split("-")(0)","ZY&Format(Date.Today(),"yyyyMMdd")&"-"&"s"")


如:将送货明细表所列的“箱号”列的数据:SC160212-1替换成 ZY20170309-01-1
                   SC160212-2替换成 ZY20170309-01-2
                   SC160212-3替换成 ZY20170309-01-3

所替换的数据仅为打印时替换,不保存在数据库中,以上代码有些问题,麻烦大侠们指教!

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/9 12:53:00 [只看该作者]

Dim s As String = forms("包装顺序").controls("号码").value
Dim t As Table = Tables("送货明细表")
If t.cols.Contains("临时列") = False Then
    t.DataTable.DataCols.add("临时列", Gettype(String), 32)
    t.cols("临时列").Move(t.cols("箱号").index)
End If
t.cols("箱号").visible = False
For Each r As Row In t.rows
    Dim ary() As String = r("箱号").split("-")
    If ary.length > 1 Then
        r("临时列") = format(Date.Today, "yyyyMMdd") & "-" & s & "-" & ary(1)
    Else
        r("临时列") = format(Date.Today, "yyyyMMdd") & "-" & s
    End If
Next

 

'这里写打印代码


t.cols("临时列").visible = False
t.cols("箱号").visible = True

[此贴子已经被作者于2017/3/9 12:53:48编辑过]

 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2017/3/9 13:56:00 [只看该作者]

多谢有点色!图片点击可在新窗口打开查看 基本上能实现我的需求,但是有两个问题:1. 点击一次打印临时列可以替换“箱号”列,当换下一张进行打印的时候,那临时列和“箱号”列都不出现了,无法连续打印 2. 设置临时列的列宽的代码是什么?谢谢!
如图:
没打印之前的图(原表的内容):
图片点击可在新窗口打开查看

进入系统后第一次打印的图(成功替换了):
图片点击可在新窗口打开查看

换张单据再打印时的图(两列都消失了):
图片点击可在新窗口打开查看

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/9 14:33:00 [只看该作者]

改一改

 

Dim s As String = forms("包装顺序").controls("号码").value
Dim t As Table = Tables("送货明细表")
If t.cols.Contains("临时列") = False Then
    t.DataTable.DataCols.add("临时列", Gettype(String), 32)
    t.cols("临时列").Move(t.cols("箱号").index)
End If

t.cols("临时列").visible = True
t.cols("箱号").visible = False


For Each r As Row In t.rows
    Dim ary() As String = r("箱号").split("-")
    If ary.length > 1 Then
        r("临时列") = format(Date.Today, "yyyyMMdd") & "-" & s & "-" & ary(1)
    Else
        r("临时列") = format(Date.Today, "yyyyMMdd") & "-" & s
    End If
Next

 

'这里写打印代码


t.cols("临时列").visible = False
t.cols("箱号").visible = True


 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2017/3/9 14:47:00 [只看该作者]

现在可以连续打印了,请问临时列的列宽如何调节呢?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/9 14:50:00 [只看该作者]

 

t.cols("临时列").width = t.cols("箱号").width

 


 回到顶部
美女呀,离线,留言给我吧!
rophy0952
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:581 积分:4989 威望:0 精华:0 注册:2014/6/12 14:55:00
  发帖心情 Post By:2017/3/9 15:19:00 [只看该作者]

试过,由于“箱号”列的宽度比替换后生成的字符要要窄,所以请问能否直接设置临时列的宽度呢?

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/9 15:23:00 [只看该作者]

你就不能灵活控制?

 

t.cols("临时列").width = 500


 回到顶部