繰り返しQRreportをプレビューした時のエラーを回避するには?

解決


CANDY  2008-07-16 03:13:42  No: 31278

お世話になっております。
Delphi2007においてQRReportを使用しておりますが、繰り返してプレビュー画面を表示(8回程度)すると
「frmPreviewは既に使用されています」
とエラーとなってしまいます。
していることはテーブルが使えないため、データに見立ててfrmPreviewに配列でStringListを持たせて、1行分のデータを配列に渡した後プレビューしています。preview後はfrmPreview.freeしております
Delphiも初心者、QuickReportも初心者で何が悪いのか分かりません
よろしくお願いいたします

==================< frmMain >========================
  frmReport := TfrmReport.Create(self);
  try

    frmReport.PageCount := 1;

    SetLength(frmReport.ArrayList, (stgList.RowCount-1) * (1+intPartsCnt));

    listCnt := 0;
  //StringGridの内容を編集
    for i := 1 to stgList.RowCount - 1 do begin
      frmReport.ArrayList[1] := TStringList.Create;
      frmReport.ArrayList[1].Add(stgList.Cells[1, i]);
      frmReport.ArrayList[1].Add(stgList.Cells[2, i]);
      frmReport.ArrayList[1].Add(stgList.Cells[3, i]);
      frmReport.ArrayList[1].Add(stgList.Cells[4, i]);
      frmReport.ArrayList[1].Add(stgList.Cells[5, i]);
    end;
    frmReport.TotalCount := stgList.RowCunt;

    //プレビュー
    frmReport.QuickRep1.Prepare;
    frmReport.QuickRep1.Preview;

  finally
    frmReport.Free;

  end;

==================< frmReport >==========================
procedure TfrmReport.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean);
var
begin

  if i <= TotalCount then begin
      //データ行表示
      QR_lblDetail_hinmei.Caption := ArrayList[i][1];
      QR_lblDetail_amount.Caption :=ArrayList[i][2];
      QR_lblDetail_Serial.Caption :=ArrayList[i][3];
      QR_lblDetail_Serial.Caption :=ArrayList[i][4];
      QR_lblDetail_Serial.Caption :=ArrayList[i][5];
      QR_lblDetail_Remarks.Caption := '';

       MoreData := true;
       i := i + 1;
  end else begin
     //NeedDataイベント終了
     MoreData := false;

  end;

end;


CANDY  2008-07-30 01:29:48  No: 31279

printform側で配列のエラーが出ていたようです
解決いたしました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加