以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60482)

--  作者:seal51
--  发布时间:2014/11/25 17:18:00
--  求代码
订单主表有个“已开票”逻辑列, 订单明细表有个“开票编号”列, 如果开票编号列的内容不为空, 那么已开票=TRUE, 这个代码如何写
--  作者:有点甜
--  发布时间:2014/11/25 17:22:00
--  

 问题要详细一点啊,一行对应一行? 开票编号是关联列?


--  作者:Bin
--  发布时间:2014/11/25 17:22:00
--  
datacolchanged 事件

if e.datacol.name="开票编号" then
   if e.datarow.isnull(e.datacol.name) = false then
     e.datarow("已开票")=true
   end if
end if

--  作者:seal51
--  发布时间:2014/11/25 17:23:00
--  
不是关联列, 关联列是订单编号
--  作者:有点甜
--  发布时间:2014/11/25 17:25:00
--  
If e.DataCol.Name = "开票编号" Then
    Dim count As Integer = e.DataTable.Compute("Count(开票编号)", "主表编号 = \'" & e.DataRow("主表编号") & "\' and 开票编号 is not null")
    Dim rcount As Integer = e.DataTable.Compute("Count(开票编号)", "主表编号 = \'" & e.DataRow("主表编号") & "\'")
    Dim fdr As DataRow = DataTables("订单").Find("主表编号 = \'" & e.DataRow("主表编号") & "\'")
    If count = rcount Then
        fdr("已开票") = True
    Else
        fdr("已开票") = False
    End If
End If

--  作者:seal51
--  发布时间:2014/11/25 17:26:00
--  
我来测试一下, 谢谢老师!
--  作者:seal51
--  发布时间:2014/11/25 17:29:00
--  
写在子表的datacolchanged 事件里吗?
--  作者:有点甜
--  发布时间:2014/11/25 17:35:00
--  
 是的
--  作者:seal51
--  发布时间:2014/11/25 17:42:00
--  
成功了, 谢谢老师, 但如果清空开票编号, 已开票=false, 怎么搞呢
--  作者:有点甜
--  发布时间:2014/11/25 17:43:00
--  
 呃,上面的代码,就是