以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]代码求助(已解决)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=14180)

--  作者:yyzlxc
--  发布时间:2011/11/11 11:02:00
--  [求助]代码求助(已解决)

项目对全年的报酬情况进行汇总分析
操作:打开项目后,在数据汇总表的加载树选择加载所有行,然后在报酬明细表点击个人汇总,生成个人年度汇总的交叉统计表。
问题:如何在合计_考核月数列生成在册月份的数据(也就是报酬合计_1_2_3...不为空(包括0)的月数),以便取得合计_月均报酬的正确值。

请各位老师帮助指教,谢谢!!

 

 


[此贴子已经被作者于2011-11-11 15:52:08编辑过]

--  作者:hhbb
--  发布时间:2011/11/11 11:15:00
--  
遍历行---遍历相关列---判断
--  作者:yyzlxc
--  发布时间:2011/11/11 11:21:00
--  

谢谢hhbb老师的回复!!

问题是代码不知如何写,没有头绪。


--  作者:hhbb
--  发布时间:2011/11/11 12:05:00
--  
.....................
s= Nothing
For n As Integer =1 To (t.Cols.count-8)/4
       s+="+IIF([报酬合计_" & n & "] is  Null ,0,1)"
Next
s=s.substring(1)
t.DataTable.DataCols("合计_考核月数").Expression = s

--  作者:狐狸爸爸
--  发布时间:2011/11/11 12:06:00
--  
Dim cnt As Integer = DataTables("报酬明细").GetUniqueValues("","ny").count
DataTables("个人年度汇总").ReplaceFor("合计_考核月数",cnt)

--  作者:yyzlxc
--  发布时间:2011/11/11 12:22:00
--  

谢谢hhbb和狐爸老师的帮助指教,都怪学生才学粗浅,不得要领,以上代码应该如何加到按钮代码中,还望指教。谢谢!!

 

狐爸老师的代码运行后全部等于9,显然是不正确的,可能是我没有表述清楚,应该是每一行报酬合计_x不为空的个数。

[此贴子已经被作者于2011-11-11 12:45:18编辑过]

--  作者:yyzlxc
--  发布时间:2011/11/11 14:00:00
--  

自己试了一下,还是不行,代码报错。

 

Dim t As Table = Tables("个人年度汇总")
Dim i As Integer =(Tables("个人年度汇总").Cols.Count-5)/4
t.DataTable.DataCols.Add("合计_考核月数", Gettype(Double),0)
For Each r As Row In t.Rows
    Dim k As Double = Nothing
    For j As Byte = 1 To i
         k + =" + IIF([报酬合计_ "& i &"] Is  Null ,0,1)"
    Next
    r("合计_考核月数") = k
Next
t.DataTable.DataCols.Add("合计_月均报酬", Gettype(Double),"[合计_报酬合计]/[合计_考核月数]")

 

 


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

--  作者:狐狸爸爸
--  发布时间:2011/11/11 14:14:00
--  

这样可以了:

 


For Each dr As DataRow In DataTables("个人年度汇总").DataRows
    Dim cnt As Integer = 0
    For Each dc As DataCol In DataTables("个人年度汇总").DataCols
        If dr.isnull(dc.name)  = False AndAlso dc.name.StartsWith("报酬合计_")  Then
            cnt = cnt +1
        End If
    Next
    dr("合计_考核月数") = cnt
Next


--  作者:yyzlxc
--  发布时间:2011/11/11 14:26:00
--  
ok了,谢谢狐爸老师!!
--  作者:hhbb
--  发布时间:2011/11/11 14:53:00
--  
以下是引用yyzlxc在2011-11-11 12:22:00的发言:

谢谢hhbb和狐爸老师的帮助指教,都怪学生才学粗浅,不得要领,以上代码应该如何加到按钮代码中,还望指教。谢谢!!

 

4楼的代码你写不出来,说的过去,但我写了出来,而你连把它接在原代码后面都不会,那真杯了图片点击可在新窗口打开查看