Q&A

  • dbgrid에 일정한 형식으로 넣기
엑셀처럼 dbgrid에 직접 데이터를 입력할 때 특정한 형식으로 자동 변환되어 입력되게 하고 싶을 때, 예를 들어 날짜를 2000.2.3이라고 dbgrid에 직접 입력할때 자동적으로

2000.02.03으로 변환되게하려면 어떻게 해야되나요?

2  COMMENTS
  • Profile
    psh 2000.05.28 22:20
    초초보 wrote:

    > 엑셀처럼 dbgrid에 직접 데이터를 입력할 때 특정한 형식으로 자동 변환되어 입력되게 하고 싶을 때, 예를 들어 날짜를 2000.2.3이라고 dbgrid에 직접 입력할때 자동적으로

    > 2000.02.03으로 변환되게하려면 어떻게 해야되나요?





    TTable이나 TQuery의 필드에디터에서 필드들을 추가하신후 해당 필드컴포넌트의

    GetText와 SetText이벤트를 조작하면 될 것 같습니다.



    예를 들어 성별필드가 db에는 Integer형으로 정의되어 있고 dbgrid에 보여줄 때,

    0이면 여자, 1이면 남자라고 보여준다고 하죠.

    그러면 Dbgrid와 연결된 datasource의 dataset의 성별필드의 GetText이벤트에



    Text:= '여자';

    if Sender.AsString=1 then

    Text:= '남자';



    그리고 dbgrid에 '남자'라고 입력하면 1, '여자'라고 입력하면 0으로 저장하려면,

    성별필드의 SetText이벤트에





    if Text='여자' then

    Sender.AsInteger:=0

    else if Text='남자' then

    Sender.AsInteger:= 1;



    이렇게 해주면 됩니다. 이걸 좀 변형하시면 되지 않을까 해서요.

    제 답변이 좀 거리가 멀었나요?

  • Profile
    꿈의별 2000.05.25 04:20
    초초보 wrote:

    > 엑셀처럼 dbgrid에 직접 데이터를 입력할 때 특정한 형식으로 자동 변환되어 입력되게 하고 싶을 때, 예를 들어 날짜를 2000.2.3이라고 dbgrid에 직접 입력할때 자동적으로

    > 2000.02.03으로 변환되게하려면 어떻게 해야되나요?



    dbgrid는 혼자 쓰는게 아니라 Query나 Table를 사용하게 되죠.

    따라서 Query나 Table에서 OnCalcFields 이벤트를 사용하세요.