以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]求删除并还原上次变动的代码 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=5937) |
||||
-- 作者:舜风 -- 发布时间:2010/2/3 21:16:00 -- [求助]求删除并还原上次变动的代码 此主题相关图片如下:未命名.jpg 当删除上图表二[信息变动表]中的最后一条信息的同时,将表一[基础信息表]中对应的“王菲”信息还原到表二[信息变动表]]中上一条“职务变动”时的信息。 求此代码 ,谢谢
[此贴子已经被作者于2010-2-3 21:34:03编辑过]
|
||||
-- 作者:czy -- 发布时间:2010/2/3 22:11:00 -- 不知我理解了没有,应该是比较简单的事。 Dim dr As DataRow = DataTables("信息变动").Find("Id = \'1\'","聘任时间 Desc",1) Dim dr1 As DataRow = DataTables("信息变动").Datarows(Tables("信息变动").Position) Dim pr As DataRow = dr.GetParentrow("基础信息") pr("职称") = dr1("职称") Delete当前行 |
||||
-- 作者:czy -- 发布时间:2010/2/3 22:35:00 -- 楼上代码中Find方法的条件忘了改,上面只是测试用的。 |
||||
-- 作者:舜风 -- 发布时间:2010/2/3 22:37:00 -- C版没有理解我的意思 1、关联表中关联列ID 2、表二中的内容可以说是表一的副本(其实是表一的人事信息变动(或叫信息异动)记录表) 3、当删除表二中“王菲”最后的一次变动记录,此时可为Current(也就是行号为3的记录),与此同时将表二中“王菲”上一次变动记录信息(也就是行号为2的记录)覆盖表一中“王菲”的对应信息 目的是:把误操作恢信息复原到上一次真实的信息——也就是我们操作数据时的还原功能 CTRL+C [此贴子已经被作者于2010-2-3 22:40:17编辑过]
|
||||
-- 作者:czy -- 发布时间:2010/2/3 22:41:00 -- 好象没错吧,这就是恢复啊(将同Id倒数第二条记录中的相关数据写入到父行中)。 pr("职称") = dr1("职称") …… |
||||
-- 作者:czy -- 发布时间:2010/2/3 22:45:00 -- 测试了下,没看出那里不对,或许我真的没理解。 With Tables("信息变动") If .Current IsNot Nothing Then Dim dr As DataRow = DataTables("信息变动").Find("Id = \'" & .Current("Id") & "\'","聘任时间 Desc",1) Dim dr1 As DataRow = DataTables("信息变动").Datarows(.Position) Dim pr As DataRow = dr.GetParentrow("基础信息") pr("职称") = dr1("职称") .Current.Delete End If End With |
||||
-- 作者:舜风 -- 发布时间:2010/2/3 23:24:00 -- 我明白C版的意思 可我却还没表达清楚 我是说:如何能直接操作窗口表二中的当前选择行(窗口表二绑定的表是[基础信息.信息变动] 非 Tables("信息变动")),所以用以上的代码操作窗口表二所见的当前行,其实并非是Tables("信息变动")中的当前行 不知是否能明白了? [此贴子已经被作者于2010-2-3 23:28:30编辑过]
|
||||
-- 作者:舜风 -- 发布时间:2010/2/3 23:47:00 -- 帮助里好像找不到关于自定义窗口中“关联表”操作的内容 而系统窗口列表中的“关联表”表却能做当前行的操作——郁闷 [此贴子已经被作者于2010-2-3 23:50:35编辑过]
|
||||
-- 作者:e-png -- 发布时间:2010/2/4 1:22:00 -- 好难懂哦,最好贴出你删除还原后截图来看看。 |