|
- 질문 내용
디비에서 가져온 값을 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 에서 디비 쿼리 테스트하는 방법을 알고 싶습니다.
|