以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  求动态百分制生成代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=178010)

--  作者:min-fox
--  发布时间:2022/6/14 21:39:00
--  求动态百分制生成代码
每项指标得分为1分,共120指标,满分120分,最后总得分换算成100分的公式是=总得分*(sum("得分")*100/120,考虑到用户指标分类会动态增减,把分母120动态化改成如下代码生成 AA
Dim AA As String = e.Table.DataTable.Compute("COUNT(指标分类)", "单位名称=\'" & e.Table.Current ("单位名称") & "\'")
在CurrentChanged事件的代码



Dim AA As String = e.Table.DataTable.Compute("COUNT(指标分类)", "单位名称=\'" & e.Table.Current ("单位名称") & "\'")
If e.Table.Current IsNot Nothing Then
    If Forms("窗口1").Opened Then  
         Forms("窗口1").Controls("Label1").text = e.Table.Current ("单位名称") & "评审得分:" & e.Table.DataTable.Compute("sum(得分)*100/AA", "单位名称=\'" & e.Table.Current ("单位名称") & "\'")
    End If
End If

结果在“窗口1”中点击Table1,报错“找不到AA列”
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目45.table



--  作者:有点蓝
--  发布时间:2022/6/14 21:50:00
--  
多看几遍:http://www.foxtable.com/webhelp/topics/1284.htm

Forms("窗口1").Controls("Label1").text = e.Table.Current ("单位名称") & "评审得分:" & e.Table.DataTable.Compute("sum(得分)*100/" & AA, "单位名称=\'" & e.Table.Current ("单位名称") & "\'")

--  作者:min-fox
--  发布时间:2022/6/14 22:44:00
--  
这样得出的值不对啊
--  作者:有点蓝
--  发布时间:2022/6/14 22:57:00
--  
Forms("窗口1").Controls("Label1").text = e.Table.Current ("单位名称") & "评审得分:" & (e.Table.DataTable.Compute("sum(得分)", "单位名称=\'" & e.Table.Current ("单位名称") & "\'") * 100 / AA)
--  作者:min-fox
--  发布时间:2022/6/14 23:11:00
--  
值还是不对,把AA换成具体数值,比如120,就可算出来
--  作者:有点蓝
--  发布时间:2022/6/14 23:17:00
--  
说明这个单位下的指标没有这么多

Dim AA As String = e.Table.DataTable.Compute("COUNT(指标分类)", "单位名称=\'" & e.Table.Current ("单位名称") & "\'")
msgbox(AA)

--  作者:min-fox
--  发布时间:2022/6/14 23:23:00
--  
我测过了,把实例发给您看看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目45.table


--  作者:min-fox
--  发布时间:2022/6/14 23:31:00
--  
搞清楚了,知道问题出差哪里了