专家老师好,我在折叠表中关于折叠行数据参与运算中遇到问题,请老师看看代码问题出在那儿:
问题
:折叠表隐框幕墙单价分析表,明框幕墙单价分析表中(其表的结构形式固定,计算方式固定)
以下面的隐框幕墙单价分析表为例进行问题说明:(如下表) 通过代码进行了相关运算
但是编译代码也没报错,就是程序过程中报错,不显示运行结果 没有达到预定的结果
最终目的:能根据预先设定代码 在合价列中进行相关运算,得的相应的数据值 后附事件代码,请专家老师调一下代码,以便实现所需的目的 见测试文件
隐框幕墙单价分析表
|
|
|
工程名称
|
|
|
|
|
|
计量单位: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.01(0.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.01(0.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
最终目的:能根据上面的代码 在不同行的合价单元格得出正确的数值
请老师调写一下上面代码,以实现所需功能 详测试文件
谢谢老师,祝老师幸福安康 ! 万事如意 ! 刘效功敬祝