Q&A

  • !!! 급합니다. 트리뷰 에서 DB의 자료를 표현하는데.....
하늘맥 wrote:

> 정상용 wrote:

> > 안녕하세요! 또 궁굼한게 있어서 .... (^[^;; 죄송.

> >

> > 테이블에 저장된 DATA들을 읽어서 트리뷰에 가지고 오고 싶은데 어떻게 하면 되죠!

> > 문제는 SORT 라는 필드에 1, 11, 111, 1111,....

> > 2, 21, 211, 2111....... DATA가 저장되어 있읍니다.

> >

> > 이 DATA를 트리뷰에 --- + 1

> > | |--- + 11

> > | | |--- + 111

> > | | | |--- 1111

> > | | | |--- 1112

> > | | |--- + 112

> > | | |--- 1121

> > | |

> > | |--- + 12

> > |

> > |

> > --- + 2

> > | |--- + 21

> > |

> >

> > 이렇게 나타내고 싶은데요 !

> >

> > SELECT 했서 트리로 넘기니 DATA가 루트에만 붙어서 나오더라구요....

> >

> > 고수님의 한수 부탁하겠읍니다.

> > 델파이 시작한지가 얼마안되서 그러는데.. 상세하게 알켜주심 더할나위 없이

> > 고맙겠읍니다. 그럼 좋은 하루 되세요....

>

>

> 밑에 소스는 사원관리 코드중 트리뷰에 뿌려주는 소스입니다..

>

> 전산실 -- 정민

> -- 정훈

> -- 정안

>

> 총무부 -- 길동

> -- 동길

>

> 이런식으로 나오죠..

>

>

> procedure TSWmainFrm.Btn_refreshClick(Sender: TObject);

> var i,j : integer;

> s_buse,s_buseprior,s_id,s_name,s_busename,s_original : String;

> t_node,t_subnode : TTreeNode;

> begin

>

> IF Dm.UDB.Connected = false then Dm.UDB.Connected := true;

> i := 0;

> gSql := 'SELECT * FROM CPM3SA WHERE FCY = ''SA'' ORDER BY FDEPT,FYYNO ';

> //일단 사원을 부서순으로 정렬해야 겠죠...

> With Dm.Q_main do

> begin

> Close;

> Sql.Clear;

> Sql.Add(gSql);

> Open;

>

> First;

> repeat

> // 가져온 사원을 반복해서 처음 부터 끝까지 반복해서 돌립니다.

> s_buse := FieldByName('FDEPT').AsString;

>

> s_id := FieldByName('FYYNO').AsString;

> s_name := FieldByName('FNAME').AsString;

> s_original := 'SA'+s_buse;

>

> If s_buseprior <> s_buse then

> // 부서 가 바뀌면 트리뷰에 새로운 루트를 하나 부서를 표시해야 겠죠

> begin

> gsql := 'SELECT * FROM TSATPAPF WHERE PACDGB = ''02''' ;

> gsql := gsql + ' And PACODE = ''' + s_original +'''';

>

> With Dm.Q_sub do

> begin

> close;

> Sql.clear;

> Sql.Add(gSql);

> open;

> s_busename := FieldByName('PADESC').AsString;

>

>

> end;

> t_node := Tv_main.Items.Add(nil,s_busename);

> // 여기서 새로운 부서의 트리뷰의 노드를 기억합니다.

>

> t_node.ImageIndex := 0;

> end;

> s_id := s_id + ' ' +s_name;

> t_subnode := Tv_main.Items.AddChild(t_node,s_id );

> // 개개인의 이름과 아이디를 위에 기억한 노드밑에 표시합니다.

>

> t_subnode.ImageIndex := 1;

> // 이것은 트리뷰에 그림을 표시해 주죠...

>

> s_buseprior := FieldByName('FDEPT').AsString;

> // 부서를 기억했다가 다음 레코드의 부서랑 비교해서....

> i := i +1;

> next;

>

> until Eof;

>

> end;

>

>

>

> end;





이번에 졸업작품으로 메신져를 하고 있습니다.

고수님들 위의 소스좀 해석해 주세여

제 DB의 구성은

u_group | u_id | 대충 DB에 이런것들이 있습니다.

---------------- 테이블명은 friend 구여

FF | aaa | 이것을 트리뷰에 표현을

AA | bbb | FF --aaa

FF | ccc | | |ㅡbbb

|

AA --ccc



이런식으로 표현할려구 합니다.

고수님들 제발 많은 도움 부탁드립니다.

위의 소스는 테이블을 두게 쓰는것 같더라구여 테이블은 하나인데....ㅠ,.ㅠ

0  COMMENTS