Foxtable(狐表)用户栏目专家坐堂 → 求助这种表怎么设计


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

主题:求助这种表怎么设计

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


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2014/6/18 16:50:00 [只看该作者]

请问如何就员工管理表的上岗日期和离职日期来筛选2014年5月29日至6月28日在职的员工名单呢

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/6/18 16:52:00 [只看该作者]

  1.     "上岗日期>=#2014-05-29# and 离职日期 >= #2014-06-28#"

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/18 16:59:00 [只看该作者]

 做个按钮,代码

 

Dim dt As DataTable = DataTables("佣金统计表")
dt.DataRows.Clear

Dim d1 As Date = new Date(2014,5,29)
Dim d2 As Date = new Date(2014,6,28)
Dim filter1 As String = "结佣日 >= #" & d1 & "# and 结佣日 <= #" & d2 & "#"
Dim filter2 As String = "离职日期 >= #" & d1 & "# and 离职日期 <= #" & d2 & "# or 上岗日期 >= #" & d1 & "# and 离职日期 is null"

For Each dr As DataRow In DataTables("员工管理").Select(filter2)
    Dim ndr As DataRow = dt.AddNew
    ndr("员工姓名") = dr("姓名")
    ndr("门店") = dr("门店")
    ndr("职务") = dr("职务")
    ndr("佣金") = DataTables("佣金明细").Compute("sum(佣金)", filter1 & " and 员工姓名 = '" & dr("姓名") & "'")
    ndr("结佣日") = DataTables("佣金明细").Compute("max(结佣日)", filter1 & " and 员工姓名 = '" & dr("姓名") & "'")
Next


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


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2014/6/18 17:18:00 [只看该作者]

If e.Form.Controls("DateTimePicker1").Value Is Nothing AndAlso e.Form.Controls("DateTimePicker2").Value Is Nothing Then
    Tables("窗口1_Table1").Fill("select 姓名,门店,职务,结佣日,sum(佣金) as 佣金 from (select * from {员工管理} a inner join {佣金明细} b on a.姓名=b.员工姓名 where b.结佣日 >= #2014-05-29# and b.结佣日 <= #2014-06-28#) group by 姓名,门店,职务,结佣日",True)
Else
    Tables("窗口1_Table1").Fill("select 姓名,门店,职务,结佣日,sum(佣金) as 佣金 from (select * from {员工管理} a inner join {佣金明细} b on a.姓名=b.员工姓名 where b.结佣日 >= #" & e.Form.Controls("DateTimePicker1").Value & "# And b.结佣日 <= #" & e.Form.Controls("DateTimePicker2").Value & "#) group by 姓名,门店,职务,结佣日",True)
End If

请问老师 我想实现 上岗日期早于等于"DateTimePicker2" and 离职日期 = 空值 和 离职日期晚于等于"DateTimePicker1" and 离职日期 早于"DateTimePicker2"来显示员工姓名列 然后统计结佣日在"DateTimePicker1"and "DateTimePicker2"范围内的佣金 在这个表上加个上岗日期和离职日期列能实现不呢
[此贴子已经被作者于2014-6-18 17:18:44编辑过]

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


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2014/6/18 17:49:00 [只看该作者]

我原来的代码是

'=========生成佣金业绩表=========

Dim filter As String = "1=1"

With e.Form.Controls("ComboBox1")

    If .Value IsNot Nothing Then

        Filter = "所属区域 = '" & .Value & "'"

    End If

End With

With e.Form.Controls("ComboBox2")

    If .Value IsNot Nothing Then

        If Filter > "" Then

            Filter = Filter & " And "

        End If

        Filter = Filter & "门店 = '" & .Value & "'"

    End If

End With

With e.Form.Controls("ComboBox3")

    If .Value IsNot Nothing Then

        If Filter >"" Then

            Filter = Filter & " And "

        End If

        Filter = Filter & "员工姓名 = '" & .Value & "'"

    End If

End With

With e.Form.Controls("startDate")

    If .Text > "" Then

        filter &= " and 结佣日 >= '" & .text & "'"

    End If

End With

 

With e.Form.Controls("EndDate")

    If .Text > "" Then

        filter &= " and 结佣日 <= '" & .text & "'"

    End If

End With

If e.Form.Controls("rdoYifu").Checked = True ' 如果付款状态选择了"已付"

    If Filter >"" Then

        Filter = Filter & " And "

    End If

    Filter = Filter & "状态 Is Not Null"

End If

If e.Form.Controls("rdoWeifu").Checked = True ' 如果付款状态选择了"未付"

    If Filter >"" Then

        Filter = Filter & " And "

    End If

    Filter = Filter & "状态 Is Null"

End If

 



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


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2014/6/18 17:50:00 [只看该作者]


Dim g As New SQLCrossTableBuilder("佣金业绩表","佣金明细")

g.ConnectionName = "外部数据源"

g.HGroups.AddDef("门店")

g.HGroups.AddDef("员工姓名")

g.VGroups.AddDef("类型")

g.Totals.AddDef("佣金", "佣金")

g.Totals.AddDef("套数", "套数")

g.OrderByTotal = True

g.HorizontalTotal = True

g.VerticalTotal = True

g.Decimals = 2

g.Subtotal = True

g.Filter = Filter

g.Build()

MainTable = Tables("佣金业绩表")

Forms("佣金业绩表").show()

MainTable = Tables("LILY")



以上代码不能实现显示所有在职人员 下面代码可以解决这个问题 但问题又来了 我是新手 不知道怎么把这两个代码合并到一起来

'=========生成佣金业绩=========

Dim dt As DataTable = DataTables("佣金业绩")

dt.DataRows.Clear

Dim d1 As Date = new Date(2014,5,29) 

Dim d2 As Date = new Date(2014,6,28)

Dim filter1 As String = "结佣日 >= #" & d1 & "# and 结佣日 <= #" & d2 & "#"

Dim filter2 As String = "离职日期 >= #" & d1 & "# and 离职日期 <= #" & d2 & "# or 上岗日期 >= #" & d1 & "# and 离职日期 is null"

For Each dr As DataRow In DataTables("员工管理").Select(filter2)

    Dim ndr As DataRow = dt.AddNew

    ndr("员工姓名") = dr("姓名")

    ndr("门店") = dr("门店")

    ndr("职务") = dr("职务")

    ndr("佣金") = DataTables("佣金明细").Compute("sum(佣金)", filter1 & " and 员工姓名 = '" & dr("姓名") & "'")

    ndr("结佣日") = DataTables("佣金明细").Compute("max(结佣日)", filter1 & " and 员工姓名 = '" & dr("姓名") & "'")

Next

[此贴子已经被作者于2014-6-18 17:49:53编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/18 17:53:00 [只看该作者]

 呃,你先看懂下面的代码吧。如果要用sql语句来做,条件直接用filter1、filter2就行。

 

Dim dt As DataTable = DataTables("佣金统计表")
dt.DataRows.Clear

Dim d1 As Date = new Date(2014,5,29)
Dim d2 As Date = new Date(2014,6,28)

Dim filter1 As String = "结佣日 >= #" & d1 & "# and 结佣日 <= #" & d2 & "#"
Dim filter2 As String = "离职日期 >= #" & d1 & "# and 离职日期 <= #" & d2 & "# or 上岗日期 >= #" & d1 & "# and 离职日期 is null"

For Each dr As DataRow In DataTables("员工管理").Select(filter2)
    Dim ndr As DataRow = dt.AddNew
    ndr("员工姓名") = dr("姓名")
    ndr("门店") = dr("门店")
    ndr("职务") = dr("职务")
    ndr("佣金") = DataTables("佣金明细").Compute("sum(佣金)", filter1 & " and 员工姓名 = '" & dr("姓名") & "'")
    ndr("结佣日") = DataTables("佣金明细").Compute("max(结佣日)", filter1 & " and 员工姓名 = '" & dr("姓名") & "'")
Next


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


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2014/6/18 17:58:00 [只看该作者]

日期是用两个日期输入框"startDate"代表(2014.5.29)和"EndDate"代表(2014.6.28)的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/6/18 18:05:00 [只看该作者]

 请上传有数据的较完整的项目,才能测试或实现你的功能

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


加好友 发短信
等级:三尾狐 帖子:629 积分:4915 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2014/6/18 18:19:00 [只看该作者]

请帮忙整合15 16楼的数据 谢谢 项目如下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb



 回到顶部
总数 56 上一页 1 2 3 4 5 6 下一页