以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教需要这样的功能用代码可以实现吗?如何实现? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2741) |
||||
-- 作者:hejfen -- 发布时间:2009/5/11 12:08:00 -- 请教需要这样的功能用代码可以实现吗?如何实现? 表A与表B关联,表B的房号规则是这样的,如:201表示二层楼01号房,304表示三层楼04号房,若果最小房号是201,最大房号是304,则说明该栋楼还有202、203、204、301、302、303这几条房号的记录,请问高手可以以最小房号和最大房号为判断条件,生成虚拟房号,并在状态列填入“虚拟”。这样的功能可以实现吗?
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/5/11 12:13:00 -- 可以的 |
||||
-- 作者:mr725 -- 发布时间:2009/5/11 12:39:00 -- 楼主啊,每栋楼的层次是不一样的,你得另设计一个各大楼层次明细表 才好~ 而且你关联的列也太多了吧? [此贴子已经被作者于2009-5-11 12:40:11编辑过]
|
||||
-- 作者:hejfen -- 发布时间:2009/5/11 14:56:00 -- 默认每层楼的层次一样的,请求高手代码? |
||||
-- 作者:hejfen -- 发布时间:2009/5/11 17:32:00 -- 狐狸爸爸,帮个忙啦!!! |
||||
-- 作者:don -- 发布时间:2009/5/11 17:38:00 -- 试试: Dim Tj,T As String Dim dr As DataRow Dim n1,n2,n As Integer Dim dt1,dt2 As DataTable dt1 = DataTables("表A") dt2 = DataTables("表B") Dim tb As Table = Tables("表B") for each dr in dt1.select("路名 is not null") Tj = "路名 =\'" & dr("路名") & "\' and 状态 = \'在用\'" n1 = val(dt2.Compute("min(房)",Tj)) n2 = val(dt2.Compute("max(房)",Tj)) if n2 > n1 AndAlso n1 > 0 then tb.Redraw = False For n = n1+1 to n1+3 T = Tj.Replace("在用","虚拟") & " and 房 = \'" & n & "\'" if dt2.Find(T) is not Nothing then Dim r As Row = tb.addnew r("路名") = dr("路名") r("街名") = dr("街名") r("号") = dr("号") r("栋") = dr("栋") r("房") = n r("状态") ="虚拟" end if Next For n = n2-3 to n2-1 T = Tj.Replace("在用","虚拟") & " and 房 = \'" & n & "\'" if dt2.Find(T) is not Nothing then Dim r As Row = tb.addnew r("路名") = dr("路名") r("街名") = dr("街名") r("号") = dr("号") r("栋") = dr("栋") r("房") = n r("状态") ="虚拟" end if Next tb.Redraw = true end if Next |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/5/11 17:46:00 --
[此贴子已经被作者于2009-5-11 17:52:22编辑过]
|
||||
-- 作者:hejfen -- 发布时间:2009/5/12 15:31:00 -- 老爸的代码未能实现我要的功能,我想要根据本身有的房号记录来确定层号与房号,如最小房号204,最大房号是501,则层是2至5,号是1至4,用这个做条件生成记录,并且是连续的,即我在主表选定多少条记录,就生成多少条记录的房号。 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2009/5/12 15:46:00 -- 呵呵,我这样设计也很好啊,多简单啊。 |
||||
-- 作者:hejfen -- 发布时间:2009/5/12 16:15:00 -- 问题是我的数据库有十几万的记录,总不能一条一条的手动生成 |