퀵리포트를 사용하여 통계 작업을 하고 있습니다.
다이너믹하게 TQRExpr 를 사용하여 Expression에 각 필드에 대한 Sum을 하고 있는데요
단위가 21억이 넘어가니 integer overflow 에러가 발생합니다.
해결할 수 있는 방법이 있나요?
아래와 같이 선언하여 사용하고 있는데요.
QRSummery:= TQRExpr.Create(self);
QRSummery.Name:= 'QRSummery'+IntToStr(i);
QRSummery.Parent:= QRBand2;
QRSummery.AutoSize:= False;
QRSummery.Alignment:= DBGrid.Columns[i].Alignment;
QRSummery.Transparent:= True;
QRSummery.Font.Style := QRSummery[i].Font.Style + [fsBold];
QRSummery.Left:= Startleft;
QRSummery.Top:= 8;
QRSummery.Width:= Round(DBGrid.Columns[i].Width * widthRatio);
QRSummery.Expression:= 'Sum('+DBGrid.Columns[i].FieldName+')';
QRSummery.OnPrint:= ExtChange;
QRSummery.Enabled:= True;
integer의 한계가 21억이라 나는 에러인 것 같은데 QRSummery의 타입을 새로 지정해 줄 수
있는 것도 아닌 것 같고 어느 부분을 수정해야 할 지를 모르겠네요.
도움 부탁드립니다. 감사합니다.
currency 변수를 써보세요~
그리고 Summery 를 안써도
QRLabel를 이용하셔도 되는뎅 ^^
농협 플그램 할때 저두 인티져땜시 혼났어요~
참고가 되었는지 몰겠네요~~
저두 아직 초급이라서 ^^
열프하세요 ^^