Foxtable(狐表)用户栏目专家坐堂 → [求助]关于全局变量与数据填充


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

主题:[求助]关于全局变量与数据填充

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/1 9:13:00 [显示全部帖子]

没有必要分开两个表,一个表就行,你可以通过编码,使得默认只加载当月数据,通过代码加载不同月份的数据。或者初始加载所有数据,然后通过代码来筛选不同月份的数据。
另:现有的日期列应该改为发放日期,新增一个年月列,列类型为字符型。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/1 10:39:00 [显示全部帖子]

1、可以有一个员工资料表,然后增加一个按钮,根据该表中的每一条记录,自动在工资表中增加行,自动填入年月和姓名,这个很容易。
2、如果是编码,取得年月不是很简单吗?当然你也可以增加一个表达式列,表达式为:
SubString(Convert([日期],'System.String'),1,4) + '-' + SUBSTRING(Convert([日期],'System.String'),6,IIF(SUBSTRING(Convert([日期],'System.String'),7,1) = '-',1,2))

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/1 11:33:00 [显示全部帖子]

首先工资表应该有一个年月列,这一列必须是数据型,而不是表达式形。
做一个按钮,代码大致如下

Dim YM As String = Date.Today.Year & "-" & Date.Today.Month
Dim Dt1 As DataTable = DataTables("员工") 
Dim Dt2 As DataTable = DataTables("工资") 
for each dr1 As DataRow = dt1.DataRows
    Dim dr2 As DataRow = dt2.AddNew()
    dr2("姓名") = dr1(“姓名")
    dr2("年月") = YM
Next

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/2/2 10:24:00 [显示全部帖子]

仔细想想,你说的问题其实不存在,没有必要复制员工表所有列内容到工资表,通常只需姓名或者工号列即可。
可以在员工表和工资表之间建立父子关联,这样你只需复制关联列(例如工号)到工资表,其它姓名、部门之类的,可以通过表达式来显示。

如果你想复制上月数据到本月,那是肯定可以的,用DataTable的Select方法获得上月所有的行,然后逐行复制即可。

大概就是:

Dim dt As DataTable = DataTables("工资表").
Dim drs As List(Of DataRow) = dt.Select("筛选上月的判断条件")
For Each dr1 As DataRow in drs
    Dim dr1 As DataRow = dt.AddNew()
    For each dc As DataCol in dt.DataCols
         dr2(dc.name) = dr1(dc.name)
    Next
    dr1("年月") = Date.Today.Year & "-" & Date.Today.Month
Next


其实万变不离其宗,熟练了,代码比起易表的And And,要更简单一些。
[此贴子已经被作者于2009-2-2 10:25:27编辑过]

 回到顶部