Foxtable(狐表)用户栏目专家坐堂 → [求助]优化代码


  共有3872人关注过本帖树形打印复制链接

主题:[求助]优化代码

帅哥哟,离线,有人找我吗?
易服
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
[求助]优化代码  发帖心情 Post By:2014/4/3 9:44:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/4/3 9:48:00 [只看该作者]

这个代码,似乎也没什么可优化的了 单行执行不应该有效率问题吧

 回到顶部
帅哥哟,离线,有人找我吗?
易服
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2014/4/3 9:53:00 [只看该作者]

效率是没问题,应该还可以精简一些

 回到顶部