퀵리포트에서 dbtext로 값을 뿌려주기위해 아래와 같이 코딩하였습니다.
이벤트는 CalcFields 를 사용하구요.
근데 이상하게 Qry_fncform 안의 로우수는 22개인데 값은 젤 처음 것 한개만 출력이 되네요...
그것고 공란으로... 뭐가 문제인지 도통 알수가 없네요...
고수님들 보시기에 뭐가 문제인지 무지한 제게 좀 알려주시면 감사하겠습니다.
IF NOT Qry_fncform.ISEMPTY THEN
BEGIN
Qry_fncform.Filter := 'ACC_CD = '''+ Qry_fncform.FIELDBYNAME('ACC_CD').ASSTRING +'''';
Qry_fncform.FIRST;
WHILE NOT Qry_fncform.EOF DO
BEGIN
G_SUM := Qry_fncform.FieldByName('공통').AsFLOAT*G_MAG;
S_SUM := Qry_fncform.FieldByName('공통').AsFLOAT*S_MAG;
H_SUM := Qry_fncform.FieldByName('공통').AsFLOAT*H_MAG;
SA_SUM := Qry_fncform.FieldByName('공통').AsFLOAT*SA_MAG;
LE_SUM := Qry_fncform.FieldByName('공통').AsFLOAT*LE_MAG;
L_SUM := Qry_fncform.FieldByName('공통').AsFLOAT*L_MAG;
GO := Qry_fncform.FieldByName('골프팀').AsFLOAT + G_SUM;
SW := Qry_fncform.FieldByName('골프팀').AsFLOAT + S_SUM;
HE := Qry_fncform.FieldByName('골프팀').AsFLOAT + H_SUM;
SA := Qry_fncform.FieldByName('골프팀').AsFLOAT + SA_SUM;
LE := Qry_fncform.FieldByName('골프팀').AsFLOAT + LE_SUM;
LI := Qry_fncform.FieldByName('골프팀').AsFLOAT + L_SUM;
Qry_fncform.NEXT;
END;
Qry_fncform.FieldByName('GO').AsFLOAT := GO;
Qry_fncform.FieldByName('SW').AsFLOAT := SW;
Qry_fncform.FieldByName('HE').AsFLOAT := HE;
Qry_fncform.FieldByName('SA').AsFLOAT := SA;
Qry_fncform.FieldByName('LE').AsFLOAT := LE;
Qry_fncform.FieldByName('LI').AsFLOAT := LI;
END;
filter를 왜 해주시는지?
그리고..filter string을 지정하고 나서 filtered 속성이 true인지 여부검사는??
그리고 해당 이벤트는
만약 디비 그리드에 연결되어있다면 data를 display하기위해 요구될때 해당 이벤트가 수행됩니다.
코드 맨 윗부분에 showmessage를 띄워서 확인해 보세요..
아니면..디버깅 모드에서 확인해 보시는것도..
제가 보기엔 저 안에서 저렇게..루프를 돌릴 필요가 없어 보입니다.
만약 한번만 계산을 해야한다면 afteropen 이벤트 등을 사용하시는게..
그럼..