VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

如何将Treeview控件顺序文本保存到另一个表中?

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
zfgg



註冊時間: 2004-05-31
文章: 179
來自: 中国

第 1 樓

發表發表於: 星期二 十二月 19, 2006 9:12 am    文章主題: 如何将Treeview控件顺序文本保存到另一个表中? 引言回覆

Treeview控件显示的文本,随着不断的修改,其存放在表中的顺序是一直加在表后面的。我的想法是将按照Treeview控件显示的顺序内容加入到另一个表中形成与Treeview控件显示的顺序一至。见图1。图1中的编号顺序就是我要在另一个表中存放的顺序。图1的数据是从图2的表中读出来的。见图2。现在的程序从图1中读出写到另一个表中,见图3。程序如下:
……
SELECT 1
for i=1 TO RECCOUNT()
GO i
_parentt=ALLTRIM(parentt)
_keyy=ALLTRIM(keyy)
_sj=时间
_sm=说明
_tm=题目
sele jiaoanbao
locate for jiaoanbao.Keyy=_parentt
IF FOUND()
_Nrec=RECNO()
FOR j=_Nrec TO RECCOUNT()
GO j
IF parentt=_keyy
LOOP
ELSE && for j
_Jrec=RECNO()
insert blank
replace jiaoanbao.题目 with _tm
replace jiaoanbao.时间 with _sj
replace jiaoanbao.说明 with _sm
replace keyy WITH _keyy
replace parentt WITH _parentt

exit
ENDIF
NEXT
ELSE &&not found
append blank
replace jiaoanbao.题目 with _tm
replace jiaoanbao.时间 with _sj
replace jiaoanbao.说明 with _sm
replace keyy WITH _keyy
replace parentt WITH _parentt
ENDIF
replace 按号 with i
SELECT 1
ENDFOR

仔细分析图3,在Treeview控件中有子节点的,读出来的数据是加在当前兄弟的下面,但一旦换到另一个节点时,它不是加在当前表的下面,而是在这个结点的上面加的记录。如何解决这一问题,我日夜思索,不得其解。我曾想过,用Treeview控件显示节点数据的方法,加到表中,但也无从下手。请教各路高手救我一把。我快休克了。

回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address MSN Messenger
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2160


第 2 樓

發表發表於: 星期三 十二月 20, 2006 1:40 am    文章主題: 引言回覆

臨時寫的, 採用遞迴方式來設計, 可無限階, 未測試.
代碼:

SELECT 1
use mytreedbf
copy stru to putnewfile
sele 2
use putnewfile
listthis( space(len( parentt)) )   &&--假?#93;第一階的父階為空白
return

func listthis
lpara mparentt
lpara mfile, mret
mfile='_'+alltrim(mparentt)
select * from mytreedbf where parentt=mparentt into cursor &mfile
mret = (recc()>0)     &&--有這個階層的資料
scan
   sele (mfile)
   scat to tempfield
   sele putnewfile    &&--將這筆資料放到另一個table
   appe blank
   gath from tempfield
   *找下一階, 請自行過濾有問題的階層資料
   listthis( keyy )
endscan
use in (mfile)
return mret

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
zfgg



註冊時間: 2004-05-31
文章: 179
來自: 中国

第 3 樓

發表發表於: 星期四 十二月 21, 2006 4:59 pm    文章主題: 谢谢Garfield! 引言回覆

谢谢Garfield! 你是天才,你是Foxpro精英,你是伟大的教育家!我衷心地感谢你!

在原程序上,我改了三个地方,加了一个语句,用了二个小时,成功了.
说实话,我请当地一大学计算机系的人,搞了2个星期,没有搞出来,你搞出来了.我今天可以睡觉了.

我还有一个问题,马上发贴,也请给予指教.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作