以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于窗口更新某个表的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63084)

--  作者:as2517
--  发布时间:2015/1/13 17:48:00
--  [求助]关于窗口更新某个表的问题
新添加销售单 图片红杠位置不自动跟新,红杠位置3个显示框是引用产品客户表里内容。

Dim dr As DataRow = DataTables("产品客户表").Find("客户姓名 = \'" & e.Sender.value & "\'")
If dr IsNot Nothing Then \'如果找到的话
    e.Form.Controls("TextBox2").Value = dr("销售总额") & "元"
    e.Form.Controls("TextBox4").Value = dr("已收款") & "元"
    e.Form.Controls("TextBox3").Value = dr("欠款额") & "元"
End If

 产品客户表里的内容是通过这段代码引用的
Select Case e.DataCol.Name
    Case "客户姓名"
      Dim Filter As String = "客户姓名 = \'" & e.DataRow("客户姓名") & "\'"
    e.DataRow("销售总额") = DataTables("产品销售表").Compute("Sum(实收金额)", Filter)
    e.DataRow("已收款") = DataTables("资金流水").Compute("Sum(收入金额)", Filter)
End Select
然后再MainTableChanged用了下面的代码
If MainTable.Name = "产品客户表" Then
    DataTables("产品客户表").DataCols("客户姓名").RaiseDataColChanged()
End If

我在窗口新增销售单以后它不自动更新,必须回到产品客户表切换一下才可以,希望老师帮忙给解决,不需要回到产品客户表切换,就能自动更新。或是我添加新单以后,让产品客户表自动在后台更新。谢谢
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150113173516.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2015-1-13 17:51:07编辑过]

--  作者:有点甜
--  发布时间:2015/1/13 17:54:00
--  

1、在明细表的DataCochanged事件加入代码 DataTables("产品客户表").DataCols("客户姓名").RaiseDataColChanged()

 

2、如果控件么有绑定表列,DataCochanged可以直接写

 

Dim dr As DataRow = DataTables("产品客户表").Find("客户姓名 = \'" & e.Sender.value & "\'")

If dr IsNot Nothing Then \'如果找到的话
    Forms("窗口1").Controls("TextBox2").Value = dr("销售总额") & "元"
    Forms("窗口1").Controls("TextBox4").Value = dr("已收款") & "元"
    Forms("窗口1").Controls("TextBox3").Value = dr("欠款额") & "元"
End If

--  作者:as2517
--  发布时间:2015/1/13 18:16:00
--  
谢谢甜老师,还有一个问题,我用了这段代码,删除选中的复选框内容。它会弹出提示,选中一个删除没事。选中多个删除的话,这个确认框会弹出好多个。我想选中多个点删除,这个提示框只出现一下。谢谢老师了
Dim rs As List(of Row) = Tables("产品销售表").GetCheckedRows()
For Each r As Row In rs
    Dim Result As DialogResult
    Result = MessageBox.Show("数据删除后不可恢复,确定要删除吗?", "提示", _
    MessageBoxButtons.OkCancel, MessageBoxIcon.Question)
    If Result = DialogResult.Ok Then
       r.Delete
End If
    Next

--  作者:有点甜
--  发布时间:2015/1/13 19:18:00
--  
Dim rs As List(of Row) = Tables("产品销售表").GetCheckedRows()
Dim Result As DialogResult
Result = MessageBox.Show("数据删除后不可恢复,确定要删除吗?", "提示", _
MessageBoxButtons.OkCancel, MessageBoxIcon.Question)
If Result = DialogResult.Ok Then
    For Each r As Row In rs
        r.Delete
    Next
End If