PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
14304 01/01/17 22:27:14 RE(9):PB7.0: データウインドウでツリービュー形式 By ryochan
14303 01/01/17 16:29:22 RE(8):PB7.0: データウインドウでツリービュー形式 By ryochan
14302 01/01/17 16:28:49 RE(7):PB7.0: データウインドウでツリービュー形式 By ryochan
14301 01/01/17 16:18:51 RE(6):PB7.0: データウインドウでツリービュー形式 By ryochan
13118 00/09/06 12:40:36 RE(5):PB7.0: データウインドウでツリービュー形式 By リエッチ
13097 00/09/05 16:22:24 RE(4):PB7.0: データウインドウでツリービュー形式 By こてちゅ
13095 00/09/05 15:51:20 RE(3):PB7.0: データウインドウでツリービュー形式 By M.M
13093 00/09/05 15:29:10 RE(2):PB7.0: データウインドウでツリービュー形式 By dancein
13089 00/09/05 14:05:40 RE(1):PB7.0: データウインドウでツリービュー形式 By M.M
13084 00/09/05 11:25:44 PB7.0: データウインドウでツリービュー形式 By dancein

カテゴリ:データウィンドウ
日付:2001年01月17日 16:29 発信者:ryochan
題名:RE(8):PB7.0: データウインドウでツリービュー形式

string l_sql //SQL文
string l_tree_char //新規ノードのツリー記号
string l_title //ツリー表示用タイトル
long l_row //検索行
long n //カウンタ
datastore l_ds

l_ds = create datastore
l_ds.dataobject = \'d_data\'
l_sql = l_ds.object.datawindow.table.select

//親記事のツリー記号の置換
//「┗」の置換
p = posw(p_tree_char,\'┗\',1)
do while not p = 0
 p_tree_char = replacew(p_tree_char,p,1,\' \')
 p = posw(p_tree_char,\'┗\',p + 1)
loop

//「┣」の置換
p = posw(p_tree_char,\'┣\',1)
do while not p = 0
 p_tree_char = replacew(p_tree_char,p,1,\'┃\')
 p = posw(p_tree_char,\'┣\',p + 1)
loop

//子ノードの検索
if isnull(p_no) then
 //nullデータ用
 l_sql += \"WHERE t_data.parent_no is null \"
else
 l_sql += \"WHERE t_data.parent_no = \" + string(p_no) + \" \"
end if
l_sql += \"ORDER BY update_date\"
l_ds.object.datawindow.table.select = l_sql
l_ds.settransobject(sqlca)
l_ds.retrieve()

//タイトルをセット
l_row = l_ds.rowcount()
for n = 1 to l_row
 l_tree_char = \'\' //変数初期化
 p_no = l_ds.object.no[n]
 l_title = l_ds.object.title[n]
 if isnull(p_tree_char) then
    //ルートの記事は何もセットしない
  p_tree_char = \'\'
 else
  if n = l_row then
   //ノードにおける最終記事の場合
   l_tree_char = p_tree_char + \'┗\'
  else
   l_tree_char = p_tree_char + \'┣\'
  end if
 end if
 //ツリー記号を含めたタイトルの生成
 l_title = l_tree_char + l_title
 //dwにセット
 row = dw_1.insertrow(0)
 dw_1.object.title[row] = l_title
 //再帰処理
 wf_retrieve_tree(p_no,l_tree_char)
next
return l_row

関数を呼び出す
long l_lnull
string l_snull
setnull(l_lnull)
setnull(l_snull)
wf_retrieve_tree(l_lnull,l_snull)

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS Oracle SQL*Net 8
Browser InternetExplorer5.X

Server SoftWare

OS Windows NT 4.0
DBMS Oracle 8.0
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.