Foxtable(狐表)用户栏目专家坐堂 → [求助]交叉统计日期分组漏日期


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

主题:[求助]交叉统计日期分组漏日期

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


加好友 发短信
等级:童狐 帖子:272 积分:2318 威望:0 精华:0 注册:2011/7/14 16:23:00
  发帖心情 Post By:2011/8/24 16:07:00 [只看该作者]

我要的是有空行的~ ~b

这样的

         01日  02日  03日  04日  05日  。。。

张三      30     40             30     20

李四      20     30             50     40

 

 


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


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

你原来生成的excel报表已经有空行了啊。

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


加好友 发短信
等级:童狐 帖子:272 积分:2318 威望:0 精华:0 注册:2011/7/14 16:23:00
  发帖心情 Post By:2011/8/24 16:21:00 [只看该作者]

原来的是如下:

         01日  02日  03日  04日  。。。

张三      30     40    30     20

李四      20     30    50     40

 

但是3号是星期天,其实没工资,应该是如下:

 

         01日  02日  03日  04日  05日  。。。

张三      30     40              30     20

李四      20     30              50     40

 

 


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


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

你生成的报表,1到31都有了:

 


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

 

我没有看到中间有缺的


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


加好友 发短信
等级:童狐 帖子:272 积分:2318 威望:0 精华:0 注册:2011/7/14 16:23:00
  发帖心情 Post By:2011/8/24 16:29:00 [只看该作者]

3号应该没工资,星期天啊。

因该是1号,2号,4号,5号有工资


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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/8/24 16:48:00 [只看该作者]

1.模板改为:[01日],[02日]...[31日]

2.
Dim Filter As String = "[姓名]<>''"
Dim Y As Integer = Forms("选择月份").Controls("TextBox1").Value
Dim M As Integer = Forms("选择月份").Controls("TextBox2").Value
Dim SD As Date = New Date(Y,M,1)
Dim Days As Integer = Date.DaysInMonth(Y,M)
Dim ED As Date = New Date(Y,M,Days)
Filter = Filter & "And [日期] >= #" & SD & "# And [日期]<= #" & ED & "#"

Dim Ts As String() = {"C","G","小线","开后","小后","佳洁云"}
For n As Integer = 1 To 6  
    If Forms("选择月份").Controls("CheckBox"  & n).Checked = False Then
        Filter+ =  " And [部门] <> '" & Ts(n) & "'"
    End If
Next

Dim s1,s2,sql  As String
Dim Ls As New List(Of String)
Dim cmd As New SQLCommand
Dim dt As DataTable
sql = "select Right('0' & day(日期),2) as 日 From{计件表} where " &  Filter
cmd.CommandText = sql
dt = cmd.ExecuteReader()
Ls = dt.GetUniqueValues("", "日")

For Each s1 In Ls
    s2+ =",iif(Right('0' & day(日期),2)='" & s1 & "',[工价]*[数量] ,Null) as " & s1 & "日"
Next
sql= "Select 部门,姓名" & s2 & ",[工价]*[数量] as 合计 From{计件表} where " &  Filter


Dim g As New GroupTableBuilder("计件工资",sql)
g.Groups.AddDef("部门")
g.Totals.AddDef("合计")
g.Build 
DataTables("计件工资").Fill(sql, True)
 'Tables("计件工资")汇总及设置小数位自行设计

Dim Book As New XLS.Book(ProjectPath & "Attachments\计件工资模板.xls")
Dim fl As String = ProjectPath & "Reports\计件工资" & Y & "-" & M & ".xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()
Forms("选择月份").Close
[此贴子已经被作者于2011-8-24 17:02:04编辑过]

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


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2011/8/24 16:51:00 [只看该作者]

统计表与报表模板不能一一对应(有错位),我的办法是直接保存为Excel(先删除Reports中用模板生成的报表)

Dim Filter As String = "[姓名]<>''"
Dim Y As Integer = Forms("选择月份").Controls("TextBox1").Value
Dim M As Integer = Forms("选择月份").Controls("TextBox2").Value
Dim SD As Date = New Date(Y,M,1)
Dim Days As Integer = Date.DaysInMonth(Y,M)
Dim ED As Date = New Date(Y,M,Days)
Filter = Filter & "And [日期] >= #" & SD & "# And [日期]<= #" & ED & "#"
If Forms("选择月份").Controls("CheckBox1").Checked = False Then
    Filter = Filter & "And [部门]<>'C'"
End If
If Forms("选择月份").Controls("CheckBox2").Checked = False Then
    Filter = Filter & "And [部门]<>'G'"
End If
If Forms("选择月份").Controls("CheckBox3").Checked = False Then
    Filter = Filter & "And [部门]<>'小线'"
End If
If Forms("选择月份").Controls("CheckBox4").Checked = False Then
    Filter = Filter & "And [部门]<>'开后'"
End If
If Forms("选择月份").Controls("CheckBox5").Checked = False Then
    Filter = Filter & "And [部门]<>'小后'"
End If
If Forms("选择月份").Controls("CheckBox6").Checked = False Then
    Filter = Filter & "And [部门]<>'佳洁云'"
End If
Dim g As New CrossTableBuilder("计件工资", DataTables("计件表"), Filter)
g.HGroups.AddDef("部门")
g.HGroups.AddDef("姓名")
g.VGroups.AddDef("日期", DateGroupEnum.Day, "{0}日")
g.Totals.AddDef("金额", "金额")
g.HorizontalTotal = True
g.VerticalTotal = True
g.Decimals = 1
g.Build()
Tables("计件工资").SaveExcel(ProjectPath & "Reports\计件工资" & Y & "-" & M & ".xls","计件工资")
Dim flg As New SaveExcelFlags
flg.MergedRanges = True
Tables("计件工资").SaveExcel(ProjectPath & "Reports\计件工资" & Y & "-" & M & ".xls","计件工资",flg)
Dim Result As DialogResult
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(ProjectPath & "Reports\计件工资" & Y & "-" & M & ".xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.UsedRange
Rg.Borders.Linestyle = MSExcel.XlLineStyle.xlContinuous  '边框线型
Rg.Borders.Weight = MSExcel.XlBorderWeight.xlThin        '边框粗细
Rg.Borders.ColorIndex = 1 '边框颜色
Dim N As MSExcel.Range = Ws.Cells
N.EntireColumn.AutoFit   '自动调整列宽
N.EntireRow.AutoFit      '自动调整行高
App.Visible = True
Wb.Save

Forms("选择月份").Close


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


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

直接保存算了:

 

http://www.foxtable.com/help/topics/0559.htm

 


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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2011/8/24 17:05:00 [只看该作者]

以下是引用狐狸爸爸在2011-8-24 16:55:00的发言:

直接保存算了:

 

http://www.foxtable.com/help/topics/0559.htm

 


单保存不能算,格式设置肯定需要的!


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


加好友 发短信
等级:童狐 帖子:272 积分:2318 威望:0 精华:0 注册:2011/7/14 16:23:00
  发帖心情 Post By:2011/8/24 17:06:00 [只看该作者]

hhbb的保存不了,,易服的报错,

头晕有点。。我才学了1个月狐表


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