我一有兩個QR報表的頁面,初始基本代碼如下:我想知道它能不能復用
procedure TprodDayReportFrm1.ReportPrint(node: TTreeNode; total: boolean);
begin
  if node = nil then exit;
  case rg1.ItemIndex of
    0:
      with TdayProdAcceptRep.Create(nil) do
      begin
        seldate.Caption := formatdatetime('從  yyyy年mm月dd日', ds.Date) +
          formatdatetime('   到  yyyy年mm月dd日', de.Date);
        pridate.Caption :=
          formatdatetime('打印日期:yyyy-mm-dd HH:mm:ss', getdbdatetime);
        adoquery1.Close;
        ADOQuery1.Parameters.ParamByName('sd').Value := ds.Date;
        ADOQuery1.Parameters.ParamByName('ed').Value := de.Date;
        ADOQuery1.Parameters.ParamByName('prodid').Value := mstr(node.Text);
        ADOQuery1.Parameters.ParamByName('level').Value := node.Level;
        ADOQuery1.Parameters.ParamByName('total').Value := total;
        if total then
        begin
          //QRGroup1.Expression := '';
          QRBand1.Free;
        end;
        ADOQuery1.Open;
        QuickRep1.Prepare;
        QuickRep1.Preview;
        ADOQuery1.Close;
        close;
        free;
      end;
    1:
      with TdayProdDrawRep.Create(nil) do
      begin
        seldate.Caption := formatdatetime('從  yyyy年mm月dd日', ds.Date) +
          formatdatetime('   到  yyyy年mm月dd日', de.Date);
        pridate.Caption :=
          formatdatetime('打印日期:yyyy-mm-dd HH:mm:ss', getdbdatetime);
        adoquery1.Close;
        ADOQuery1.Parameters.ParamByName('sd').Value := ds.Date;
        ADOQuery1.Parameters.ParamByName('ed').Value := de.Date;
        ADOQuery1.Parameters.ParamByName('prodid').Value := mstr(node.Text);
        ADOQuery1.Parameters.ParamByName('level').Value := node.Level;
        ADOQuery1.Parameters.ParamByName('total').Value := total;
        if total then
        begin
          //QRGroup1.Expression := '';
          QRBand1.Free;
        end;
        ADOQuery1.Open;
        QuickRep1.Prepare;
        QuickRep1.Preview;
        ADOQuery1.Close;
        close;
        free;
      end;
    2: ;
  end;
end;