以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  刚入门,求助  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=4937)

--  作者:wqc360
--  发布时间:2009/11/10 19:43:00
--  刚入门,求助
  请帮忙看一下:

1.       显示员工档案表时,两个关联表停留在下方两边。

2.       除管理员和开发者以外(及管理员组),其余用户下工资调整表和员工档案不显示【基本工资暗】列。

3.       员工档案表【基本工资】和【基本工资暗】列分别自动填充相应姓名工资调整表【基本工资】和【基本工资暗】列的最大值。

4.       员工档案表【工龄补贴】列自动填充工龄调整表【工龄补贴】列的最大值。
刚学习,不好意思,麻烦各位了,谢谢

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:车间记录.table


--  作者:wqc360
--  发布时间:2009/11/10 19:48:00
--  
 

到现在能否加入:主键列 “_Identify”。和锁定状态“_Locked”列,另用内部表怎么设置数据类型。


--  作者:mr725
--  发布时间:2009/11/10 20:52:00
--  
以下是引用wqc360在2009-11-10 19:43:00的发言:
  请帮忙看一下:

1.       显示员工档案表时,两个关联表停留在下方两边。

2.       除管理员和开发者以外(及管理员组),其余用户下工资调整表和员工档案不显示【基本工资暗】列。

3.       员工档案表【基本工资】和【基本工资暗】列分别自动填充相应姓名工资调整表【基本工资】和【基本工资暗】列的最大值。

4.       员工档案表【工龄补贴】列自动填充工龄调整表【工龄补贴】列的最大值。
刚学习,不好意思,麻烦各位了,谢谢

 下载信息  [文件大小:636.0 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:车间记录.table

供参考:::
1、 在窗口中可以实现。
2、
If User.Name <> "开发者" Then
    Tables("员工档案").Cols("基本工资暗").Visible = False
End If

3、 tables("员工档案").current("基本工资") = DataTables("工资调整").Compute("Max(基本工资)")
4、 同 3、


[此贴子已经被作者于2009-11-10 21:01:38编辑过]

--  作者:mr725
--  发布时间:2009/11/10 20:56:00
--  
以下是引用wqc360在2009-11-10 19:48:00的发言:
 

到现在能否加入:主键列 “_Identify”。和锁定状态“_Locked”列,另用内部表怎么设置数据类型。

内部表不需要设置这两列。 

数据类型设置: 菜单 数据表-列相关-更改列::::::::::::::   或
                            数据表-表相关-其他-表结构 ::::::;::


--  作者:mr725
--  发布时间:2009/11/10 21:13:00
--  
2楼: 

3、 tables("员工档案").current("基本工资") = DataTables("工资调整").Compute("Max(基本工资)"," 姓名 = \'" & tables("员工档案").current("姓名") & "\'")    ‘漏掉了条件,现补上

[此贴子已经被作者于2009-11-10 21:15:00编辑过]

--  作者:wqc360
--  发布时间:2009/11/10 22:22:00
--  
感谢mr725,请问分别在什么事件中设置,谢谢
--  作者:wqc360
--  发布时间:2009/11/10 23:11:00
--  
第二条如果用表视图怎样实现
--  作者:狐狸爸爸
--  发布时间:2009/11/11 7:58:00
--  

1、如果不用窗口,可以参考帮助:应用篇 - 关联表 - 设置关联表窗口,选择选项“独立停靠”,重新打开项目即可

2、项目事件AfterOpenProject或者LoadUserSetting中加入代码:


Dim v As Boolean =  (UserTypeEnum.Administrator OrElse User.Type = UserTypeEnum.Developer)
Tables("员工档案").Cols("基本工资暗").Visible = v
Tables("工资调整").Cols("基本工资暗").Visible = v


3和4、工资调整表的DataColChanged事件:


Select Case  e.DataCol.Name
    Case "姓名"
        Dim Filter  As String =  "姓名 = \'" & e.DataRow("姓名") & "\'"
        e.DataRow("基本工资") = DataTables("工资调整").Compute("Max(基本工资)", Filter)
        e.DataRow("基本工资暗") = DataTables("工资调整").Compute("Max(基本工资暗)", Filter)
        e.DataRow("工龄补贴") = DataTables("工龄调整").Compute("Max(工龄补贴)", Filter)
End Select

[此贴子已经被作者于2009-11-11 8:12:53编辑过]

--  作者:wqc360
--  发布时间:2009/11/11 9:47:00
--  
请问第二项我在项目事件LoadUserSetting中加入代码:

If User.Group <> "管理员" Then
    Tables("员工档案").Cols.Remove("基本工资暗")
    Tables("工资调整").Cols.Remove("基本工资暗")
End If
切换用户之后员工档案表和工资调整表做主表显示时可满足要求,但员工档案表作父表关联工资调整表做子表是关联表中【基本工资暗】列怎样用Cols.Remove代码隐藏。
另If User.Group = "管理员" 时怎样显示出2表中的【基本工资暗】列

--  作者:狐狸爸爸
--  发布时间:2009/11/11 9:55:00
--  

1、如果关联表也要生效:

If User.Group <> "管理员" Then
         Tables("员工档案").Cols.Remove("基本工资暗")
         Tables("工资调整").Cols.Remove("基本工资暗")
         Tables("员工档案.工资调整").Cols.Remove("基本工资暗")
End If


2、另If User.Group = "管理员" 时怎样显示出2表中的【基本工资暗】列

已经Remove了,就不可能回来了,除非重新打开项目。
如果用Remove,应该删除切换用户按钮。