以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于表间数据传递  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101636)

--  作者:sexbee
--  发布时间:2017/6/4 16:19:00
--  [求助]关于表间数据传递
有表A、B,设计窗口打开A表,获取A的部分数据,添加其他内容,存入B表;该如何实现?
--  作者:有点色
--  发布时间:2017/6/4 17:19:00
--  

 Dim nr As Row = Tables("表B").AddNew

 Dim r As Row = Tables("表A").Current

 nr("第一列") = r("第一列")

 nr("第二列") = r("第二列")


--  作者:sexbee
--  发布时间:2017/6/4 21:40:00
--  
谢谢 我用上面的方法,绑定click事件,增加的行是空白的。另外 录入窗口的文本框控件不用去管他吗?
--  作者:sexbee
--  发布时间:2017/6/4 22:13:00
--  
对于控件,似乎有点明白:已绑定的控件就不能通过代码来修改其值了,其仅能展示数据?如果要代码修改,只能直接改其列?
--  作者:有点色
--  发布时间:2017/6/4 23:15:00
--  
 上传实例说明你要做的功能吧。
--  作者:sexbee
--  发布时间:2017/6/5 9:45:00
--  
请帮助帮主帮忙,谢谢
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实例a.zip


--  作者:有点色
--  发布时间:2017/6/5 10:01:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:实例1.foxdb


--  作者:sexbee
--  发布时间:2017/6/5 10:54:00
--  
谢谢版主,第一个问题豁然开朗。关键是第二个问题,如果表B流水号是主键,窗口何时用什么事件来自动输入,才不会出错是头大的问题?
--  作者:有点色
--  发布时间:2017/6/5 11:19:00
--  

 DataRowAdded事件

 

Dim d As Date = Date.Today
Dim bh As String = "SJ" & Format(d,"yyyyMMdd") \'生成编号的前缀
Dim max As String
Dim idx As Integer
Dim flt As String
flt = "事件流水 like \'" & bh & "%\'"
max = e.DataTable.Compute("Max(事件流水)",flt) \'取得该月的相同工程代码的最大单据编号
If max > "" Then \'如果存在最大单据编号
    idx = CInt(max.Substring(bh.length)) + 1 \'获得最大单据编号的后四位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If
e.DataRow("事件流水") = bh & Format(idx,"0000")


--  作者:sexbee
--  发布时间:2017/6/5 11:34:00
--  
谢谢   DataRowAdded事件是加在表B的事件里吗?  报错:编号“ ”已存在,不能重复。即编号没生成。
我的表B  流水号是  JB201702030012 形式
改为:

Dim d As Date = Date.Today
Dim bh As String = "JB" & Format(d,"yyyyMMdd") \'生成编号的前缀
Dim max As String
Dim idx As Integer
Dim flt As String
flt = "交班编号 like \'" & bh & "%\'"
max = e.DataTable.Compute("Max(交班编号)",flt) \'取得该月的相同工程代码的最大单据编号
If max > "" Then \'如果存在最大单据编号
    idx = CInt(max.Substring(bh.length)) + 1 \'获得最大单据编号的后四位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If
e.DataRow("交班编号") = bh & Format(idx,"0000")
对吗?


放在命令窗口试了下, 报错  e是 private 。。。。