以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  触发表达式的事件  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73629)

--  作者:jinzhengbe
--  发布时间:2015/8/23 16:56:00
--  触发表达式的事件

串货,和借货的菜单

 

正常 应该是 输入数量 在父表减轻相同数量

 

或者如果输入金额。 在父表 减去 金额除以 单价的数量,

 

但是现在 这两个条件只能满足一个, 不能同时满足两个,应该是字表的代码有问题,还是父表的代码有问题,

 

请给位给指点下, 是在不会了


[此贴子已经被作者于2015/10/31 13:58:27编辑过]

--  作者:大红袍
--  发布时间:2015/8/23 16:58:00
--  
你连最基础的语法都不会啊,去把帮助文档看一遍。
--  作者:大红袍
--  发布时间:2015/8/23 17:19:00
--  
If e.DataCol.name ="yihuishoujin" Then
    Dim  pr As  DataRow = e.DataRow.GetParentRow("chuanhuo2")  \'找出对应的父行
    If  pr IsNot Nothing Then
        DataTables("chuanhuo2").DataCols("tuijin").RaiseDataColChanged(pr)   \'通知系统此父行的数量列发生了改变,触发DataColChanged事件
       
        e.DataRow("huitime") =Date.now()
        e.DataRow("zhiyuan2") =user.name
        e.DataRow("cc")=e.DataRow("yihuishoujin") / e.DataRow("price")
    End If
Else If e.DataCol.name ="yihuishounum"
    Dim  pr1 As  DataRow = e.DataRow.GetParentRow("chuanhuo2")  \'找出对应的父行
    If  pr1 IsNot Nothing Then
        DataTables("chuanhuo2").DataCols("tuinum").RaiseDataColChanged(pr1)   \'通知系统此父行的数量列发生了改变,触发DataColChanged事件
       
        e.DataRow("huitime") =Date.now()
        e.DataRow("zhiyuan2") =user.name
    End If
End If

--  作者:jinzhengbe
--  发布时间:2015/8/23 19:30:00
--  

这不是我要的结果啊

 

我的想法是这样的

 

如果输入的是yihuishoujin   cc= yihuishoujin/单价 

 

aa= cc+ yihuishoushuliang

 

父表的 tuinum =sum(子表的aa)

 

那是不是aa发生变化 才能通知父表 tuinum 触发 datachanged

 

而不是 yihuishoujin 或者yihuishounum

 

 

[此贴子已经被作者于2015/8/23 19:32:31编辑过]

--  作者:有点蓝
--  发布时间:2015/8/23 19:42:00
--  
aa如果是表达式列的话就不能触发datacolchanged事件
因为你aa是前两个算出来的,所以是yihuishoujin 或者yihuishounum两个变化时触发

--  作者:jinzhengbe
--  发布时间:2015/8/23 20:10:00
--  

现在chuanhuo2的tuinum好像并没有变化啊


--  作者:大红袍
--  发布时间:2015/8/23 20:10:00
--  

要不你就不要用重置列的方式。直接取父表的值,计算更好啊。

 

Dim  pr1 As  DataRow = e.DataRow.GetParentRow("chuanhuo2")  \'找出对应的父行

pr1("某列") = pr1("某列") + pr1("某列")