以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 混合计算统计的代码要怎么写? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127347) |
||||
-- 作者:动检 -- 发布时间:2018/11/12 11:50:00 -- 混合计算统计的代码要怎么写? 请教各位 想在一个代码里体现多种运算的代码怎么写 作为一个开发小白深知以下代码错误很多 脑瓜不够用转不过来 还请多多包涵 目前,检测份数、最大值、最小值已统计出。其他代码还未成立 Dim t As Table = Tables("PPRV") Dim g As Subtotalgroup t.SubtotalGroups.Clear() t.GroupAboveData = False t.TreeVisible = False g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "送检单位" g.Caption = "{0}" t.SubtotalGroups.Add(g) t.Subtotal()
Dim r As Row For i As Integer = 0 To t.Rows.Count(True) - 1 r = t.Rows(i,True) If r.IsGroup \'如果是分组行 Dim f As String = "送检单位 = \'" &
r("送检单位") &
"\'" Dim v As String = " 检测份数:" &
t.Compute("Count(送检单位)",f) v = v & " 阳性数量(≥50):" & t.Compute("Sum(结果) = \'P\'",f ) 这里是想统计结果列的 ≥50的数据的数量 v = v & " 阳性数量(≥80):" & t.Compute("Sum([结果]>=80)",f) 这里是想统计结果列的 ≥80的数据的数量 v = v & " 阴性数量:" & t.Compute("Sum([判定]=\'N\')",f) 这里是想统计判定列等于字符N的数量 v = v & " 最大值:" & t.Compute("Max(结果)",f) v = v & " 最小值:" & t.Compute("Min(结果)",f) v = v & " 平均值:" & t.Compute("Average(结果)",f) 这里想统计结果列里面数据 排除掉50以下的数据的 其他数据平均值 v = v & " 标准偏差:" & t.Compute("Std(结果)",f) 这里想统计结果列里面数据 排除掉50以下的数据的 其他数据标准偏差 v = v & " 离散度:"
& t.Compute("([标准偏差]/[平均值])",f) 这里想作一个除法运算 用上面统计出的平均值与标准偏差来计算离散度 并且显示为百分数 r("送检单位") = "送检单位:"
& r("送检单位") &
v End If Next |
||||
-- 作者:有点甜 -- 发布时间:2018/11/12 12:14:00 -- 比如
v = v & " 阳性数量(≥50):" & t.Compute("Sum(结果)",f & " and 结果>=50") 这里是想统计结果列的 ≥50的数据的数量 v = v & " 阳性数量(≥80):" & t.Compute("Sum(结果)",f & " and 结果>=80") 这里是想统计结果列的 ≥80的数据的数量
看懂帮助文档 http://www.foxtable.com/webhelp/scr/1647.htm
[此贴子已经被作者于2018/11/12 12:14:16编辑过]
|
||||
-- 作者:动检 -- 发布时间:2018/11/16 11:45:00 -- 老师 还要帮忙你看一下我的代码划黄线的那部分有什么问题 就是统计不出来呀 还有就是如果想在加一行同样的统计行继续跟在后面 怎么写 Dim t As Table = Tables("检测报告") Dim g As Subtotalgroup t.SubtotalGroups.Clear() t.GroupAboveData = False t.TreeVisible = False g = New Subtotalgroup g.Aggregate = AggregateEnum.Sum g.GroupOn = "生长阶段" g.Caption = "{0}" t.SubtotalGroups.Add(g) t.Subtotal()
Dim r As Row For i As Integer =
0 To t.Rows.Count(True) - 1 r = t.Rows(i,True) If r.IsGroup \'如果是分组行 Dim f As String = "生长阶段 = \'" & r("生长阶段") & "\'" Dim v As String = " 检测份数:" & t.Compute("Count(实验室编号)",f) v = v & " 阳性数量(≥0.4):"
& t.Compute("Count(检测项目_蓝耳PRRS_结果)","检测项目_蓝耳PRRS_结果 > =0.4") v = v & " 阳性数量(≥2.5):"
& t.Compute("Count(检测项目_蓝耳PRRS_结果)","检测项目_蓝耳PRRS_结果 > =2.5") v = v & " 阴性数量:" & t.Compute("Count(检测项目_蓝耳PRRS_判定)","检测项目_蓝耳PRRS_判定=\'N\'") v = v & " 最大值:" & t.Compute("Max(检测项目_蓝耳PRRS_结果)",f) v = v & " 最小值:" & t.Compute("Min(检测项目_蓝耳PRRS_结果)",f) v = v & " 阳性平均值:" & t.Compute("Average(检测项目_蓝耳PRRS_结果)","检测项目_蓝耳PRRS_结果
> =0.4") v = v & " 阳性标准偏差:" &
t.Compute("Std(检测项目_蓝耳PRRS_结果)","检测项目_蓝耳PRRS_结果> =0.4") v = v & " 离散度CV%:" &
t.Computer("阳性标准偏差/阳性平均值"),"00.00%") r("生长阶段") = "生长阶段:"
& r("生长阶段") & v End If Next |
||||
-- 作者:有点甜 -- 发布时间:2018/11/16 11:54:00 -- 标准偏差要这样计算
http://www.foxtable.com/webhelp/scr/0545.htm
不会做的话,具体实例发上来测试 |
||||
-- 作者:动检 -- 发布时间:2018/11/19 14:49:00 --
主要问题:平均值,标准偏差与离散度统计不出来 需要增加统计行,比如语文的统计行有及格个数、最大值、最小值、平均值离散度。同样的数学、英语、政治等科目也需要这样的统计行。
|
||||
-- 作者:有点甜 -- 发布时间:2018/11/19 15:25:00 -- Dim t As Table = Tables("表A") Dim r As Row |
||||
-- 作者:动检 -- 发布时间:2018/11/20 11:15:00 -- 感觉老师要被我烦死了.... 但真的非常感谢 有点甜老师的耐心及时的解答 给了我很多帮助上面的代码写了以后确实是可以统计出来了 但是有一个问题 其他的科目就不好直观的看到 所以我在想能不能生成一个临时表 来表示 如图所示 就能直观的看到每一个科目的统计了 如果需要这样做 我的代码需要怎样改动
|
||||
-- 作者:动检 -- 发布时间:2018/11/20 11:23:00 -- 以下是引用动检在2018/11/20 11:15:00的发言:
感觉老师要被我烦死了.... 但真的非常感谢 有点甜老师的耐心及时的解答 给了我很多帮助上面的代码写了以后确实是可以统计出来了 但是有一个问题 其他的科目就不好直观的看到 所以我在想能不能生成一个临时表 来表示 如图所示 就能直观的看到每一个科目的统计了 如果需要这样做 我的代码需要怎样改动
|
||||
-- 作者:动检 -- 发布时间:2018/11/20 11:46:00 --
|
||||
-- 作者:动检 -- 发布时间:2018/11/20 11:46:00 -- 此主题相关图片如下:微信图片_20181120110122.png |