2 つのフィールドを追加します。1 つは親 ID、それが最上位の場合、親 ID は 0、もう 1 つは下位の有無、0 元 1 はい、関数で解決できます。この関数を関数の途中で呼び出します。関数では、親レイヤーを見つけて、そのレイヤーに従属があるかどうかを調べます。そうである場合は、親 ID がプライマリ ID である列を探します。
'================================================ = =
'プロセス名: listecityclass
'機能: システム分類の表示
'パラメータ: id ------ 照合するシステム ID
'================================================ = =
サブリストシティクラス(id)
dim F_reco,F_total,F_n,F_classid,F_classname,F_classlayer
set F_reco=Server.CreateObject(ADODB.Recordset)
F_reco.Open select classid,classname,classlayer from ws_ecityclass where classparent=0 and classlist=0 classorder Asc,conn,1,1 で並べる
F_total=F_reco.recordcount
F_total>0 の場合
F_n=1 から F_total まで
フォーマット_i=1
F_classid=F_reco(0)
F_クラス名=F_reco(1)
F_クラスレイヤー=F_reco(2)
response.write <オプション
F_classlayer=0 の場合、response.write value= & F_classid
id=F_classid の場合、response.write が選択されます
response.write > & F_classname & </option>
if F_classlayer=1 then call listecityclass_(id,F_classid) '以下の別の関数を呼び出します
F_reco.movenext
次
終了する場合
F_reco.close : F_reco=nothing を設定します
エンドサブ
サブリストシティクラス_(id,iid)
dim F_reco,F_total,F_n,F_m,F_classid,F_classname,F_classlayer
set F_reco=Server.CreateObject(ADODB.Recordset)
F_reco.Open select classid,classname,classlayer from ws_ecityclass where classparent=&iid& and classlist=0 classorder Asc,conn,1,1 で並べ替えます
F_total=F_reco.recordcount
F_total>0 の場合
F_n=1 から F_total まで
F_classid=F_reco(0)
F_クラス名=F_reco(1)
F_クラスレイヤー=F_reco(2)
フォーマット_i=フォーマット_i+1
response.write <オプション
F_classlayer=0 の場合、response.write value= & F_classid
id=F_classid の場合、response.write が選択されます
応答.書き込み >
F_m=format_i の場合は 2 ステップ -1
応答.書き込み
F_m=2 の場合
if F_n=F_total then 応答.write └ else 応答.write §
終了する場合
次
response.write F_classname & </option>
F_classlayer=1 の場合、listecityclass_(id,F_classid) を呼び出します 'この関数を呼び出します
F_reco.movenext
format_i=format_i-1
次
終了する場合
F_reco.close : F_reco=nothing を設定します
エンドサブ