Q&A

  • TTable에서 동적으로 필드에디터를 작성하는 방법 있나요?
안녕하셔요..영원한 델초보 어린왕자입니다..



어떤 Table에서 몇개의 필드만 읽을려구 합니다.

동적으로 말이져..



디자인할때 TTable의 필드에디터로 읽을 필드들을 지정하잖아요..

근데 동적으로 필드에디터처럼...필드를 지정할수 없나요?



갈켜주셔요..

1  COMMENTS
  • Profile
    블랙봉 2001.07.08 00:37
    저는 이런식으로 처리했습니다.



    dataset의 필드를 동적으로 생성하는 데 저는 생성할 필드 정보를 테이블에 넣어뒀습니다. qTABLE020T가 하는 역할이 바로 생성할 필드 정보를 가져오는 것입니다.

    도움이 됐으면 좋겠군요.



    szSQL := 'SELECT * FROM TABLE020T WHERE TABLE_ID = ' + QuotedStr(szTableName);

    qTABLE020T.Close;

    qTABLE020T.SQL.Text := szSQL;

    qTABLE020T.Active := True;



    while not qTABLE020T.Eof do

    begin

    case qTABLE020T.FieldByName('FIELD_TYPE').AsInteger of

    1 : myField := TStringField.Create(DataModule);

    2 : myField := TSmallIntField.Create(DataModule);

    3 : myField := TIntegerField.Create(DataModule);

    4 : myField := TFloatField.Create(DataModule);

    5 : myField := TDateTimeField.Create(DataModule);

    else myField := TStringField.Create(DataModule);

    end;



    myField.Name := myDBDataSet.Name + qTABLE020T.FieldByName('FIELD_ID').AsString;

    myField.FieldName := qTABLE020T.FieldByName('FIELD_ID').AsString;

    myField.Index := myDBDataSet.FieldCount;

    myField.DataSet := myDBDataSet;

    myField.Required := False;

    myField.DisplayLabel := qTABLE020T.FieldByName('FIELD_NAME').AsString;

    myField.FieldKind := fkData;



    myDBDataSet.FieldDefs.Update;



    qTABLE020T.Next;

    end;



    어린왕자 wrote:

    > 안녕하셔요..영원한 델초보 어린왕자입니다..

    >

    > 어떤 Table에서 몇개의 필드만 읽을려구 합니다.

    > 동적으로 말이져..

    >

    > 디자인할때 TTable의 필드에디터로 읽을 필드들을 지정하잖아요..

    > 근데 동적으로 필드에디터처럼...필드를 지정할수 없나요?

    >

    > 갈켜주셔요..