Foxtable(狐表)用户栏目专家坐堂 → [求助]代码报错,生成的统计表也不对


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

主题:[求助]代码报错,生成的统计表也不对

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/14 12:43:00 [显示全部帖子]

填入数据,参考下面,如果不正确,请说明哪里不正确。

 

'生产计划金额累计
'取出
Dim dr1 As DataRow
Dim jhje As Double
dr1 = DataTables("计划表").Find("[部门] = 'ORG1011' and [年份] = '2018' and [月份] = '11'")
If dr1 IsNot Nothing Then
    jhje = dr1("计划金额")
Else
    jhje = 1
End If

Dim jelist As New List(Of String)
'返回指定月份的天数
Dim tianshu As Integer = Date.DaysInMonth(Year(Date.Today),11)
Dim pgje As Double = jhje / tianshu

 

''''''''''''''''''''''''''''
'生成临时表
Dim dtb As New DataTableBuilder("总统计表")
dtb.AddDef("日期", Gettype(String), 32)
dtb.AddDef("计划金额累计", Gettype(String), 32)
dtb.AddDef("实际金额累计", Gettype(String), 32)
dtb.Build()

'添加数据
Dim jj As Integer
Dim zhrq As String
Dim t As Table = Tables("表B")

For jj = 1 To tianshu
    Dim dr3 As DataRow = DataTables("总统计表").AddNew()
    zhrq = Cstr(Year(Date.Today)) + "-11-" + Cstr(jj)
    dr3("日期") = zhrq
    dr3("计划金额累计") = Cstr(pgje*jj)
    For Each r As Row In t.Rows
        If CDate(r("日期")) = CDate(zhrq) Then
            dr3("实际金额累计") = r("实际金额累计")

exit for
        End If
    Next
    If dr3("实际金额累计") = Nothing Then
        dr3("实际金额累计") = Cstr(pgje*jj)
    End If
Next
DataTables("总统计表").Save()


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/14 13:41:00 [显示全部帖子]

以下是引用xndd在2018/12/14 13:31:00的发言:
 

这样,生成的总统计表正确了,但是我是用了字符型存储日期列的,因此排序出了问题,在生成临时表的时候,能够用日期列存储进去吗?谢谢

 

可以的。生成的时候,直接生成日期列即可。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/14 14:52:00 [显示全部帖子]

以下是引用xndd在2018/12/14 14:29:00的发言:
我在获取时,用字符串截断处理了,但是数值不知道怎么处理

    xmlb(i)("month") = Ary1(0).ToString().SubString(0,10)

 

参考

 

    xmlb(i)("month") = Ary1(0).Split(" ")(0)
    xmlb(i)("num") = format(val(Ary1(1)), "0.00")

 回到顶部