Q&A

  • DB Grid안의 내용을 실시간으로 바꾸기(?)
좀 제목이 이상할지 모르겠네여...



저가 지금 Grid로 값을 불러 온곳에서 한 칼럼내용의 숫자값이 1이면 -> 시작

2이면 -> 개시 등으로 변경을 하려고 합니다...



좀 살펴봐도 모르는 문제점 2가지가 있어서 질문을 드립니다.



1. 컬럼의 첫줄에만 접근 가능 하더군여.. 그 다음줄은 컨트롤을 어떻게 하는 것입니까?

저가 접근 한 방법은 Dbgrid.Fields[Integer].Text 였습니다. 이러니 첫줄만

접근 가능 하더군여..



2. 이것을 변경을 해보려고 하니.. Query해온 상태가 edit or inser 모드가 아니라는

에러 메시지만 나타 납니다. 물론 Query문을 Edit mode 로 해도 안돼는건 마찬

가지고엽.



이러한 작업을 새로운 DB 목록 추가 안시키고 FormShow 시에 샤악 바꿀수 있는 방법좀

알려 주시면 감사하겠습니다.



1  COMMENTS
  • Profile
    까마귀 2000.12.14 22:12
    살기시러 wrote:

    > 좀 제목이 이상할지 모르겠네여...

    >

    > 저가 지금 Grid로 값을 불러 온곳에서 한 칼럼내용의 숫자값이 1이면 -> 시작

    > 2이면 -> 개시 등으로 변경을 하려고 합니다...

    >

    > 좀 살펴봐도 모르는 문제점 2가지가 있어서 질문을 드립니다.

    >

    > 1. 컬럼의 첫줄에만 접근 가능 하더군여.. 그 다음줄은 컨트롤을 어떻게 하는 것입니까?

    > 저가 접근 한 방법은 Dbgrid.Fields[Integer].Text 였습니다. 이러니 첫줄만

    > 접근 가능 하더군여..

    >

    > 2. 이것을 변경을 해보려고 하니.. Query해온 상태가 edit or inser 모드가 아니라는

    > 에러 메시지만 나타 납니다. 물론 Query문을 Edit mode 로 해도 안돼는건 마찬

    > 가지고엽.

    >

    > 이러한 작업을 새로운 DB 목록 추가 안시키고 FormShow 시에 샤악 바꿀수 있는 방법좀

    > 알려 주시면 감사하겠습니다.

    >



    안녕하세요. 까마귀입니다.



    그건 DBGrid에서 만지기 보다는 Query나 Table 콤포넌트에서 건드리는게 편할겁니다.

    주로 TQuery 콤포넌트를 많이 쓰니까 이걸로 설명을 할게요. TTable도 똑 같아요.

    먼저 위처럼 구현을 하려면 Field는 수동 생성이 되어야 합니다.

    TQuery를 Double-Click하면 Field Editor창이 뜨잖아요.

    거기서 오른 클릭후 Add All Fields를 선택하면 모든 Field목록이 나옵니다.

    그러면 이게 수동생성이 된겁니다.

    그렇게 Field를 추가를 한 후 원하는 Field를 선택하고, Object Inspector의 Events를

    선택하세요.

    거기서 OnGetText라는 Event를 선택하세요. 그리고, 코딩.



    예)

    procedure TDM_CC.QUE_AttrFAscentGetText(Sender: TField; var Text: String;

    DisplayText: Boolean);

    begin

    try

    if Sender.AsInteger = 0 then Text := '출근'

    else if Sender.AsInteger = 1 then Text := '결근'

    else Text := '입력오류';

    except

    Text := '';

    end;

    end;

    ---- TDM_CC : DataModule.

    ---- QUE_Attr : TQuery.

    ---- FAscent : TField.



    위처럼 하시면 원하시는 결과를 얻을수가 있습니다.







    위대한 단군혼이 살아있는 나라.... 대한민국.