C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[50674] 실제 테스트(BDS2006 빌더)해보니 EditMask속성으로 해결됩니다.
조대현.Clau [casanebula] 1700 읽음    2007-09-28 17:22
1. BDS2006 빌더버전 기본 DBGrid에는 다음 코드가 작동합니다.

    DBGrid1->DataSource->DataSet->FieldByName("ID")->EditMask = "######-*******";

DBGrid에 연결된 데이터셋(저는 ADOTable)의 "ID"라는 필드 마스크를 설정하는 겁니다.

아마 구버전에서도 무리없이 또는 비슷한 코드로 작동되리라 생각합니다.

#은 원래 숫자가 보이며, #이외의 문자는 덮어씌우는것 같습니다. 헬프 참고하시면 충분할것 같네요.


구윤태 님이 쓰신 글 :
: - 질문 내용
:  디비에서 가져온 값을 TDBGrid 연결해서 값을 넣는데요..
:  ID 가 주민번호 일경우 , ID 뒷자리를 * 표시 할려구 합니다.
:
:
: 조대현님이 알려주신대로 했지만
: OnDrawCell 이벤트가  제가 사용하는 C++Builder 5.0 에 없어서
: OnDrawColumnCell , OnDrawDataCell  두개중에 OnDrawDataCell 이벤트를 사용했습니다
:
: 아래함수를 실행하지 않습니다.
: TDBGrid 가, 로드되는 방식을 모르겠습니다.
:
:
: TDBGrid
: Name :DBGridPatients
:
:
: 1. 아래 이벤트 함수를 로드 하지 않습니다.
: void __fastcall TForm1::DBGridPatientsDrawDataCell(TObject *Sender,  const TRect &Rect, TField *Field, TGridDrawState State)
: {
:    ShowMessage("TForm1::DBGridPatientsDrawDataCell");
:     AnsiString asID;
:    asID = Field->AsString;
:    // 주민 번호 13자리 판단
:    if(asID.Length() == 13){
:         Field->AsString = asID.SubString(1, 6) + "*******";
:    }
:
: }
:
: 2.
: DBGridPatients->Recordset->Field   //표시되지않습니다.
:
:
:
:
:
:
:
: 조대현.Clau 님이 쓰신 글 :
: : [1] DBGrid의 OnDrawCell 이벤트에서 무식하게 강제로 바꿔버리세요.
: :
: : 1. 현재 그리려는 셀이 주민번호인지 판단하고 뒷자리를 *처리
: : 2. 아마 이런 형식이 될것 같은데요.
: : 3. Grid의 OnDrawCell에서 텍스트, 색상바꾸는 자료는 질답/팁게시판에 있습니다. 참고하세요.
: :
: : void __fastcall TForm9::DBGrid1DrawDataCell(TObject *Sender, const TRect &Rect,
: :       TField *Field, TGridDrawState State)
: : {
: :     AnsiString asID;
: :
: :     asID = Field->AsString;
: :     // 주민 번호 13자리 판단
: :
: :     if(asID.Length() == 13){
: :         Field->AsString = asID.SubString(1, 6) + "*******";
: :     }
: :
: :         // TextOut
: :         TextOut(..................)
: : }
: :
: : [2] 혹시 모르니 DBGrid->Recordset->Field쪽에 Mask속성을 살펴보세요. EditMask는 존재합니다.
: :
: : 구윤태 님이 쓰신 글 :
: : : 질문 내용
: : : 디비에서 가져온 값을 TDBGrid 연결해서 값을 넣는데요..
: : : ID 가 주민번호 일경우 , ID 뒷자리를 * 표시 할려구 합니다.
: : :
: : : 그런데 디비에서 가져온 값을 분리해서 코드를 찾아서 변경하고 싶은데..
: : : 연결부분들이 대부분 숨겨져 있어서 어떻게 처리 해야 되는지 방법을 모르겠습니다.
: : :
: : : TDBGrid 와 DB 연결부분을 수정할 수 있는지 알고 싶습니다.
: : :
: : :
: : : 제가 초보인데다 , 남의 소스를 수정해야 하는데 질문이 엉성해서
: : : 죄송합니다.
: : :
: : : 가능한지 좀 알고 싶습니다.
: : :
: : :
: : :
: : : cf)
: : :
: : : c++builder 에서 디비 쿼리 테스트하는 방법을 알고 싶습니다.

+ -

관련 글 리스트
50654 TDBGrid 사용중에.. 디비에서 가져온 값을 변경해서 TDBGrid 넣어 주고 싶습니다. 구윤태 1471 2007/09/27
50660     단순히 표시목적이라면 OnDrawDataCell등의 이벤트를 사용해 보세요. 조대현.Clau 1664 2007/09/28
50673         [고수님 알려주세요]DBGrid의 OnDrawCell 이벤트가 , OnDrawDataCell 인가요..호출되지않습니다. 구윤태 1647 2007/09/28
50674             실제 테스트(BDS2006 빌더)해보니 EditMask속성으로 해결됩니다. 조대현.Clau 1700 2007/09/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.