以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教需要这样的功能用代码可以实现吗?如何实现?  (http://foxtable.net/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这几条房号的记录,请问高手可以以最小房号和最大房号为判断条件,生成虚拟房号,并在状态列填入“虚拟”。这样的功能可以实现吗?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


--  作者:狐狸爸爸
--  发布时间: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
--  

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

[此贴子已经被作者于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
--  
问题是我的数据库有十几万的记录,总不能一条一条的手动生成