퀵리포트에서 다른 컨트롤의 OnPrint 에서 QRImage 의 그림을 불러오면
다음번 출력에 그 내용이 적용이되고,
Detail 에 컨트롤이 올려진 순서대로 컨트롤의 출력이 이루어진다.
즉 어떤 컨트롤의 값에 의해 그림을 출력하고자 하면 그 컨트롤을 먼저 올려놓고,
QRImage 를 올려놓던가 아니면 올려진 QRImage 를 잘라내기 후 다시 붙여넣기 하여,
출력 순서를 뒤로 미뤄야한다.
그렇지 않으면 그림이 한 Detail 씩 밀려서 출력이 된다.


아래는 실제 사례다.

퀵리포트를 이용한 제품목록 출력중이다.
TQRImage 1개, TQRDBText 1개 를 올려놓고
TQRDBText 의 OnPrint 를 작성한다.

void __fastcall TFrmPrintCataList::QRDBText1Print(TObject *sender,
      AnsiString &Value)
{
    SET_IMAGE( QRImage1, Value.Trim() )
}

SET_IMAGE 는 QRImage1->Picture->LoadFromFile( FilePath + Value + ".JPG" ) 의 처리를
오류 처리화 함께 한 매크로 함수다.

위의 코드는 QRDBText 를 출력할 때 그 값에 해당하는 이미지를 불러와 출력하는 것이다.

잘 동작을 하여 모든 출력 양식에 적용을 하였다.
갑자기 하나씩 밀려 출력되는 것이다.
Prepare() 함수를 적용하여 그런가 생각해 봤지만 갑자기 드는 의문에
QRImage1 을 잘라냈다가 다시 붙여넣었다.
그랬더니 잘 출력되는 것이다.

기억하자!

+ Recent posts