Q&A

  • 숫자형필드를 문자열로 보여주기
회원과 직원테이블에(파라독스,델파이3) 생일구분과 결혼기념일 구분필드가 있습니다.

1이면 음력,0이면 양력 이런 식으로 구성을 했는데요. DBGrid에 뿌려줄 때 숫자대신

해당되는 문자열로 보여주고 싶거든요. OnDrawColumnCell에 코딩을 했는데 제대로 먹히지 않습니다. 이런 예제가 있으면 알려주시면 고맙겠습니다.

3  COMMENTS
  • Profile
    혀노 1999.12.30 19:26
    테이블을 DBGrid와 연결 시켰다면,,,,

    테이블 이벤트를 찾아보시면 OnCalcField 이벤트가 있을거에요



    거기서 코딩해주세요

    1이면 음력, 0이면 양력을 출력하도록요,,,,



    박성훈 wrote:

    > 회원과 직원테이블에(파라독스,델파이3) 생일구분과 결혼기념일 구분필드가 있습니다.

    > 1이면 음력,0이면 양력 이런 식으로 구성을 했는데요. DBGrid에 뿌려줄 때 숫자대신

    > 해당되는 문자열로 보여주고 싶거든요. OnDrawColumnCell에 코딩을 했는데 제대로 먹히지 않습니다. 이런 예제가 있으면 알려주시면 고맙겠습니다.

  • Profile
    지희 1999.12.31 02:58
    > 박성훈 wrote:

    > > 회원과 직원테이블에(파라독스,델파이3) 생일구분과 결혼기념일 구분필드가 있습니다.

    > > 1이면 음력,0이면 양력 이런 식으로 구성을 했는데요. DBGrid에 뿌려줄 때 숫자대신

    > > 해당되는 문자열로 보여주고 싶거든요. OnDrawColumnCell에 코딩을 했는데 제대로 먹히지 않습니다. 이런 예제가 있으면 알려주시면 고맙겠습니다.





    Calc Field를 쓰는것 보다 TField에 있는 이벤트를 사용해보심이 어떨런쥐요....



    type TFieldGetTextEvent = procedure(Sender: TField; var Text: string

    ; DisplayText: Boolean) of object;



    OnGetText와 OnSetText를 적절히 사용하심이 속도면에서나 코딩면에서..좋을듯....





    procedure TDM.Qeury1DR_SEXGetText(Sender: TField; var Text: String;

    DisplayText: Boolean);

    begin

    if Sender.Value = '1' then

    Text := '여'

    else if Sender.Value = '2' then

    Text := '남'

    else

    Text := '';

    end;

  • Profile
    코지민 1999.12.30 21:05
    > 박성훈 wrote:

    > > 회원과 직원테이블에(파라독스,델파이3) 생일구분과 결혼기념일 구분필드가 있습니다.

    > > 1이면 음력,0이면 양력 이런 식으로 구성을 했는데요. DBGrid에 뿌려줄 때 숫자대신

    > > 해당되는 문자열로 보여주고 싶거든요. OnDrawColumnCell에 코딩을 했는데 제대로 먹히지 않습니다. 이런 예제가 있으면 알려주시면 고맙겠습니다.



    queyr component에 보시면 이벤트에 oncalcfields()가 있습니다. 이 부분에 코딩을



    이렇게 해주면 됩니다.



    procedure TFMainForm.sampleCalcFields(DataSet: TDataSet);

    var s: string;

    begin

    s := DataSet.FieldByName('sample').AsString;

    if s = '0' then

    DataSet.FindField('sample').Text := '양력';

    else

    DataSet.FindField('sample').Text := '음력';







    end;