以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  帮忙看看这段代码有啥问题?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=42044)

--  作者:blackzhu
--  发布时间:2013/11/2 11:49:00
--  帮忙看看这段代码有啥问题?
Arys = DataTables("统计表21").GetUniqueValues("","部门","组别","管组民警")
            For Each Ary As String() In Arys
                Filter = "[部门] = \'" & Ary(0) & "\' And 组别=\'" & Ary(1) & "\'And 管组民警=\'" & Ary(2) & "\' And 数据统计项目=\'额定返校率\'"
                Ar = Tables("我的报表_Table2").DataTable.Find(Filter)
                If Ar IsNot Nothing Then
                    Dim Vals() As String = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"}
                    For index As Integer = 0 To Vals.Length - 1
                        dt1 = New Date(y, index+1, 1)
                        dt2 = New Date(y, index+1, Date.DaysInMonth(y,index+1)) \'获取该月的最后一天
                        Filter1 = "日期>=\'" & dt1 & "\'And 日期<=\'" & dt2 & "\' And [部门] = \'" & Ary(0) & "\' And 组别=\'" & Ary(1) & "\'And 管组民警=\'" & Ary(2) & "\' "
                        For Each cl As Col In Tables("统计表21").cols
                            Select Case cl.Caption
                                Case "金工点返校量(公斤)"
                                    Val1= DataTables("统计表21").Compute("Sum(" & cl.Name & ")",Filter1)
                                Case "校正组当日产量(公斤)"
                                    Val2= DataTables("统计表21").Compute("Sum(" & cl.Name & ")",Filter1)
                                    Dim Vall As Double = Val1/Val2
MessageBox.Show(Vall)
                                    If Vall > 0   Then
                                        Ar(Vals(index)) = Vall
                                    Else
                                        Ar(Vals(index)) = 0
                                    End If
                            End Select
                        Next
                    Next
                End If
            Next

 可以找到 "额定返校率"    Vall  也可以计算出数字  但是就是写入不到这个我要求的列中

--  作者:Bin
--  发布时间:2013/11/2 11:51:00
--  
调试一下不就知道什么原因了吗,这样发一坨,还没得测试.  真的有点无从下手哦!
--  作者:blackzhu
--  发布时间:2013/11/2 11:59:00
--  
我都调试了  而且一个个显示了数字 就是写不进去,几个小时了.写定了列名也不肯写入
[此贴子已经被作者于2013-11-2 12:00:45编辑过]

--  作者:Bin
--  发布时间:2013/11/2 12:01:00
--  
上个例子,我来研究研究!
--  作者:blackzhu
--  发布时间:2013/11/2 12:06:00
--  
这个上不了 数据库太大了,你在群里不?
--  作者:狐狸爸爸
--  发布时间:2013/11/2 12:13:00
--  
\'...
messagebox.show("写入前的值:" & Vals(index))
If Vall > 0 Then
    Ar(Vals(index)) = Vall
    messagebox.show("写入的值:" & val)
Else
    Ar(Vals(index)) = 0
    messagebox.show("写入的值:" & 0)
End If
messagebox.show("写入后的值:" & Vals(index))
\'...

--  作者:blackzhu
--  发布时间:2013/11/2 12:18:00
--  
我操,我保留了两位小数  但是这个计算是两位小数是零  图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看
--  作者:狐狸爸爸
--  发布时间:2013/11/2 13:27:00
--  
这种基本的调试技能,你要有的哦
--  作者:blackzhu
--  发布时间:2013/11/2 13:36:00
--  
 我当然利用msgbox调试了,唉 !  一时没有想到是这个小数的问题造成的!