Foxtable(狐表)用户栏目专家坐堂 → [求助]动态表填充(已解决)


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

主题:[求助]动态表填充(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]动态表填充(已解决)  发帖心情 Post By:2016/4/15 11:08:00 [只看该作者]

动态生成的“工效分析”表,如何填充列标题(年月日),以及根据表标题填充工效值,请各位老师指教,谢谢!!


Dim rq As Date = Forms("扎包数据").Controls("DateTimePicker1").Value
Dim y As Integer = rq.Year
Dim m As Integer = rq.Month
Dim dt1 As New Date(y, m, 1) '月初
Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) '月底
Dim gwid As String = Forms("扎包数据").Controls("TextBox2").Text
MainTable = Tables("工效分析")
DataTables("工效分析").DataRows.Clear()

'删除条件列
Dim t As Table = Tables("工效分析")
For i As Integer = t.cols.count-1 To 0 Step -1
    If t.cols(i).name <> "节拍序号" Then '排除列
        t.DataTable.DataCols.Delete(t.cols(i).name)
    End If
Next

'动态增加列
Dim b As Integer = DataTables("扎包数据").SQLGetValues("日期", "日期 >= '" & dt1 & "' and 日期 <= '" & dt2 & "'").Count
Dim j As Integer
For j = 1 To b
    If DataTables("工效分析").DataCols.Contains("工效_" & j) = False Then
        DataTables("工效分析").DataCols.Add("工效_" & j,Gettype(Double))
    End If
Next
’填充节拍序号
Dim f As New Filler
f.SourceTable = DataTables("扎包数据") '指定数据来源
f.SourceCols = "节拍序号" '指定数据来源列
f.DataTable = DataTables("工效分析") '指定数据接收表
f.DataCols = "节拍序号" '指定数据接收列
f.Filter = "日期 >= '" & dt1 & "' and 日期 <= '" & dt2 & "'and 工位ID = '" & gwid & "'"
f.ExcludeExistValue = True
f.Fill()

'动态填充表标题
With DataTables("工效分析")
    .DataCols("工效_1").Caption = "" ‘时间段内的不重复年月日
    .BuildHeader()
End With

'条件填充工效
For Each dr As DataRow In DataTables("工效分析").DataRows
    If dr.IsNull("节拍序号") = False Then
        Dim pr As DataRow = DataTables("扎包数据").SQLFind("日期 = '" & XXX & "' And 节拍序号 = '" & dr("节拍序号") & "' And 工位ID = '" & gwid & "'")
        If pr IsNot Nothing Then
            dr("工效") = pr("工效")
        End If
    End If
Next
[此贴子已经被作者于2016/4/15 16:57:40编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/15 11:16:00 [只看该作者]

增加列这样

 

For Each rq As String  In DataTables("扎包数据").SQLGetValues("日期", "日期 >= '" & dt1 & "' and 日期 <= '" & dt2 & "'")
    If DataTables("工效分析").DataCols.Contains("工效_" & rq) = False Then
        DataTables("工效分析").DataCols.Add("工效_" & rq,Gettype(Double), rq)
    End If
Next

 

计算这样

 

For Each dr As Row In Tables("工效分析").Rows
    If dr.IsNull("节拍序号") = False Then
        Dim pr As DataRow = DataTables("扎包数据").SQLFind("日期 = '" & dr.Caption & "' And 节拍序号 = '" & dr("节拍序号") & "' And 工位ID = '" & gwid & "'")
        If pr IsNot Nothing Then
            dr("工效") = pr("工效")
        End If
    End If
Next

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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/4/15 11:35:00 [只看该作者]

增加列出错!


图片点击可在新窗口打开查看此主题相关图片如下:捕获6.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/15 11:38:00 [只看该作者]

写错了

 

For Each rq As String  In DataTables("扎包数据").SQLGetValues("日期", "日期 >= '" & dt1 & "' and 日期 <= '" & dt2 & "'")
    If DataTables("工效分析").DataCols.Contains("工效_" & rq) = False Then
        DataTables("工效分析").DataCols.Add("工效_" & rq,Gettype(Double), "", rq)
    End If
Next

 


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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/4/15 11:44:00 [只看该作者]

  要求时间格式为“yyyy-MM-dd”,如何调整?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/15 11:45:00 [只看该作者]

For Each rq As String  In DataTables("扎包数据").SQLGetValues("日期", "日期 >= '" & dt1 & "' and 日期 <= '" & dt2 & "'")

    rq = rq.Split(" ")(1)
    If DataTables("工效分析").DataCols.Contains("工效_" & rq) = False Then
        DataTables("工效分析").DataCols.Add("工效_" & rq,Gettype(Double), "", rq)
    End If
Next


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/15 11:46:00 [只看该作者]

或者

 

For Each rq As String  In DataTables("扎包数据").SQLGetValues("日期", "日期 >= '" & dt1 & "' and 日期 <= '" & dt2 & "'")

    Dim d As Date = rq

    rq = Format(d, "yyyy-MM-dd")
    If DataTables("工效分析").DataCols.Contains("工效_" & rq) = False Then
        DataTables("工效分析").DataCols.Add("工效_" & rq,Gettype(Double), "", rq)
    End If
Next


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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/4/15 11:53:00 [只看该作者]

日期排序有问题。


图片点击可在新窗口打开查看此主题相关图片如下:捕获7.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:七尾狐 帖子:1530 积分:10633 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2016/4/15 11:57:00 [只看该作者]

填充工效代码出错!


图片点击可在新窗口打开查看此主题相关图片如下:捕获8.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/15 12:04:00 [只看该作者]

我测试没问题。试试

 

For Each rq As String  In DataTables("扎包数据").SQLGetValues("日期", "日期 >= '" & dt1 & "' and 日期 <= '" & dt2 & "'", "日期")


 回到顶部
总数 19 1 2 下一页