Q&A

  • Integer 필드의 format을 바꾸는데 안되네요.ㅠㅠ
안녕하세요, 왕초보입니다.

ClientDataSet의 Integer필드에서 format을 '#,###' 으로 설정하고,
만약 체크박스에 체크가 되어있다면 format을 '#,##0' 으로 바꾸려고 합니다.

if Chk_Box.Checked then  begin
   if DBGridEhD.Fields[i] is TIntegerField then
      (DBGridEhD.Fields[i] as TIntegerField).DisplayFormat := '#,##0';
end;

요렇게 해줬는데요. 에러는 안나는데 무조건 디폴트로 설정해준 #,###으로 먹히더라구요.


그래서 쿼리에서 Integer값들을 Decimal(18,0)으로 convert 시켜주고
ClientDataSet의 필드를 Currency 타입으로 바꾼 후
위의 소스를

if Chk_Box.Checked then  begin
   if DBGridEhD.Fields[i] is TCurrencyField then
      (DBGridEhD.Fields[i] as TFloatField).DisplayFormat := '#,##0';
end;

요렇게 수정해주니 그제서야 됩니다.


Integer에서는 #,###이 안먹히나요?그건 아니겠죠?^^;

선배님들의 조언 부탁드립니다~!!

3  COMMENTS
  • Profile
    최용일 2009.06.17 03:36
    위 내용만 봤을때는 DB필드가 Integer형이 아닌것같은데요...
  • Profile
    뚜버기^^v 2009.06.17 18:47
    #,### 인 경우 null 값이 있는 경우 오류가 발생하는 것으로 알고 있습니다. ^^
  • Profile
    zzoo 2009.06.17 19:36
    db필드는 Integer로 해줬구요, 나중에 쿼리에서 Decimal 타입으로 Convert 를 해줘야 #,##0이 먹히더라구요.
    그리고 입력시 db에서 default는 무조건 0으로 입력하게끔 되어있어서 null은 아니구요.^^

    빠른 답변 감사합니다~!!(_ _)