Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
Dim dd As WinForm.TextBox = Forms("调整工资工龄暗").Controls("姓名")
Dim dr2 As DataRow = DataTables("员工档案").Find("[姓名] = '" & dd.text & "' and [标记] Is Not Null ")
If dr2 IsNot Nothing Then
DataTables("工资调整").ReplaceFor("现基本工资暗", Forms("调整工资工龄暗").Controls("基本工资暗").text, " [姓名] = '" & dd.text & "' and [现基本工资暗] = Max and [岗位工资暗] = Max ")
DataTables("工资调整").ReplaceFor("岗位工资暗", Forms("调整工资工龄暗").Controls("岗位工资暗").text, " [姓名] = '" & dd.text & "' and [现基本工资暗] = Max and [岗位工资暗] = Max ")
Else
MessageBox.Show("您调整的员工不对!", "提示")
End If
请问以上按钮代码红色的问题在哪里,谢谢
或许你要定义一下:
Dim Max As Double = DataTables("表名").Compute("Max(列名)", "条件")
姓名相同,现基本工资暗和岗位工资暗有多行,如:
调整时间 姓名 现基本工资暗 岗位工资暗
2010-06-01 张三 1000 500
2010-07-01 张三 1100 500
2010-08-01 张三 1100 600
2010-06-01 李四 1200 600
2010-07-01 李四 1200 700
2010-08-01 李四 1300 700
我要选出红色行的进行替换。用日期最大一个条件也可以。
这是高管要用的特殊岗位工资调整窗口,一般操作员这两列是隐藏的,
Dim dr As DataRow
dr = DataTables("调整工资").Find("姓名 = '张三'","调整时间 Desc")
If dr IsNot Nothing Then
Output.Show("现基本工资暗:" & dr("现基本工资暗"))
Output.Show("岗位工资暗:" & dr("岗位工资暗"))
End If
可能这样就可以了吧:
Dim Max As Date = DataTables("调整工资").Compute("Max(调整时间)", "[姓名] = '" & dd.text & "' ")
DataTables("工资调整").ReplaceFor("现基本工资暗", Forms("调整工资工龄暗").Controls("基本工资暗").text, " [姓名] = '" & dd.text & "' and [调整时间] = '" & Max & "' ")
其实5楼代码可以这样直接更新数据:
dr("现基本工资暗") = Forms("调整工资工龄暗").Controls("基本工资暗").text
这样也行:
DataTables("工资调整").ReplaceFor("现基本工资暗", Forms("调整工资工龄暗").Controls("基本工资暗").text, " [姓名] = '" & dd.text & "' and [调整时间] = '" & Max & "' ")
按C版的意见也行,不过好像代码更正规,不然到什么时候出现问题还不知道,谢谢C版:
DataTables("工资调整").ReplaceFor("现基本工资暗", Forms("调整工资工龄暗").Controls("基本工资暗").text, " [姓名] = '" & dd.text & "' and [调整时间] = #" & Max & "# ")