Select Case e.DataCol.name
Case "选择树种","实测胸径","实测树高"
If e.DataRow.IsNull("选择树种") = False AndAlso e.DataRow.IsNull("实测胸径") = False AndAlso e.DataRow.IsNull("实测树高") = False Then
Select e.DataRow("选择树种")
Case "马尾松"
Dim fdr As DataRow = DataTables("形高值").find("胸径 = '" & e.DataRow("实测胸径") & "' and 树高 = '" & e.DataRow("实测树高") & "'")
If fdr IsNot Nothing Then
e.DataRow("单株材积") = fdr("材积")
e.DataRow("形高值") = fdr("形高")
End If
Case "杉木"
e.DataRow("单株材积") = 0.000058777042 * e.DataRow("实测胸径") ^ 1.9699831 * e.DataRow("实测树高") ^ 0.89646157
e.DataRow("形高值") =12732.39545/e.DataRow("实测胸径")^2*e.DataRow("单株材积")
Case "阔叶树"
e.DataRow("单株材积") = 0.000050479055* e.DataRow("实测胸径") ^1.9085054* e.DataRow("实测树高") ^0.99076507
e.DataRow("形高值") =12732.39545/e.DataRow("实测胸径")^2*e.DataRow("单株材积")
Case "国外松"
e.DataRow("单株材积") = 0.000086791543* e.DataRow("实测胸径") ^(1.6638000575+0.0094299757*( e.DataRow("实测胸径") +10* e.DataRow("实测树高") ))* e.DataRow("实测树高")^(0.9693404868-0.0292030826*( e.DataRow("实测胸径") +2.5* e.DataRow("实测树高") ))
e.DataRow("形高值") =12732.39545/e.DataRow("实测胸径")^2*e.DataRow("单株材积")
End Select
End If
End Select
If e.DataRow.IsNull("选择树种") = True OrElse e.DataRow.IsNull("实测胸径") = True OrElse e.DataRow.IsNull("实测树高") = True Then
e.DataRow("形高值") =Nothing
e.DataRow("胸高断面积") =Nothing
e.DataRow("单株材积") =Nothing
e.DataRow("公顷蓄积量") =Nothing
e.DataRow("公顷株数") =Nothing
Else
e.DataRow("胸高断面积")=3.14159265358/40000*e.DataRow("实测胸径")^2
e.DataRow("公顷蓄积量")=e.DataRow("形高值")*e.DataRow("实测断面积")
e.DataRow("公顷株数")=e.DataRow("公顷蓄积量")/e.DataRow("单株材积")
End If