以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184821)
|
-- 作者:cnsjroom
-- 发布时间:2023/1/6 11:56:00
-- 传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确
传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确
想实现:从干部平时考核民主测评表中获取数据并汇总
如果操作人员所属部门是委领导,那么就将该领导对应测评对象给出的考评等次统计到A开头的 好 较好 一般 较差里面
如果操作人员所属部门不是委领导,那么就将该操作人员对应测评对象给出的考评等次统计到B开头的 好 较好 一般 较差里面
然后将A开头的 好 较好 一般 较差与B开头的 好 较好 一般 较差 数值统计到对应的 好 较好 一般 较差等次里面汇总
最后根据算法计算总分
当前代码运行出现原本只有50个人员参加考核 96个操作人员 结果生成的数据达到4000多条
怎么确保数据只有50条呢?也就是有多少个人员参加考核就生成多少条数据,然后对应的将好 较好 一般 较差统计在这个人员名下
当前代码如下:
Dim cmd As New S QLCommand cmd.Conne ctio nName = "主数据源" Dim dt,dt1,dt12 As DataTable
cmd.CommandText = "delet e {干部平时考核民主测评汇总表}" \'运行之前先清空 干部平时考核民主测评汇总表 cmd.ExecuteReader cmd.CommandText = "SEL ECT * From {干部平时考核民主测评表}" dt = cmd.ExecuteReader() cmd.CommandText = "SEL ECT * From {干部平时考核民主测评汇总表}" dt1 = cmd.ExecuteReader(True) cmd.CommandText = "SEL ECT * From {干部台账} where 所属部门=\'委领导\'" dt12 = cmd.ExecuteReader()
Dim Products As List(Of String) Products = dt.GetValues("测评对象","测评对象<>\'\'") \'从干部平时考核民主测评表中获取测评对象 不重复值
Dim Products12 As List(Of String) Products12 = dt12.GetValues("姓名","姓名<>\'\'") \'从干部台账中获取所属部门属于委领导的姓名 不重复值
Dim cnt,cnt1,cnt2,cnt3,cnt4,cnt5 As Integer Dim cnt11,cnt111,cnt112,cnt113,cnt114,cnt115 As Integer
For Each Product12 As String In Products12 \'遍历所获取得到的委领导名字,然后去查找所有测评对象中 操作人员是委领导名字的数据 For Each Product As String In Products \'遍历所有测评对象值, Output.Show(Product) Dim Products1 As List(Of String()) Products1 = dt.GetValues("测评对象|年度|季度|测评对象身份|职务职级|编制类型|操作人员|考核类型"," 测评对象=\'"& Product &"\' ") \'and操作人员=\'"& Product12 &"\' For Each Product1 As String() In Products1 Output.Show(Product1(0)&Product1(1)&Product1(2)) Dim dr As DataRow dr =dt1.AddNew dr("guid")=System.Guid.NewGuid().ToString() dr("测评对象")=Product1(0) dr("年度")=Product1(1) dr("季度")=Product1(2) dr("测评对象身份")=Product1(3) dr("职务职级")=Product1(4) dr("编制类型")=Product1(5) dr("考核类型")=Product1(7) dr("是否完成")="已完成" If Product1(6) = Product12 Then \'如果操作人员等于委领导人员 cnt = dt.Compute("Count([好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") \'如果操作人员属于委领导,则将对应的好等次的数据 计算为A好里面的 If cnt>0 Then dr("A好")=cnt Else dr("A好")=Nothing End If cnt1 = dt.Compute("Count([较好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") If cnt1>0 Then dr("A较好")=cnt1 Else dr("A较好")=Nothing End If cnt2 = dt.Compute("Count([一般])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") If cnt2>0 Then dr("A一般")=cnt2 Else dr("A一般")=Nothing End If cnt3 = dt.Compute("Count([较差])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") If cnt3>0 Then dr("A较差")=cnt3 Else dr("A较差")=Nothing End If Else \'如果操作人员不等于委领导人员 cnt11 = dt.Compute("Count([好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") \'如果操作人员不属于委领导,则将对应的好等次的数据 计算为B好里面的 If cnt11>0 Then dr("B好")=cnt11 Else dr("B好")=Nothing End If cnt111 = dt.Compute("Count([较好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") If cnt111>0 Then dr("B较好")=cnt111 Else dr("B较好")=Nothing End If cnt112 = dt.Compute("Count([一般])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") If cnt112>0 Then dr("B一般")=cnt112 Else dr("B一般")=Nothing End If cnt113 = dt.Compute("Count([较差])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") If cnt113>0 Then dr("B较差")=cnt113 Else dr("B较差")=Nothing End If End If \'计算好 较好 一般 较差 总数据 dr("好")=dr("A好")+dr("B好") dr("较好")=dr("A较好")+dr("B较好") dr("一般")=dr("A一般")+dr("B一般") dr("较差")=dr("A较差")+dr("B较差") \'计算总分 分别按照好1?较好0.8?一般0.6?弃权0.3的权重对应票数,计算班子成员投票总数+一般干部职工投票总数之和除2来获取当前考核总分,并以总分进行从高到低顺序排名,获取考核结果. \'If cnt3 >1 Then \'如果存在较差数据,则总分直接为零 \'dr("备注")=0 \'Else dr("总分")= (((cnt*1+cnt1*0.8+cnt2*0.6+cnt3*0.3)/cnt4*100)+((cnt11*1+cnt111*0.8+cnt112*0.6+cnt113*0.3)/cnt114*100))/2 \'End If dr.save Next Next Next
[此贴子已经被作者于2023/1/6 12:01:44编辑过]
|
-- 作者:有点蓝
-- 发布时间:2023/1/6 12:05:00
--
调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错
|
-- 作者:cnsjroom
-- 发布时间:2023/1/6 13:22:00
-- 回复:(有点蓝)调试技巧:http://www.foxtable.com/...
已解决:传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确
想实现:从干部平时考核民主测评表中获取数据并汇总
如果操作人员所属部门是委领导,那么就将该领导对应测评对象给出的考评等次统计到A开头的 好 较好 一般 较差里面
如果操作人员所属部门不是委领导,那么就将该操作人员对应测评对象给出的考评等次统计到B开头的 好 较好 一般 较差里面
然后将A开头的 好 较好 一般 较差与B开头的 好 较好 一般 较差 数值统计到对应的 好 较好 一般 较差等次里面汇总
最后根据算法计算总分
【当前代码运行耗时较长,且存在假死现象】
当前代码运行出现原本只有50个人员参加考核 96个操作人员 结果生成的数据达到4000多条
怎么确保数据只有50条呢?也就是有多少个人员参加考核就生成多少条数据,然后对应的将好 较好 一般 较差统计在这个人员名下
当前代码如下:
Dim cmd As New SQ LC ommand cmd.Conn ecti onN ame = "主数据源" Dim dt,dt1,dt12 As DataTable
cmd.CommandText = "dele te {干部平时考核民主测评汇总表}" \'运行之前先清空 干部平时考核民主测评汇总表 cmd.ExecuteReader cmd.CommandText = "SEL ECT * From {干部平时考核民主测评表}" dt = cmd.ExecuteReader() cmd.CommandText = "SEL ECT * From {干部平时考核民主测评汇总表}" dt1 = cmd.ExecuteReader(True) cmd.CommandText = "SEL ECT * From {干部台账} where 所属部门=\'委领导\'" dt12 = cmd.ExecuteReader()
Dim Products As List(Of String) Products = dt.GetValues("测评对象","测评对象<>\'\'") \'从干部平时考核民主测评表中获取测评对象 不重复值
Dim Products12 As List(Of String) Products12 = dt12.GetValues("姓名","姓名<>\'\'") \'从干部台账中获取所属部门属于委领导的姓名 不重复值
Dim cnt,cnt1,cnt2,cnt3,cnt4,cnt5 As Integer Dim cnt11,cnt111,cnt112,cnt113,cnt114,cnt115 As Integer
For Each Product12 As String In Products12 \'遍历所获取得到的委领导名字,然后去查找所有测评对象中 操作人员是委领导名字的数据 For Each Product As String In Products \'遍历所有测评对象值, Output.Show(Product) Dim Products1 As List(Of String()) Products1 = dt.GetValues("测评对象|年度|季度|测评对象身份|职务职级|编制类型|操作人员|考核类型") \'," 测评对象=\'"& Product &"\' and操作人员=\'"& Product12 &"\'") For Each Product1 As String() In Products1 Output.Show(Product1(0)&Product1(1)&Product1(2)) Dim dr As DataRow dr =dt1.AddNew dr("guid")=System.Guid.NewGuid().ToString() dr("测评对象")=Product1(0) dr("年度")=Product1(1) dr("季度")=Product1(2) dr("测评对象身份")=Product1(3) dr("职务职级")=Product1(4) dr("编制类型")=Product1(5) dr("考核类型")=Product1(7) dr("是否完成")="已完成" If Product1(6) = Product12 Then \'如果操作人员等于委领导人员 cnt = dt.Compute("Count([好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") \'如果操作人员属于委领导,则将对应的好等次的数据 计算为A好里面的 If cnt>0 Then dr("A好")=cnt Else dr("A好")=Nothing End If cnt1 = dt.Compute("Count([较好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") If cnt1>0 Then dr("A较好")=cnt1 Else dr("A较好")=Nothing End If cnt2 = dt.Compute("Count([一般])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") If cnt2>0 Then dr("A一般")=cnt2 Else dr("A一般")=Nothing End If cnt3 = dt.Compute("Count([较差])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") If cnt3>0 Then dr("A较差")=cnt3 Else dr("A较差")=Nothing End If Else \'如果操作人员不等于委领导人员 cnt11 = dt.Compute("Count([好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") \'如果操作人员不属于委领导,则将对应的好等次的数据 计算为B好里面的 If cnt11>0 Then dr("B好")=cnt11 Else dr("B好")=Nothing End If cnt111 = dt.Compute("Count([较好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") If cnt111>0 Then dr("B较好")=cnt111 Else dr("B较好")=Nothing End If cnt112 = dt.Compute("Count([一般])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") If cnt112>0 Then dr("B一般")=cnt112 Else dr("B一般")=Nothing End If cnt113 = dt.Compute("Count([较差])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") If cnt113>0 Then dr("B较差")=cnt113 Else dr("B较差")=Nothing End If End If \' \'计算好 较好 一般 较差 总数据 dr("好")=dr("A好")+dr("B好") dr("较好")=dr("A较好")+dr("B较好") dr("一般")=dr("A一般")+dr("B一般") dr("较差")=dr("A较差")+dr("B较差") cnt4=9 cnt114=87 \'计算总分 分别按照好1?较好0.8?一般0.6?弃权0.3的权重对应piao数,计算班子成员投piao总数+一般干部职工投piao总数之和除2来获取当前考核总分,并以总分进行从高到低顺序排名,获取考核结果. \'If cnt3 >1 Then \'如果存在较差数据,则总分直接为零 \'dr("备注")=0 \'Else Dim i1 As Integer= ((dr("A好")*1)+(dr("A较好")*0.8)+(dr("A一般")*0.6)+(cnt3*0.3))/(cnt4*100) Dim i2 As Integer= ((dr("B好")*1)+(dr("B较好")*0.8)+(dr("B一般")*0.6)+(cnt113*0.3))/(cnt114*100) \'dr("总分")= (i1+i2)/2 dr("总分")=((((dr("A好")*1)+(dr("A较好")*0.8)+(dr("A一般")*0.6)+(cnt3*0.3))/(cnt4*100))+(((dr("B好")*1)+(dr("B较好")*0.8)+(dr("B一般")*0.6)+(cnt113*0.3))/(cnt114*100)))/2 \'End If dr.save Next Next Next
[此贴子已经被作者于2023/1/6 13:30:19编辑过]
|
-- 作者:有点蓝
-- 发布时间:2023/1/6 13:33:00
--
这50个人员都是哪个表哪个列的数据,就遍历这50个人就行了,看上面代码嵌套了n多层的for循环代码
|
-- 作者:cnsjroom
-- 发布时间:2023/1/6 13:58:00
-- 回复:(有点蓝)这50个人员都是哪个表哪个列的数据,...
当前代码如下: 当前运行后会生成50*96=480条记录 麻烦老师指导下 哪个循环弄重复了
Dim cmd As New SQL Co mmand cmd.Connect ion Name = "主数据源" Dim dt,dt1,dt12 As DataTable
cmd.CommandText = "del ete {干部平时考核民主测评汇总表}" \'运行之前先清空 干部平时考核民主测评汇总表 cmd.ExecuteReader cmd.CommandText = "SELE CT * From {干部平时考核民主测评表}" ‘50个人员名单是从这个表中获取的不重复姓名值’ dt = cmd.ExecuteReader() cmd.CommandText = "SELE CT * From {干部平时考核民主测评汇总表}" 然后要将50个人员名单生成一个汇总表,每个人员对应的有96个操作人员,其中有9个是委领导 dt1 = cmd.ExecuteReader(True) cmd.CommandText = "SELE CT * From {干部台账} where 所属部门=\'委领导\'" ‘这里获取9个委领导的不重复值’ dt12 = cmd.ExecuteReader()
Dim Products As List(Of String) Products = dt.GetValues("测评对象") \'从干部平时考核民主测评表中获取测评对象 不重复值
Dim Products12 As List(Of String) Products12 = dt12.GetValues("姓名","姓名<>\'\'") \'从干部台账中获取所属部门属于委领导的姓名 不重复值
Dim cnt,cnt1,cnt2,cnt3,cnt4,cnt5 As Integer Dim cnt11,cnt111,cnt112,cnt113,cnt114,cnt115 As Integer
For Each Product12 As String In Products12 \'遍历所获取得到的委领导名字,然后去查找所有测评对象中 操作人员是委领导名字的数据 For Each Product As String In Products \'遍历所有测评对象值, Output.Show(Product) Dim Products1 As List(Of String()) Products1 = dt.GetValues("测评对象|年度|季度|测评对象身份|职务职级|编制类型|操作人员|考核类型"," 测评对象=\'"& Product &"\' and 操作人员=\'"& Product12 &"\'") For Each Product1 As String() In Products1 Output.Show(Product1(0)&Product1(1)&Product1(2)) Dim dr As DataRow dr =dt1.AddNew dr("guid")=System.Guid.NewGuid().ToString() dr("测评对象")=Product1(0) dr("年度")=Product1(1) dr("季度")=Product1(2) dr("测评对象身份")=Product1(3) dr("职务职级")=Product1(4) dr("编制类型")=Product1(5) dr("考核类型")=Product1(7) dr("是否完成")="已完成" If Product1(6) = Product12 Then \'如果操作人员等于委领导人员 cnt = dt.Compute("Count([好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") \'如果操作人员属于委领导,则将对应的好等次的数据 计算为A好里面的 If cnt>0 Then dr("A好")=cnt Else dr("A好")=Nothing End If cnt1 = dt.Compute("Count([较好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") If cnt1>0 Then dr("A较好")=cnt1 Else dr("A较好")=Nothing End If cnt2 = dt.Compute("Count([一般])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") If cnt2>0 Then dr("A一般")=cnt2 Else dr("A一般")=Nothing End If cnt3 = dt.Compute("Count([较差])", "测评对象 = \'"& Product1(0) &"\' and 操作人员=\'"& Product12 &"\'") If cnt3>0 Then dr("A较差")=cnt3 Else dr("A较差")=Nothing End If Else \'如果操作人员不等于委领导人员 cnt11 = dt.Compute("Count([好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") \'如果操作人员不属于委领导,则将对应的好等次的数据 计算为B好里面的 If cnt11>0 Then dr("B好")=cnt11 Else dr("B好")=Nothing End If cnt111 = dt.Compute("Count([较好])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") If cnt111>0 Then dr("B较好")=cnt111 Else dr("B较好")=Nothing End If cnt112 = dt.Compute("Count([一般])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") If cnt112>0 Then dr("B一般")=cnt112 Else dr("B一般")=Nothing End If cnt113 = dt.Compute("Count([较差])", "测评对象 = \'"& Product1(0) &"\' and 操作人员<>\'"& Product12 &"\'") If cnt113>0 Then dr("B较差")=cnt113 Else dr("B较差")=Nothing End If End If \' \'计算好 较好 一般 较差 总数据 dr("好")=dr("A好")+dr("B好") dr("较好")=dr("A较好")+dr("B较好") dr("一般")=dr("A一般")+dr("B一般") dr("较差")=dr("A较差")+dr("B较差") cnt4=9 cnt114=87 \'计算总分 分别按照好1?较好0.8?一般0.6?弃权0.3的权重对应piao数,计算班子成员投piao总数+一般干部职工投piao总数之和除2来获取当前考核总分,并以总分进行从高到低顺序排名,获取考核结果. \'If cnt3 >1 Then \'如果存在较差数据,则总分直接为零 \'dr("备注")=0 \'Else Dim i1 As Integer= ((dr("A好")*1)+(dr("A较好")*0.8)+(dr("A一般")*0.6)+(cnt3*0.3))/(cnt4*100) Dim i2 As Integer= ((dr("B好")*1)+(dr("B较好")*0.8)+(dr("B一般")*0.6)+(cnt113*0.3))/(cnt114*100) \'dr("总分")= (i1+i2)/2 dr("总分")=((((dr("A好")*1)+(dr("A较好")*0.8)+(dr("A一般")*0.6)+(cnt3*0.3))/(cnt4*100))+(((dr("B好")*1)+(dr("B较好")*0.8)+(dr("B一般")*0.6)+(cnt113*0.3))/(cnt114*100)))/2 \'End If \'dr.save Next Next Next dt1.Save
|
-- 作者:有点蓝
-- 发布时间:2023/1/6 14:09:00
--
没看懂这个业务逻辑。既然只有50个,就遍历这50个,遍历96个是干嘛用的
|
-- 作者:cnsjroom
-- 发布时间:2023/1/6 14:50:00
-- 回复:(有点蓝)没看懂这个业务逻辑。既然只有50个,...
经过调整 现在只生成52条数据了 但是A好 A较好 A一般 A较差不能写值到数据表 代码中红色部分 输出的结果有值 但是就不见写入对应的A好 A较好 A一般 A较差列值,相应的写入了B好 B较好 B一般 B较差列值中, 总数 好 较好 一般 较差 数值又对的 怎么解决A好 A较好 A一般 A较差没有写入值呢?
如果注释掉蓝色部分 A好 A较好 A一般 A较差 B好 B较好 B一般 B较差 的及 好 较好 一般 较差 全部没有数据
当前代码如下:
Dim cmd As New SQ LC ommand cmd.Connect ion Name = "主数据源" Dim dt,dt1,dt12 As DataTable
cmd.CommandText = "dele te {干部平时考核民主测评汇总表}" \'运行之前先清空 干部平时考核民主测评汇总表 cmd.ExecuteReader cmd.CommandText = "SEL ECT * From {干部平时考核民主测评表}" dt = cmd.ExecuteReader() cmd.CommandText = "SEL ECT * From {干部平时考核民主测评汇总表}" dt1 = cmd.ExecuteReader(True) cmd.CommandText = "SEL ECT * From {干部台账} where 所属部门=\'委领导\'" dt12 = cmd.ExecuteReader()
Dim Products As List(Of String) Products = dt.GetValues("测评对象") \'从干部平时考核民主测评表中获取测评对象 不重复值
Dim Products12 As List(Of String) Products12 = dt12.GetValues("姓名","姓名<>\'\'") \'从干部台账中获取所属部门属于委领导的姓名 不重复值
Dim cnt,cnt1,cnt2,cnt3,cnt4,cnt5 As Integer Dim cnt11,cnt111,cnt112,cnt113,cnt114,cnt115 As Integer
For Each Product As String In Products \'遍历所有测评对象值, Output.Show(Product) Dim dr As DataRow dr =dt1.AddNew dr("guid")=System.Guid.NewGuid().ToString() dr("测评对象")=Product For Each Product12 As String In Products12 \'遍历所获取得到的委领导名字,然后去查找所有测评对象中 操作人员是委领导名字的数据 dr("是否完成")="已完成"
cnt = dt.Compute("Count([好])", "测评对象 = \'"& Product &"\' and 操作人员=\'"& Product12 &"\'") \'如果操作人员属于委领导,则将对应的好等次的数据 计算为A好里面的 If cnt>0 Then dr("A好")=cnt output.show("A好" & cnt) output.show(dr("A好")) Else dr("A好")=Nothing End If cnt1 = dt.Compute("Count([较好])", "测评对象 = \'"& Product &"\' and 操作人员=\'"& Product12 &"\'") If cnt1>0 Then dr("A较好")=cnt1 output.show("A较好" & cnt1) Else dr("A较好")=Nothing End If cnt2 = dt.Compute("Count([一般])", "测评对象 = \'"& Product &"\' and 操作人员=\'"& Product12 &"\'") If cnt2>0 Then dr("A一般")=cnt2 Else dr("A一般")=Nothing End If cnt3 = dt.Compute("Count([较差])", "测评对象 = \'"& Product &"\' and 操作人员=\'"& Product12 &"\'") If cnt3>0 Then dr("A较差")=cnt3 Else dr("A较差")=Nothing End If \'Else \'如果操作人员不等于委领导人员 cnt11 = dt.Compute("Count([好])", "测评对象 = \'"& Product &"\' and 操作人员<>\'"& Product12 &"\'") \'如果操作人员不属于委领导,则将对应的好等次的数据 计算为B好里面的 If cnt11>0 Then dr("B好")=cnt11 Else dr("B好")=Nothing End If cnt111 = dt.Compute("Count([较好])", "测评对象 = \'"& Product &"\' and 操作人员<>\'"& Product12 &"\'") If cnt111>0 Then dr("B较好")=cnt111 Else dr("B较好")=Nothing End If cnt112 = dt.Compute("Count([一般])", "测评对象 = \'"& Product &"\' and 操作人员<>\'"& Product12 &"\'") If cnt112>0 Then dr("B一般")=cnt112 Else dr("B一般")=Nothing End If cnt113 = dt.Compute("Count([较差])", "测评对象 = \'"& Product &"\' and 操作人员<>\'"& Product12 &"\'") If cnt113>0 Then dr("B较差")=cnt113 Else dr("B较差")=Nothing End If
\'计算好 较好 一般 较差 总数据 dr("好")=dr("A好")+dr("B好") dr("较好")=dr("A较好")+dr("B较好") dr("一般")=dr("A一般")+dr("B一般") dr("较差")=dr("A较差")+dr("B较差") cnt4=9 cnt114=87 \'计算总分 分别按照好1?较好0.8?一般0.6?弃权0.3的权重对应piao数,计算班子成员投piao总数+一般干部职工投piao总数之和除2来获取当前考核总分,并以总分进行从高到低顺序排名,获取考核结果. Dim i1 As Integer= (((dr("A好")*1)+(dr("A较好")*0.8)+(dr("A一般")*0.6)+(cnt3*0.3))/cnt4)*100 Dim i2 As Integer= (((dr("B好")*1)+(dr("B较好")*0.8)+(dr("B一般")*0.6)+(cnt113*0.3))/cnt114)*100 dr("总分")= (i1+i2)/2 dr.save \'Next Next Next
[此贴子已经被作者于2023/1/6 14:55:13编辑过]
|
-- 作者:有点蓝
-- 发布时间:2023/1/6 14:55:00
--
说明没有符号条件的数据msgbox("测评对象 = \'"& Product &"\' and 操作人员=\'"& Product12 &"\'") cnt = dt.Compute("Count([好])", "测评对象 = \'"& Product &"\' and 操作人员=\'"& Product12 &"\'") \'如果操作人员属于委领导,则将对应的好等次的数据 计算为A好里面的 msgbox(cnt) If cnt>0 Then dr("A好")=cnt output.show("A好" & cnt) output.show(dr("A好")) Else dr("A好")=Nothing End If
|
-- 作者:cnsjroom
-- 发布时间:2023/1/6 15:05:00
-- 回复:(有点蓝)说明没有符号条件的数据msgbox("测评...
输出时有值的呢 就是不写表……
此主题相关图片如下:111.png
|
-- 作者:有点蓝
-- 发布时间:2023/1/6 15:08:00
--
应该还是遍历的问题。不管Products12有多少个,其实只有最后有一个有效,因为写的都是同一个单元格For Each Product12 As String In Products12
|