以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于折叠表合计行参与运算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=193542)

--  作者:刘效功天津
--  发布时间:2024/9/24 14:35:00
--  关于折叠表合计行参与运算
专家老师好,昨天有事出去了,抱歉,请老师看看怎么实现所需要的功能
关于折叠表合价行的混合运算

专家老师好,我在折叠表中关于折叠行数据参与运算中遇到问题,请老师看看代码问题出在那儿:

 

问题  折叠表隐框幕墙单价分析表,明框幕墙单价分析表中(其表的结构形式固定,计算方式固定) 

以下面的隐框幕墙单价分析表为例进行问题说明:(如下表) 通过代码进行了相关运算

但是编译代码也没报错,就是程序过程中报错,不显示运行结果 没有达到预定的结果

 

    最终目的:能根据预先设定代码 在合价列中进行相关运算得的相应的数据值   后附事件代码,请专家老师调一下代码,以便实现所需的目的  见测试文件                                                          

 

隐框幕墙单价分析表

工程名称

计量单位:1平方米

序号

科目编码

项目构成           (折叠列)

比率系数

单位

用量

单价

合价

备注

折叠行数据   参与    运算说明

直接费

直接费

 

总计

1293.23

++

 变量V1  折叠行  该行的动态数据1293参与后面的运算

I

直接费

材料费

 

合计

1149.5

 

 变量V0  折叠行  该行的动态数据1149.5参与后面的运算

1

材料费

玻璃

 

平米

7

115

805

5mm+12A+5mm中空玻璃

 

2

材料费

铝型材

 

公斤

3

26

78

氟碳喷涂

3

材料费

埋板

 

5

28

140

300*200*8表面热镀锌处理

4

材料费

连接件

 

公斤

3

5.5

16.5

10#槽钢   表面热镀锌处理

5

材料费

陶瓷地砖

 

2

55

110

800*800

直接费

人工费

 

合计

115

 

 

1

人工费

制作费

 

平米

1

60

60

 

 

2

人工费

安装费

 

平米

1

50

50

 

3

人工费

其它人工费

 

平米

1

5

5

 

直接费

机械费

 

合计

28.73

 

1

机械费

小型机具设备

0.01

平米

1

 

11.49

I×1%

该区域合价需要变量V0  参与计算                                       该合价值运算: V0 *比率系数 = 1149.5*0.010.015

2

机械费

大型机械设备

0.015

平米

1

 

17.24

Ⅰ×1.5%

间接费

间接费

 

合计

51.72

 

变量V2  折叠行  该行的动态数据51.72参与后面的运算 

1

间接费

现场经费

0.01

平米

1

 

12.93

()*1%

该区域合价需要变量V1 参与计算                                         该合价值运算: V1 *比率系数 = 1293.23*0.010.03

2

间接费

企业管理费

0.03

平米

1

 

38.79

()*3%

利润

利润

0.05

合计 

67.25

(+)*5%

变量V3 该行合价需要变量V1   变量V2参与计算                             V3= (V1+ V2) *比率系数=1293.23 + 51.72*0.05=67.25

税金

税金

0.11

合计

155.35

(++)*11%

变量V4 该行合价需要变量V1   变量V2  变量V3参与计算                             V4=(V1+ V2+ V3) *比率系数=1293.23 + 51.72+67.24* 0.11=155.35

平米单价

平米单价

 

1567.53

(+++)

该行合价需要变量V1   变量V2  变量V3  变量V4参与计算                               该合价值运算: V1+ V2+ V3+ V4=1293.23 + 51.72+67.24+155.35=1567.53

 

 

为此我在事件 DataColChangde事件中写入如下代码后,请老师看看问题出在哪儿,请老师赐教

Select Case e.DataCol.Name

    Case "用量", "单价"

        If e.DataRow.IsNull("用量") Or e.DataRow.IsNull("单价") Then

            e.DataRow("合价") = Nothing

        Else

            e.DataRow("合价") = e.DataRow("用量") * e.DataRow("单价")

        End If

       

    Case "项目构成""科目编码""比率系数"

        Dim V0 As Double

        Dim V1 As Double

        Dim V2 As Double

        Dim V3 As Double

        Dim V4 As Double

       

        Dim dr As DataRow

        \'定义变量V1

        If dr ("科目编码") = dr ("项目构成") = "直接费" Then

            V1 = dr ("合价")

        End If

       

        \'定义变量V0

        If dr ("科目编码") = "直接费" And dr("项目构成") = "材料费" Then

            V0 = dr ("合价")

        End If

       

        \'定义变量V2

        If dr ("科目编码") = dr("项目构成") <> "间接费" Then

            V2 = dr ("合价")

        End If

       

        \'定义机械费运算代码

        If dr ("科目编码") = "机械费" Then

            dr ("合价") = V0 * dr ("比率系数")

        End If

       

        \'定义间接费运算代码

        If dr ("科目编码") = "间接费" And dr("项目构成") <> "间接费" Then

            dr ("合价") = V1 * dr ("比率系数")

        End If

      

        \'定义变量V3  及利润运算代码     

        If dr ("科目编码") = dr ("项目构成") = "利润" Then     

            V3 = dr ("合价") = ( V1 + V2) * dr ("比率系数")

        End If

      

        \'定义变量V4  及税金运算代码     

        If dr ("科目编码") = dr ("项目构成") = "税金" Then

            V4 = dr ("合价") = ( V1 + V2 + V3) * dr ("比率系数")

        End If

       

        \'平米单价运算代码            

        If dr ("科目编码") = dr ("项目构成") = "平米造价" Then

            dr("合价") = V1 + V2 + V3 + V4

        End If

End Select

最终目的:能根据上面的代码 在不同行的合价单元格得出正确的数值                    

请老师调写一下上面代码,以实现所需功能    详测试文件

谢谢老师,祝老师幸福安康 !  万事如意 !   刘效功敬祝  



--  作者:有点蓝
--  发布时间:2024/9/24 15:22:00
--  
请不要发重复的问题:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=193528&page=2

有答案会回复的,没有回复要么我们也不会,要么比较麻烦需要时间

--  作者:刘效功天津
--  发布时间:2024/9/24 15:24:00
--  
谢谢老师,等您回复