Foxtable(狐表)用户栏目专家坐堂 → 目录树疑问


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

主题:目录树疑问

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


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
目录树疑问  发帖心情 Post By:2015/2/26 10:36:00 [只看该作者]

请问使用目录树输入的列数据如何 判断数据是否在另一个表中?

 

  

 

目录树双击代码如下


If e.Node.Level = 1 Then '如果单击的是第二层节点
    Dim tr As Row = Tables("订单主表.订单明细表").Current
    Dim dr As DataRow = e.Node.DataRow '获取生成此节点的DataRow
    tr("客户产品号") = dr("客户产品号")
    tr("材料编号") = dr("材料编号")
    tr("内控产品号") = dr("内控产品号")
    tr("产品描述") = dr("产品描述")
    e.Form.DropDownBox.Value = tr("客户产品号") '这行不是多余的,省略此行,无法在表中正常使用此下拉窗口输入数据.
  e.Form.DropDownBox.CloseDropdown()
End If


图片点击可在新窗口打开查看此主题相关图片如下:目录树.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2015/2/26 10:39:06编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/2/26 10:37:00 [只看该作者]

在DataColChangINg 中利用FIND查找判断一下即可


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


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2015/2/26 10:44:00 [只看该作者]

以下是引用Bin在2015/2/26 10:37:00的发言:
在DataColChangINg 中利用FIND查找判断一下即可

 

我是在DataColChanged 中判断的,但是不行

 

'如果变更已经输好的数据,那么相应的其他相关数据需要清空
If e.DataCol.Name = "客户产品号" Then '如果内容发生变动的是品名列
     Dim dr As DataRow
    dr = DataTables("出库明细").Find("[客户产品号] = '"& e.oldValue & "'and  [客户订单号] = '"& e.DataRow("客户订单号") & "'and [订单行号] = '"& e.DataRow("订单行号") & "' ")
    If dr IsNot Nothing Then '如果找到的话
        msgbox("该订单已经出货了,不允许修改")
        e.DataRow("客户产品号") = e.OldValue
        DataTables("订单明细表").save()
    Else
             e.DataRow("订货数量") = Nothing
            e.DataRow("含税单价") = Nothing
            e.DataRow("未税单价") = Nothing
            e.DataRow("交货日期") = Nothing
             e.DataRow("产品描述") = Nothing

            'Dim filter As String = "客户 = '" & e.DataRow("客户") & "' and 客户订单号 = '" & e.DataRow("客户订单号") & "' and 客户产品号 = '" & e.DataRow("客户产品号") & "' and 订单行号 = '" & e.DataRow("订单行号") & "'"
      End If
End If

 

应该是如果在出库明细表中有该客户产品号数据存在,就不允许修改,否则订货数量,含税单价,未税单价等清零,实际运行下来是 在出库明细表中有该客户产品号数据存在 订货数量,含税单价,未税单价被清零了。没有起到效果呢

[此贴子已经被作者于2015/2/26 10:46:47编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/2/26 10:45:00 [只看该作者]

e.oldValue  改为 e.datarow("列名")

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/26 10:49:00 [只看该作者]

DataColChanging 事件,注意,修改的是 [客户产品号] 的时候

 

If e.DataCol.Name = "客户产品号" Then '如果内容发生变动的是品名列
    Dim dr As DataRow
    dr = DataTables("出库明细").Find("[客户产品号] = '"& e.newValue & "'and  [客户订单号] = '"& e.DataRow("客户订单号") & "'and [订单行号] = '"& e.DataRow("订单行号") & "' ")
    If dr IsNot Nothing Then '如果找到的话
        msgbox("该订单已经出货了,不允许修改")
        e.Cancel = True
    Else
        e.DataRow("订货数量") = Nothing
        e.DataRow("含税单价") = Nothing
        e.DataRow("未税单价") = Nothing
        e.DataRow("交货日期") = Nothing
        e.DataRow("产品描述") = Nothing
    End If
End If


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


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2015/2/26 10:53:00 [只看该作者]

以下是引用Bin在2015/2/26 10:45:00的发言:
e.oldValue  改为 e.datarow("列名")

 

 

改成这样还是不对

 

dr = DataTables("出库明细").Find("[客户产品号] = '"& e.datarow("客户产品号") & "'and  [客户订单号] = '"& e.DataRow("客户订单号") & "'and [订单行号] = '"& e.DataRow("订单行号") & "' ")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/26 10:57:00 [只看该作者]

 看5楼,你的代码是修改 客户产品号 的时候,才会触发代码的啊,修改其它列不会触发啊。

[此贴子已经被作者于2015/2/26 10:58:04编辑过]

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


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2015/2/26 12:10:00 [只看该作者]

DataColChanging 事件,改好了,代码如下:

 

 

If e.DataCol.Name = "客户产品号" Then '如果内容发生变动的是品名列
    Dim dr As DataRow
    dr = DataTables("出库明细").Find("[客户产品号] = '"& e.oldValue & "'and  [客户订单号] = '"& e.DataRow("客户订单号") & "'and [订单行号] = '"& e.DataRow("订单行号") & "' ")
    If dr IsNot Nothing Then '如果找到的话
        msgbox("该订单已经出货了,不允许修改")
        e.Cancel = True
    Else
        e.DataRow("订货数量") = Nothing
        e.DataRow("含税单价") = Nothing
        e.DataRow("未税单价") = Nothing
        e.DataRow("交货日期") = Nothing
        e.DataRow("产品描述") = Nothing
    End If
End If

 

可是还是没有用呀,会提示该订单已经出货了,不允许修改,客户产品号会保持不变但是,产品描述和材料编号还是变了: 这个应该是因为我在客户产品号里绑定了目录树,选中了某个客户产品号就会自动输入产品描述和材料编号,但是这个该如何改呢?


 


此主题相关图片如下:目录树1.jpg
按此在新窗口浏览图片
[此贴子已经被作者于2015/2/26 12:11:45编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/2/26 12:15:00 [只看该作者]

 那你可以在下拉窗口那里也判断,如果找到对应的行,就提示,不能修改。


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


加好友 发短信
等级:幼狐 帖子:115 积分:895 威望:0 精华:0 注册:2012/12/18 16:55:00
  发帖心情 Post By:2015/2/26 12:33:00 [只看该作者]

以下是引用有点甜在2015/2/26 12:15:00的发言:

 那你可以在下拉窗口那里也判断,如果找到对应的行,就提示,不能修改。

 

可以说具体点吗,不知道在哪里呢?


 回到顶部
总数 12 1 2 下一页