以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求助 多表取组合值问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=84024) |
||||
-- 作者:dade -- 发布时间:2016/4/21 17:27:00 -- 求助 多表取组合值问题 各位专家: 我初学,碰到一问题:某表须从其他三个表中提取不同行列的参数用于计算。 问题1.我的这种计算方式还能简化吗? 2.这种计算需要前面几列的数据支持,这几列数据能否自动从其他表中提取? 这是个组合取值问题,因为每家公司的一个投标价对应了三个基础参数。 我在 DataColChanged 编了些,实在不成功。还得请高手指教几下。
|
||||
-- 作者:大红袍 -- 发布时间:2016/4/21 17:38:00 -- 1、请说明哪个表哪些列要做什么操作,最后得到什么效果;
2、请说明运算的规则。 |
||||
-- 作者:dade -- 发布时间:2016/4/22 8:10:00 -- 就是商务得分表S1的计算及项目编号、单位名称、随机值K1n的自动组合填充。运算公式已在DataColChanged里,谢谢大红袍 |
||||
-- 作者:dade -- 发布时间:2016/4/22 8:15:00 -- 运算要求为: YB=0 S1=0 YB=PJ S1=Sx YB>PJ S1=Sx-Cjk*(YB-PJ)*100/PJ YB<PJ S1=Sx-Djk*(PJ-YB)*100/PJ |
||||
-- 作者:dade -- 发布时间:2016/4/22 8:26:00 -- ![]() ![]() 希望得到的结果 |
||||
-- 作者:大红袍 -- 发布时间:2016/4/22 9:44:00 -- Dim dt As DataTable = DataTables("SWDF") Dim dt1 As DataTable = DataTables("Zb") Dim dt2 As DataTable = DataTables("DWBJ") Dim dt3 As DataTable = DataTables("PF1") dt.DataRows.Clear For Each dr As DataRow In dt2.Select("XMBH Is not null") Dim fdr1 As DataRow = dt1.Find("XMBH = \'" & dr("XMBH") & "\'") If fdr1 IsNot Nothing Then Dim YB As Double = dr("YB") For Each cdr As DataRow In dt3.Select("XMBH = \'" & dr("XMBH") & "\'") Dim ndr As DataRow = dt.AddNew ndr("XMBH") = dr("XMBH") ndr("dw") = dr("dw") ndr("K1n") = cdr("k1n") If yb = 0 Then ndr("S1") = 0 ElseIf dr("YB") = cdr("PJ") Then ndr("S1") = fdr1("Sx") ElseIf dr("YB") > cdr("PJ") Then ndr("S1") = fdr1("Sx")-fdr1("Cjk")*(YB-cdr("PJ"))*100/cdr("PJ") ElseIf dr("YB") < cdr("PJ") Then ndr("S1") = fdr1("Sx")-fdr1("Djk")*(cdr("PJ")-YB)*100/cdr("PJ") End If Next End If Next |
||||
-- 作者:dade -- 发布时间:2016/4/22 11:15:00 -- 大红袍先生:将您的代码替代后,出现闪屏2分钟,无结果。 |
||||
-- 作者:大红袍 -- 发布时间:2016/4/22 11:16:00 -- 单独做一个按钮运行6楼的代码,我测试没问题 |
||||
-- 作者:dade -- 发布时间:2016/4/22 13:05:00 -- 是的,做按钮运行,没问题。谢谢您 |
||||
-- 作者:dade -- 发布时间:2016/4/22 16:07:00 -- 奇怪,该代码在命令窗口执行也行的。但为什么在表事件里就不能运行呢? |