以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  等待某个字段输入完后在执行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67738)

--  作者:jinzhengbe
--  发布时间:2015/4/30 13:15:00
--  等待某个字段输入完后在执行

If e.DataCol.Name = "cord" Then \'如果内容发生变动的是产品列
        Dim dr As DataRow
        dr = DataTables("product").Find("[cord] = \'" & e.NewValue & "\'")
        If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing
            e.DataRow("name") = dr("shangpinming")
            e.DataRow("markprice") = dr("markprice")
    
Else
       If dr Is Nothing Then
想在这个地方价格条件

等输入完 name 字段后在 执行 后面的内容 请指点啊@@

Dim idxs As String = ""
For i As Integer = Tables("xiaoshoudanhao.xiaoshou").TopPosition To Tables("xiaoshoudanhao.xiaoshou").BottomPosition
    idxs &= Tables("xiaoshoudanhao.xiaoshou").Rows(i)("_Identify")
Next
Dim f As New Filler
f.Filter = "_Identify in (" & idxs.Trim(",") & ")"
f.SourceTable = DataTables("xiaoshou") \'指定数据来源
f.SourceCols = "cord,name,markprice" \'指定数据来源列
f.DataTable = DataTables("product") \'指定数据接收表
f.DataCols = "cord,shangpinming,markprice" \'指定数据接收列
f.Fill() \'填充数据
DataTables("product").save()
    End If
End If
End If


SystemReady = False
If e.DataCol.name ="dc" Then
  e.DataRow("price")=e.DataRow("dc") *e.DataRow("markprice")/100

Else If e.DataCol.name ="price"
  e.DataRow("dc") =e.DataRow("price")/ e.DataRow("markprice")
End If
SystemReady = True


--  作者:Bin
--  发布时间:2015/4/30 13:32:00
--  
不明白你的意思
--  作者:jinzhengbe
--  发布时间:2015/4/30 13:52:00
--  
假设 表的列有如下几个

cord  数量  单价  折扣  原价 name

正常是先输入 cord的值  然后判断product表里是否有相同的值

如果没有就把当前行的cord 原价,name  复制到product表里

但是问题是 如果输入完cord后就执行复制的话,复制到到product表的 原价, name的内容就是空的
如果在输入 name的时候在判断是否在product里有相同的cord的值得的话,单价,和折扣的公式就没有办法用了,因为输入顺序是在name前面

--  作者:Bin
--  发布时间:2015/4/30 13:56:00
--  
判断一下. name 和 cord  都不是空再执行即可.

在最外层加入

if e.datarow.isnull("name")=False andalso e.datarow.isnull("cord")=false then

--  作者:jinzhengbe
--  发布时间:2015/4/30 14:07:00
--  
okok 非常感谢 !!!