Foxtable(狐表)用户栏目专家坐堂 → 撤销后,记录窗口中修改的内容未被还原


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

主题:撤销后,记录窗口中修改的内容未被还原

帅哥哟,离线,有人找我吗?
jinruan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
撤销后,记录窗口中修改的内容未被还原  发帖心情 Post By:2012/12/15 20:59:00 [显示全部帖子]

取消(撤销)事件:
If (DataTables("销售订单").HasChanges = True) Or (DataTables("销售明细").HasChanges = True) Then
    Dim Result As DialogResult
    Result = MessageBox.Show("是否取消修改", "e.Form.name", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        DataTables("销售订单").RejectChanges()
        DataTables("销售明细").RejectChanges()
    End If
End If


图片点击可在新窗口打开查看此主题相关图片如下:6688.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2012-12-15 20:59:55编辑过]

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/12/16 11:46:00 [显示全部帖子]

销售订单
销售明细
在外部表中都在撤销后还原为原值了,只是对应  销售订单 的这个记录窗口没有更新显示内容

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/12/17 9:24:00 [显示全部帖子]

插入多个RecordGrid控件,全部绑定到一个表,给不同的RecordGrid控件设置不同的显示列,
这样比自己加控件绑定方便多了,以后要增加内容也不用再重排列控件,只调整下RecordGrid的列就行,工作量少很多啦
按您的思路,因为DataTables("销售订单")在始终是加载一条记录, 所以加了:DataTables("销售订单").Load 重新刷新下数据后可以了
If (DataTables("销售订单").HasChanges = True) Or (DataTables("销售明细").HasChanges = True) Then
    Dim Result As DialogResult
    Result = MessageBox.Show("是否取消修改", "e.Form.name", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        DataTables("销售订单").RejectChanges()
        DataTables("销售明细").RejectChanges()
        DataTables("销售订单").Load
    End If
End If

[此贴子已经被作者于2012-12-17 9:24:28编辑过]

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/12/17 10:09:00 [显示全部帖子]

在帮助中找到:记录窗口的 Build 方法,也可以正常显示,此方法可行吗
If (DataTables("销售订单").HasChanges = True) Or (DataTables("销售明细").HasChanges = True) Then
    Dim Result As DialogResult
    Result = MessageBox.Show("是否取消修改", "e.Form.name", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
    If Result = DialogResult.Yes Then
        DataTables("销售订单").RejectChanges()
        DataTables("销售明细").RejectChanges()
        'DataTables("销售订单").Load        
        Dim rgd As WinForm.RecordGrid = e.Form.Controls("RecordGrid3")
        'rgd.Table = Tables("员工")
        'rgd.Columns = "编号|姓名|部门|职务|性别|尊称|出生日期|地址|家庭电话|办公电话"
        rgd.Build()          
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/12/17 10:37:00 [显示全部帖子]

使用遍历,全部重建了记录窗口,测试通过

If (DataTables("销售订单").HasChanges = True) Or (DataTables("销售明细").HasChanges = True) Then

    Dim Result As DialogResult

    Result = MessageBox.Show("是否取消修改", "e.Form.name", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

    If Result = DialogResult.Yes Then

        DataTables("销售订单").RejectChanges()

        DataTables("销售明细").RejectChanges()

        'DataTables("销售订单").Load  '重载数据

        ''  Dim rgd As WinForm.RecordGrid = e.Form.Controls("RecordGrid3") '逐个记录窗口重建立

        ''  rgd.Build

        For Each c As WinForm.Control In e.Form.Controls '遍历重建所有记录窗口

            If Typeof c Is WinForm.RecordGrid Then '判断控件是否是记录窗口

                Dim rgd As WinForm.RecordGrid = c '使用特定类型的变量引用控件

                rgd.Build()

            End If

        Next

    End If

End If


 回到顶部