Q&A

  • DB에서 읽어온 대량의 자료를 listview에 넣으려면
[질문] DB에서 읽어온 대량의 자료를 listview에 넣으려면

자료실이나 QnA에 보면 Ownerdata를 True로 해주면 된다고 하는데 구체적인 예가 없어 고생하고 있습니다. 예문들은 대부분 너무 단순한 내용들이어서 작업에 별로 도움이 되질 않습니다. 고수님들의 도움이 절실히 필요합니다. 흑흑....

가능하시다면 예문을 들어 도와주시면 정말 감사 하겠습니다. 부탁드립니다.  
2  COMMENTS
  • Profile
    이동기 2004.04.26 05:24



    저는 주로 ListView의 ViewStyle을 vsReport 모드로 사용하는데요 이 모드로 사용하실 경우 아래와 같은 과정을 수행해보세요.



    [ListView 생성 및 설정]
    1. ListView 콤포넌트를 이용해서 새로운 ListView를 만든다.
        (편의상 Name 속성은 MyListView로 설정하자)
    2. ListView를 오른쪽 버튼으로 클릭하여 Columns Editor를 클릭한다.
    3. Add New 버튼을 눌러 원하는 Field들을 생성한다.
        (편의상 'A', 'B', 'C' 필드를 만들자)

    [아이템 등록]
    1. 버튼을 하나 만들고 'OnClick()' 이벤트 핸들러를 만들자.
    2. 아래와 같이 코딩하자.

    procedure TForm1.Button1Click(Sender: TObject);
    var
        Counter: Integer;
        ListItem: TListItem;
    begin

        Counter := 0;
        While Counter < 3 Do
        begin
            ListItem := MyListView.Items.Add;
            ListItem.Caption := IntToStr(Counter);
            ListItem.SubItems.Add('Field B');
            ListItem.SubItems.Add('Field C');
            Counter := Counter + 1;
        end;

    end;

    3. MyListView에 아래와 같은 내용이 입력될 것이다.

    A            B              C
    0             Field A      Field B
    1             Field A      Field B
    2             Field A      Field B


    위의 예제에서 필드값들을 쿼리에서 불러온 값들을 넣어주면 되겠죠.

    제가 현재 델파이로 POS 시스템(바코드 시스템)을 만들고 있어서 ListView는 조금 다루어봤거든요.
    혹시 다른 질문 있으시면 글 올려주세요.

    좋은 하루 되시길...
  • Profile
    임준 2004.04.26 19:36
    먼저 어려운 시간을 내어 답변해 주셔서 정말로 감사드립니다.

    이동기님께서 추천해 주신 방법은 지금 사용하고 있습니다. 그러나, Listview에 Add하는 자료가 많은 경우(약 1 만건 이상) 너무 시간이 걸린다는 문제점이 있는거 같습니다. 때문에 빠른 시간에 Add 할 수 있는 방법을 찾고 있는데 여기저기 찾아본 결과 Ownerdata 프로퍼티를 이용한 Add 방법이 좋을 것 같아 Ownerdata 프로퍼티를 이용한 방법을 찾고 있습니다.

    Ownerdata 프로퍼티에 대해 게시판에 올라온 글들은 예제가 넘 단순하여 작업하는데 좀 예를 먹고 있습니다. 실력이 미천하다보니 단순한 예제가지고는 별 도움이 안되네요...

    암튼 답변에 감사드립니다.... 정말로.......^^;