Foxtable(狐表)用户栏目专家坐堂 → excel 表中表达式求助


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

主题:excel 表中表达式求助

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/8/27 15:27:00 [显示全部帖子]

楼主如不想加表达式列,请将你的狐表文件及EXCEL表一并打包上传,我们看看为何你用贺老师二楼的公式不对,帮你查一下

[此贴子已经被作者于2011-8-27 15:27:53编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/8/27 19:49:00 [显示全部帖子]

楼主的问题比较麻烦,

1  按贺老师二楼的公式放入报表中并不起作用,原因不明,还请贺老师再看看是何故.

2   楼主不愿意再增加表达式列,所以我先是用增加临时表达式列的办法做了,但是发现新增的表达式公式中所涉及到的列又是表达式列,而且公式均使用的是Parent,这样,我做的表达式列的各行无法计算,所以我现在又采取了基于模板进行修改的办法,先应付一下吧,呵呵

3 关于工资结转的问题,我想是否可以根据工资库的日期列进行比较,在打开窗口时对日期进行查找,如果查找到当月的日期,那就让结转工资的按钮不可用,如果小于当月日期,则让按钮可用.

[此贴子已经被作者于2011-8-27 19:51:43编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/8/27 20:13:00 [显示全部帖子]

11楼的表达式不计算的问题我解决了,上传你的文件,你可以看一下采用哪种办法,是新增表达式列还是直接填到EXCEL表中

注意EXCEL表的顺序要根据你采用的办法而改变一下,呵

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:工资管理中的e表问题.rar

[此贴子已经被作者于2011-8-27 20:19:57编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/8/28 12:01:00 [显示全部帖子]

以下是引用wgllvyue在2011-8-28 11:40:00的发言:

谢谢你啊,EXCEL的问题解决了,

但是,我说的另一个问题还没解决啊,就是我想在单击工资转结即把数据导入数据库的过程中出现一个确认的按钮,确认后才开始转结。谢谢了,在帮忙研究研究好吗,帮帮小学生吧。

[此贴子已经被作者于2011-8-28 11:41:06编辑过]

就是不知道你的确认需要什么条件,不然昨天就一起做了,呵,你看一下11楼的第三条

[此贴子已经被作者于2011-8-28 12:03:19编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/8/28 13:02:00 [显示全部帖子]

第一个确定结转的问题很好办,我想是否不要做窗口?直接用MessageBox提示不是更好吗?多做一个小窗口没有必要,呵

第二个问题,如果你将二表做成关联了,那就可以实现的,你可以以姓名做为关联列,但是,如果有同名同姓的就比较麻烦了,最好是以身份证号,或者你给每个员工一个工号,只要是唯一的,就可以做为关联列

 

另外,有问题可以在论坛上问,论坛上有许多版主和狐友的的水平都比我高啊,如果确实需要我帮忙解决的,可以在论坛发贴后,再发短信给我,让我关注一下便可以了,呵

[此贴子已经被作者于2011-8-28 13:08:22编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/8/28 13:20:00 [显示全部帖子]

这段代码你放在"建峰工资结转"按钮中,我现在做的是如果点了是,就结转,否就退出结转的窗口,如果你不想退出此窗口,可以将红字部分删除就可以了.另一个按钮你类推便可了

Dim Result As DialogResult
Result = MessageBox.Show("您确定要结转吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
    Tables("建峰人员考勤库").ClearSubtotal()
Dim f As New Filler
f.SourceTable = DataTables("建峰人员考勤") '指定数据来源
f.DataTable = DataTables("建峰人员考勤库") '指定数据接收表
f.Fill() '填充数据
Else
    e.Form.Close '退出结转的窗口
End If

[此贴子已经被作者于2011-8-28 13:20:25编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/8/28 16:01:00 [显示全部帖子]

关联表的问题如下解决,因为,如果父表中新增行时,只是一空行,此时就算子表也新增了一行也是空行,无法与父表相关联,所以,我建议:

如是只是在表中操作新增行,那就在表中加一个列,类型 为逻辑列,并在父表的表属性的AfterEdit事件中加上代码如下,我这儿假设增加的逻辑列的名称是A,注意:此列一定在加在姓名列的后面,并且姓名列不能为空

If e.Row("姓名")<>"" And e.Row("A")=True  Then
    Tables("考勤.对外工资").AddNew()
 Else
e.Row("A") = False
 MessageBox.Show("姓名不能为空", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)
End If

 

你要做的就是在这列中打个勾,那么子表中就可以新增一行了,并同时会自动输入姓名了.

 

如果是放在窗体中做新增行,那可以加一个复选框,然后在复选框的CheckedChanged 事件中加代码就行了

Dim r As Row = Tables("考勤").Current
If r("姓名") <> "" And r("A") = True Then
    Tables("考勤.对外工资").AddNew()
 Else
r("A")= False
 MessageBox.Show("姓名不能为空", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)
End If

[此贴子已经被作者于2011-8-28 16:25:24编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2011/8/28 20:40:00 [显示全部帖子]

删除你原表属性中的DataColChanged事件中的代码,同步框的代码改成这样

 

Dim r As Row = Tables("考勤").Current
If r("姓名") IsNot Nothing  Then
    Tables("考勤.对外工资").AddNew()
Else
    r("同步")= False
    MessageBox.Show("姓名不能为空", "提示", MessageBoxButtons.ok, MessageBoxIcon.Question)
End If


 回到顶部