以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]自动输入 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=102761) |
-- 作者:积水成渊 -- 发布时间:2017/6/25 13:09:00 -- [求助]自动输入 处理一张岗位表,字段有岗位,补贴金额,其中岗位有总经理,部长,店长。现在我需要判断岗位字段如果是总经理,则补贴金额字段自动填写300,如果岗。字段的内容是部长,则补贴金额字段自动填写260,该如果实现。在线等 |
-- 作者:积水成渊 -- 发布时间:2017/6/25 14:01:00 -- If e.DataRow.IsNull("岗位") = False Then If e.DataRow("岗位") = "总经理" Then e.DataRow("补贴金额") = 100 Else e.DataRow("补贴金额") = Nothing End If End If If e.DataRow.IsNull("岗位") = False Then If e.DataRow("岗位") = "部长" Then e.DataRow("补贴金额") = 50 Else e.DataRow("补贴金额") = Nothing End If End If If e.DataRow.IsNull("岗位") = False Then If e.DataRow("岗位") = "店长" Then e.DataRow("补贴金额") = 30 Else e.DataRow("补贴金额") = Nothing End If End If 这种代码并不简洁,而且还不是联动的,就是还要我们重置列,补贴金额才会发生变化,我能不能将这段代码改成能放在杂项的命令窗口执行。
|
-- 作者:李孝春 -- 发布时间:2017/6/25 14:18:00 -- 回复:(积水成渊)If e.DataRow.IsNull("岗位") = Fa... 参照这个 建议建一个补贴金额表 岗位 补贴金额 两个字段 岗位 补贴金额 总经理 100 部长 50 店长 30 单独建表有一个好处,便于你后续可以自己修改这个金额和岗位值,而不是每次都要修改系统代码! 代码如下:
If e.DataCol.Name = "岗位" Then If e.NewValue Is Nothing Then e.DataRow("补贴金额") = Nothing Else Dim dr As DataRow dr = DataTables("补贴金额表").sqlFind("[岗位] = \'" & e.NewValue & "\'") If dr IsNot Nothing Then e.DataRow("补贴金额")= dr("补贴金额") End If End If End If [此贴子已经被作者于2017/6/25 14:18:52编辑过]
|
-- 作者:有点色 -- 发布时间:2017/6/25 14:20:00 -- 重置列一下
If e.DataRow.IsNull("岗位") = False Then |
-- 作者:积水成渊 -- 发布时间:2017/6/25 14:33:00 -- 感谢你提供的办法,我之前就是按照你的这种想法处理的。但是行不通,因为岗位这个字段是从人资系统获取的,人资系统的岗位字段发生变化,我表里的岗位字段就会发生改变,所以我觉得不能单独建个表去改变的 [此贴子已经被作者于2017/6/25 14:33:06编辑过]
|
-- 作者:积水成渊 -- 发布时间:2017/6/25 14:55:00 -- 有点色老师,如果岗位这个是动态表示式列,这段代码还能起到作用吗,因为岗位这个字段不是人工改的,而是绑定了另外一张表,所以如何另外一张表的岗位字段发生改变,我的表的岗位字段才会发生改变 |
-- 作者:有点色 -- 发布时间:2017/6/25 16:27:00 -- 你可以用重置列的方式。
在另一张表的datacolchanged事件写代码
If e.DataCol.Name = "岗位" Then DataTables("表A").datacols("某列").RaiseDataColChanged() End If |
-- 作者:积水成渊 -- 发布时间:2017/6/25 16:49:00 -- 另外一张表在别的系统软件里面。我们只是在数据库底层取数据,所有老师提供的方法行不通 |
-- 作者:有点色 -- 发布时间:2017/6/25 17:35:00 -- 岗位列什么时候修改?通过什么方式修改?修改之后,重置列。 |