Več reportov v composite report

Vse v zvezi s tiskanjem, urejanjem izpisov in reporting komponentami.
Odgovori
PeroDifovec
Prispevkov: 135
Pridružen: 29.10.2001 15:15:49

Več reportov v composite report

Odgovor Napisal/-a PeroDifovec » 17.04.2009 11:06:32

Zanima me kako bi dal en isti report v composite report.

Imam namreč
Rep1: TQuickRep;
CR1: TQRCompositeReport;


Kar bi rad naredil je da bi dvakrat dal v composite report en quickreport, ampak pod različnimi filtri. Se pravi. na prvi strani bi bil npr. izpisan izpis pod enimi filtrirnimi pogoji, na drugi pa po drugih.

procedure TForm1.CR1AddReports(Sender: TObject);
begin
Refresh_data_for_report_1;
CR1.Reports.Add(Rep1);
Refresh_data_for_report_2;
CR1.Reports.Add(Rep1);
end;

Osnovno vprašanje pa je ali je možno dati en QuickReport dvakrat v Composite report?

Hvala in lp

SimonG
Prispevkov: 86
Pridružen: 12.08.2002 01:04:31

Več reportov v composite report

Odgovor Napisal/-a SimonG » 17.04.2009 14:02:07

Pozdravljen !

deluje...

lp simon

SimonG
Prispevkov: 86
Pridružen: 12.08.2002 01:04:31

Več reportov v composite report

Odgovor Napisal/-a SimonG » 17.04.2009 14:09:44

sorry - prehitro !!!

med dodajanjem reportov mi zadrži prvi filter.
sam sem to rešil z uporabo dveh tabel ...

simon

Lenny
Prispevkov: 500
Pridružen: 18.12.2003 09:55:16

Več reportov v composite report

Odgovor Napisal/-a Lenny » 17.04.2009 19:07:14

Servus
Ej ne vem kaj te matra. Sigurno do cilja z copy / paste reporta in tabele pa bo. Drgač pa na before print bandov ali reporta kaj napleti.

PeroDifovec
Prispevkov: 135
Pridružen: 29.10.2001 15:15:49

Več reportov v composite report

Odgovor Napisal/-a PeroDifovec » 19.04.2009 16:26:14

med dodajanjem reportov mi zadrži prvi filter. sam sem to rešil z uporabo dveh tabel ...

Misliš dveh reportov?

Ne najdem kateri bi bil tisti dogodek, ko bi naredo refresh, da bi začelo drugega printat.

Lenny
Prispevkov: 500
Pridružen: 18.12.2003 09:55:16

Več reportov v composite report

Odgovor Napisal/-a Lenny » 20.04.2009 19:45:05

Pe'er, kaj pa če bi prpel samo enkrat report in preskrbiš, da se printa tolikokrat kot rabiš. Pa na before print prpraviš podatke

SimonG
Prispevkov: 86
Pridružen: 12.08.2002 01:04:31

Več reportov v composite report

Odgovor Napisal/-a SimonG » 21.04.2009 08:38:53

pozdravljen !

v datamodulu imam 2 tabeli ( npr t1 in t2 urejeni po različnih indeksih... ), ki imata povezavo na isto datoteko (npr. artikli).
Reporte oblikujem zmeraj z uporabo matične datoteke (npr. artikli), v programu pa pred izpisom priredim DataSet tisti tabeli
ki mi glede na index najbolj ustrza, pol pa izberem še željeni filter...
Tako na hitro in na pamet.

lp simon

PeroDifovec
Prispevkov: 135
Pridružen: 29.10.2001 15:15:49

Več reportov v composite report

Odgovor Napisal/-a PeroDifovec » 21.04.2009 10:14:09

Istega reporta mislm, da ne gre osveževat na enem composit reportu.

PeroDifovec
Prispevkov: 135
Pridružen: 29.10.2001 15:15:49

Več reportov v composite report

Odgovor Napisal/-a PeroDifovec » 21.04.2009 10:31:58

Uspelo.


Dal sem Report na posebno formo.

Normalno se del izpis tako:

Koda: Izberi vse

  
If fmReport=Nil then fmReport:=TfmReport.create(self);
fmReport.filter:=' WHERE LEFT(NAZIV1, 1)=''A'' ';
fmReport.Acrefresh.Execute;
fmReport.QRRep.Preview;
fmReport.free;

Zdaj pa sem izpeljal takole. Izpis sem dal na posebno formo, na formi naredil acrefresh (kjer osvežim podatke). Nato pa na composite reportu kličem zadevo iz izpeljanih form, kjer vsako osvežim po svoje. NIČ PODVOJENE KODE, NIČ KOPIRANEGA REPORTA, NIČ PROBLEMOV :)
:

Koda: Izberi vse

  

    CR1: TQRCompositeReport;
  public
    fm1: TfmReport;
    fm2: TfmReport;
.
.
.


procedure TForm1.Button2Click(Sender: TObject);
begin
FM1:=TfmReport.create(self);
FM1.Filter:=' WHERE LEFT(NAZIV1, 1)=''A'' ';
FM1.Acrefresh.Execute;


FM2:=TfmReport.create(self);
FM2.Filter:=' WHERE LEFT(NAZIV1, 1)=''B'' ';
FM2.Acrefresh.Execute;


CR1.Preview; // na addreports pa sem dal izpis iz obeh izpeljanih formic
end;


procedure TForm1.CR1AddReports(Sender: TObject);
begin
CR1.Reports.Add(FM1.QRRep);
CR1.Reports.Add(FM2.QRRep);
end;

Izpis pa zgleda takole:

Slika

Odgovori