以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=1696)

--  作者:shixia
--  发布时间:2009/1/30 15:01:00
--  请教
为了快速对FOXTABLE有一个了解,我自己想做一个例子,根据实际中需要解决的问题向高手请教,来逐步学习理解foxtable,现请教如下:
1、如何在“位置”中设置带条件的列表项目,数据来源是“基准地价”表中“街道名称”,条件是只列出“基准地价”表中的“乡镇名称”=“估价报告”中“所在乡镇”。
2、“工业地价”、“商业地价”与“住宅地价”三列数据是动态的从“基准地价”表中选择,选择是标准是同时符合五个条件:①“基准地价”表中的“乡镇名称”=“估价报告”中“所在乡镇”,②“基准地价”表中的“街道名称”=“估价报告”中“位置”;③“基准地价”表中的“土地级别”=“估价报告”中“土地级别”;④“估价报告”中“估价期日”介于“基准地价”的“开始执行日期”与“结束日期”之间;⑤“基准地价”中“用地性质”等于“估价报告”中对应的列。请问这三列是用数据列还是表达式列合适并如何设置代码?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:土地估价系统.table


--  作者:czy
--  发布时间:2009/1/30 16:23:00
--  
“工业地价”、“商业地价”与“住宅地价”三列数据来源于“基准地价”表中的哪一列?

⑤“基准地价”中“用地性质”等于“估价报告”中对应的列。请问这三列是用数据列还是表达式列合适并如何设置代码?

估价报告表中没有用地性质,怎么对应?

--  作者:shixia
--  发布时间:2009/1/30 17:01:00
--  
在基准地价中的用地性质只有三种:工业、商业、住宅,我在估价报告中把这三种情况分成三列,分别是:工业地价、商业地价、基准地价,想达到的目的是自动引用“基准地价”表中“基准地价”列中对应的数据
--  作者:czy
--  发布时间:2009/1/30 19:00:00
--  
PrepareEdit事件代码

If e.IsFocusCell Then
    If e.Col.Name = "土地位置" Then
        If e.Row.IsNull("土地所在乡镇") Then
            e.Col.Combolist = ""
        Else
            e.Col.Combolist = DataTables("基准地价").GetComboListString("街道名称", "[乡镇名称] = \'" & e.Row("土地所在乡镇") & "\'")
        End If
    End If
End If

If e.IsFocusCell Then
    If e.Col.Name = "工业地价" Then
        If e.Row.IsNull("土地级别") Then
            e.Col.Combolist = ""
        Else
            e.Col.Combolist = DataTables("基准地价").GetComboListString("基准地价", "[乡镇名称] = \'" & e.Row("土地所在乡镇") & "\'and [街道名称] = \'" & e.Row("土地位置") & "\'and [土地级别] = \'" & e.Row("土地级别") & "\'and [开始执行日期] <= #" & e.Row("估价期日") & "# and [结束日期] >= #" & e.Row("估价期日") & "# and [用地性质] = \'工业\'")
        End If
    End If
End If

If e.IsFocusCell Then
    If e.Col.Name = "商业地价" Then
        If e.Row.IsNull("土地级别") Then
            e.Col.Combolist = ""
        Else
            e.Col.Combolist = DataTables("基准地价").GetComboListString("基准地价", "[乡镇名称] = \'" & e.Row("土地所在乡镇") & "\'and [街道名称] = \'" & e.Row("土地位置") & "\'and [土地级别] = \'" & e.Row("土地级别") & "\'and [开始执行日期] <= #" & e.Row("估价期日") & "# and [结束日期] >= #" & e.Row("估价期日") & "# and [用地性质] = \'商业\'")
        End If
    End If
End If

If e.IsFocusCell Then
    If e.Col.Name = "住宅地价" Then
        If e.Row.IsNull("土地级别") Then
            e.Col.Combolist = ""
        Else
            e.Col.Combolist = DataTables("基准地价").GetComboListString("基准地价", "[乡镇名称] = \'" & e.Row("土地所在乡镇") & "\'and [街道名称] = \'" & e.Row("土地位置") & "\'and [土地级别] = \'" & e.Row("土地级别") & "\'and [开始执行日期] <= #" & e.Row("估价期日") & "# and [结束日期] >= #" & e.Row("估价期日") & "# and [用地性质] = \'住宅\'")
        End If
    End If
End If


--  作者:czy
--  发布时间:2009/1/30 19:45:00
--  

楼上的代码表达式段太长,还是改成这样比较好。


Dim str As String = "[乡镇名称] = \'" & e.Row("土地所在乡镇") & "\'"
If e.IsFocusCell Then
    If e.Col.Name = "土地位置" Then
        If e.Row.IsNull("土地所在乡镇") Then
            e.Col.Combolist = ""
        Else
            e.Col.Combolist = DataTables("基准地价").GetComboListString("街道名称",str)
        End If
    End If
End If
str = str & " and [街道名称] = \'" & e.Row("土地位置") & "\'and [土地级别] = \'" & e.Row("土地级别") & "\'and [开始执行日期] <= #" & e.Row("估价期日") & "# and [结束日期] >= #" & e.Row("估价期日") & "# "
If e.IsFocusCell Then
    If e.Col.Name = "工业地价" Then
        If e.Row.IsNull("土地级别") Then
            e.Col.Combolist = ""
        Else
            e.Col.Combolist = DataTables("基准地价").GetComboListString("基准地价", str & " and [用地性质] = \'工业\'")
        End If
    End If
End If

If e.IsFocusCell Then
    If e.Col.Name = "商业地价" Then
        If e.Row.IsNull("土地级别") Then
            e.Col.Combolist = ""
        Else
            e.Col.Combolist = DataTables("基准地价").GetComboListString("基准地价", str & " and [用地性质] = \'商业\'")
        End If
    End If
End If

If e.IsFocusCell Then
    If e.Col.Name = "住宅地价" Then
        If e.Row.IsNull("土地级别") Then
            e.Col.Combolist = ""
        Else
            e.Col.Combolist = DataTables("基准地价").GetComboListString("基准地价", str & " and [用地性质] = \'住宅\'")
        End If
    End If
End If