以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]从其它表取值  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=485)

--  作者:jweishan
--  发布时间:2008/9/13 22:44:00
--  [求助]从其它表取值

我想在合同表中,根据栋号、层数、房号从房源表中取得对应的房屋编号,用易表的时候,用findtext函数很方便,看了Foxtable的帮助文件试着用了很多办法,总是弄不出来,请高手指点一下。该列我想用作关联列,所以不能用表达式,要用计算代码!

合同表的房屋编号列的计算代码:

dim r as integer
r = tables("房源").findrow("[栋号] = e.datarow("栋号") and [层数]= e.datarow("层数") and [房号]=e.datarow("现房号")",1,false)
e.datarow("房屋编号")=tables("房源").rows(r)("房屋编号")


不知错在哪里?



 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table

[此贴子已经被作者于2008-9-13 23:44:09编辑过]

--  作者:czy
--  发布时间:2008/9/14 0:13:00
--  
 

Dim dt As DataTable = DataTables("房源")

Dim r As DataRow

r = dt.Find("[栋号] = \'" & e.datarow("栋号") & "\' And [层数]= \'" & e.datarow("层数") & "\' and [房号]= \'" & e.datarow("房号") & "\'")

e.datarow("房屋编号") = r("房屋编号")


--  作者:lkqing
--  发布时间:2008/9/14 0:15:00
--  
确实要多看帮助,请参考AfterEdit事件的帮助例题
--  作者:jweishan
--  发布时间:2008/9/17 21:57:00
--  
谢谢,已经解决了,关键是表达式和字符串没理解明白!
--  作者:cowpoke
--  发布时间:2008/9/17 23:13:00
--  
这个倒得认真研究一下,以后用的地方会比较多的.
顺便问一下czy版主:

Dim dt As DataTable = DataTables("房源")

Dim r As DataRow

r = dt.Find("[栋号] = \'" & e.datarow("栋号") & "\' And [层数]= \'" & e.datarow("层数") & "\' and [房号]= \'" & e.datarow("房号") & "\'")

e.datarow("房屋编号") = r("房屋编号")


这个代码中第三行的e.datarow可以写成e.r吗?这个datarow不是在第二行已经定义给r 了吗
--  作者:czy
--  发布时间:2008/9/17 23:35:00
--  
第二行定义的只是个类,并未存在实际的数据
第三行才真正将符合条件的数据存放在这个类中。
不过你倒可以直接这样写

Dim r As DataRow = dt.Find("[栋号] = \'" & e.datarow("栋号") & "\' And [层数]= \'" & e.datarow("层数") & "\' and [房号]= \'" & e.datarow("房号") & "\'")


--  作者:chips
--  发布时间:2008/9/17 23:41:00
--  

Dim r As DataRow,只是定义了r是行记录的类型,此时还没有实例,即还没有具体意义上的行记录,e.datarow表示当前表的当前行记录,e.datarow("栋号")  才是具体的对当前行的"栋号"列的取值。再说,r还没有形成结果呢,就自己调用自己,逻辑上也不对。


--  作者:cowpoke
--  发布时间:2008/9/17 23:47:00
--  
非常三克油