Foxtable(狐表)用户栏目专家坐堂 → 请教:部门分月工资表的合计代码


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

主题:请教:部门分月工资表的合计代码

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/5/8 16:40:00 [只看该作者]

我单击你设计的按钮,不是已经有正确的结果出来了吗:


图片点击可在新窗口打开查看此主题相关图片如下:asd.gif
图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
yangming
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 18:30:00 [只看该作者]

是出来了啊,我的意思是我是用求和的方法,有没有提取的方法?因为个人工资只是提取单元格的数据,并不是几个单元格之和啊

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2009/5/8 18:37:00 [只看该作者]

 

Find

在DataTable查找符合条件的行,如果找到的话,返回找到的行,否则返回Nothing。
如果有多个符合条件的行,默认返回第一个,也可以指定返回第几个符合条件的行。

语法:

Find(Filter,Sort,Index)

Filter:  条件表达式,
请参考表达式的运算符和函数
Sort:    可选参数,指定排序方式。
Index:   可选参数,指定返回第几个符合条件的行。

示例一:

Dim dr As DataRow
dr =
DataTables("产品").Find("产品编号 = '03'") '找出编号为03的产品
With DataTables(
"订单")
    dr = .Find(
"产品 = 'PD01'","日期") '找出第一次订购PD01产品的记录
    dr = .Find(
"产品 = 'PD01'","日期",1) '找出第二次订购PD01产品的记录
End With

实例二:

有的时候,我们需要查找倒数第几行数据,例如最近一次订购某某产品的记录。
可以参考下面的代码:

Dim dr As DataRow
With DataTables("订单")
    dr
= .Find("产品 = 'PD01'","日期 Desc")
'找出最后一次订购PD01产品的记录
   
dr = .Find("产品 = 'PD01'","日期 Desc",1) '找出倒数第二次订购PD01产品的记录
End With

可以看到代码和原来几乎一样,唯一的变化是排序参数,被改为:日期 Desc
加上DESC使得日期按照降序排序,最后的日期排在最前面,我们所找出的第一条记录,就是最后一次订购产品PD01的记录。

Find函数只能找出一条符合条件的行,如果要同时找出所有符合条件的行,可以使用Select方法。


 回到顶部
美女呀,离线,留言给我吧!
yangming
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 18:43:00 [只看该作者]

dr(dc.name) = DataTables("工资库").Find("实发工资","月份 ='" & dc.Name & "' And 工号= '" & dr("工号") & "'")

我这样做过,但是报错了,请don老师看看错在何处?

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2009/5/8 18:46:00 [只看该作者]


...

Dim T as String
T = "月份 ='" & dc.Name & "' And 工号= '" & dr("工号") & "'"
dr(dc.name) = DataTables("工资库").Find(T)("实发工资")
...


 回到顶部
美女呀,离线,留言给我吧!
yangming
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 18:52:00 [只看该作者]


如不用T,这样也可以? 
dr(dc.name) = DataTables("工资库").Find("月份 ='" & dc.Name & "' And 工号= '" & dr("工号") & "'")("实发工资")

我试试

这样报错了
[此贴子已经被作者于2009-5-8 18:56:26编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1812 积分:12993 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By:2009/5/8 18:54:00 [只看该作者]

以下是引用yangming在2009-5-8 18:52:00的发言:

如不用T,这样也可以? 
dr(dc.name) = DataTables("工资库").Find("月份 ='" & dc.Name & "' And 工号= '" & dr("工号") & "'")("实发工资")

可以.本人喜欢短句.


 回到顶部
美女呀,离线,留言给我吧!
yangming
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/8 18:58:00 [只看该作者]

15楼的也报错了...
短句是看的清楚,呵呵,我只是想和贺老师做的那个做个比较
[此贴子已经被作者于2009-5-8 18:58:38编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/5/8 19:45:00 [只看该作者]

可能是某人某月的工资为空值吧?~~

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/5/8 20:16:00 [只看该作者]


把 don 15楼的加上条件后,ok 了~
Dim drk As DataRow
            drk = DataTables("工资库").Find("月份 = '" & dc.Name & "' And 工号= '" & dr("工号") & "'")
            if drk isnot nothing then                
                Dim T as String
                T = "月份 ='" & dc.Name & "' And 工号= '" & dr("工号") & "'"
                dr(dc.name) = DataTables("工资库").Find(T)("实发工资")
            end if

只是,好像速度有点卡~

 回到顶部
总数 27 上一页 1 2 3 下一页