以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]提取变量,填入到关联行的指定列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=31077)

--  作者:likui412282
--  发布时间:2013/4/9 18:56:00
--  [求助]提取变量,填入到关联行的指定列

在“订单主表”的“窗口1”中实现如下功能

1、填入快递单号,“订单表主表”中“物流单号”列从第一行开始以次填入快递单号,以次增量为“增加值”的值。比如:“增加值”文本框里填入1,“快递单号”文本框里填入6678,那么,“订单主表”的“物流单号”列的第一行是6678,第二行是6679,第三行是6680以次类推。

同时,“订单表”中相关联的行(一行或者多行)的“物流单号”也同步填入相对应的物流单号(“编号”相同的列填入的“物流单号”是相同的)

 

2、在“订单主表”中填入“编号”时,“快递公司”列自动填入窗口中“快递公司”文本框里的值。“订单表”里关联行的对应“快递公司”列也同步填入相同的值。

 

3、增加一个按钮,点击按钮实现,把“快递公司”文本框、“快递单号”文本框和“增加值”文本框同时清空。

 

 

菜鸟入门希望各位前辈赐教

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:运单.table


--  作者:狐狸爸爸
--  发布时间:2013/4/9 19:09:00
--  

1、大概这样:

 

Dim i As Integer = 100 ‘输入的起始值

Dim s As Integer = 1  \'输入的补偿

For Each r as row in Tables("父表.子表").Rows

    r("物流编号") = i

    i = i + 3

Next

 

2、设置订单主表的DataColChanged事件:

 

If Forms("窗口名").Opened Then

    If e.DataCol.Nsame = "编号" Then

        e.DataRow("快递公司") = Forms("窗口名").Controls("控件名").Value

    End If
End If

 

3、

e.Form.Controls("控件名1").Value = Nothing
e.Form.Controls("控件名2").Value = Nothing

e.Form.Controls("控件名3").Value = Nothing

 

先参照着做,有问题再说。

 


--  作者:likui412282
--  发布时间:2013/4/9 21:31:00
--  

1中I+3中的3应该是s吧,这个代码应该放哪里。第一个代码有点摸不着头脑,起始值和补偿值都是来自窗口的控件的,你这里没有体现出来呀。第一个代码给做具体点吧。

 

2、如果“编号”列为空时,“快递公司”列也要为空,这个怎么实现? 

[此贴子已经被作者于2013-4-10 10:25:07编辑过]

--  作者:likui412282
--  发布时间:2013/4/13 9:33:00
--  
大侠们,帮忙看一下呀
--  作者:likui412282
--  发布时间:2013/4/13 9:46:00
--  
顶起来
--  作者:XYT
--  发布时间:2013/4/13 9:58:00
--  

1.你做个按钮使用就好了。

2.加个判断


--  作者:likui412282
--  发布时间:2013/4/14 9:51:00
--  

1,是实时同步的(文本框里没改变一个字符,对应行的关联值都同时改变),按钮实现不了的,我把他放到文本框事件的“textchanged”里面,但是,这个代码好像有问题,不能实时录入

 

2、已经解决了


--  作者:狐狸爸爸
--  发布时间:2013/4/14 10:04:00
--  

你要输入两个值,没有必要社会设置在文本框的TextChanged事件中,设置在某个按钮中:

 

Dim i As Integer = 100 ‘输入的起始值

Dim s As Integer = 1  \'输入的补偿

For Each r as row in Tables("父表.子表").Rows

    r("物流编号") = i

    i = i + s

Next

 

或者设置在第二个文本框的Leave事件中


--  作者:likui412282
--  发布时间:2013/4/14 10:59:00
--  

是两个值,其实第二个值很少改变的,我想要的效果是,无论是第一个文本框,还是第二个文本框,只要输入数学,无论输入焦点是否离开,相对应的列的值都能实时改变


--  作者:狐狸爸爸
--  发布时间:2013/4/14 11:03:00
--  

大概这样:

 

Dim txt1  As String = e.Form.Controls("xxx1").Text
Dim txt2  As String = e.Form.Controls("xxx2").Text
If txt1 > "" AndAlso txt2 > "" Then
    Dim i As Integer = txt1
    Dim s As Integer = 1txt2
    For Each r As Row In Tables("父表.子表").Rows
        r("物流编号") = i
        i = i + s
    Next
End If