Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

quick report je spor

[es] :: Pascal / Delphi / Kylix :: quick report je spor

Strane: 1 2

[ Pregleda: 3941 | Odgovora: 32 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

popmilan76
Programer

Član broj: 295089
Poruke: 1156
*.dynamic.isp.telekom.rs.



+4 Profil

icon quick report je spor03.12.2016. u 13:40 - pre 44 meseci
Desilo mi se da je qreport isuvise spor,a nisu neki zahtevni upiti,kada to uradim u obicnoj tabeli,bude ok,ali na izvestaj,oko 10-tak sekundi i vise...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2635



+69 Profil

icon Re: quick report je spor03.12.2016. u 17:53 - pre 44 meseci
Jesi li probao da prodjes kroz sve recorde upita i opet je brzi od QR? Mozda ima previse strana ili nekih slika, nazalost tu mislim da nema sta mnogo da se uradi ako je sam QR spor, pokusaj sa novijom verzijom ili nekim drugim reportingom.
 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1156
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: quick report je spor03.12.2016. u 19:32 - pre 44 meseci
ćSlika nemam,ali u tabeli je brzo i jedna strana je zua sada....
4
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2635



+69 Profil

icon Re: quick report je spor03.12.2016. u 20:54 - pre 44 meseci
Jedna strana, pa to je onda do 50 rekorda, sto nije nista, QR sigurno tu nece prvaviti problem, nesto drugo te zeza.
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: quick report je spor04.12.2016. u 11:10 - pre 44 meseci
Daj kod kako puniš dataset i kako pozivaš qreport.
F
 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1156
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: quick report je spor04.12.2016. u 15:21 - pre 44 meseci
Trri upita i to izgleda ovako


1

SELECT Klijenti.SifraKlijenta, Klijenti.Naziv, Meseci.MeseciID, Meseci.Mesec, Godine.Godina, Klijenti.Telefon, Klijenti.Telefon1 FROM Meseci, Godine, Klijenti
WHERE ((([godina]*100+[MeseciID])>=Year([DatumUnosa])*100+Month([DatumUnosa])))
ORDER BY Klijenti.SifraKlijenta, Godine.Godina, Meseci.MeseciID;


2

SELECT DISTINCT SveUplate.SifraKlijenta, SveUplate.Naziv, SveUplate.Telefon, SveUplate.Telefon1
FROM SveUplate LEFT JOIN Promet ON (SveUplate.Godina = Promet.Godina) AND (SveUplate.MeseciID = Promet.Mesec) AND (SveUplate.SifraKlijenta = Promet.KlijentiID)
WHERE (((Promet.Mesec) Is not Null) AND ((Promet.Godina) Is not Null));


3

SELECT SveUplate.SifraKlijenta, SveUplate.Naziv, SveUplate.Mesec, SveUplate.Godina, SveUplate.Telefon, SveUplate.Telefon1 FROM SveUplate
LEFT JOIN Promet ON (SveUplate.SifraKlijenta = Promet.KlijentiID) AND (SveUplate.MeseciID = Promet.Mesec) AND (SveUplate.Godina = Promet.Godina)
WHERE (((Promet.Mesec) Is Not Null) AND ((Promet.Godina) Is Not Null)) and SveUplate.SifraKlijenta =:SifraKlijenta
ORDER BY SveUplate.SifraKlijenta, SveUplate.Godina, SveUplate.MeseciID;

i jedan event u before print,gde puni mesece i godine koji nisu placeni.....


 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 790
134.90.128.*



+61 Profil

icon Re: quick report je spor05.12.2016. u 20:34 - pre 44 meseci
A kako ide kod tog event-a? Jesi li probao bez njega?

Pozz
 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1156
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: quick report je spor05.12.2016. u 21:16 - pre 44 meseci
Event izgleda ovako i ne mogu bez njega:

procedure TRepIzvestaj.QRSubDetail1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
var
strTempMemo : string;

begin

with neplaceno do
begin
Close;

Open;

First;
qrmemo1.Lines.Clear;

While not EOF do
begin
strTempMemo := strTempMemo + Fields[2].AsString + ' - ' + Fields[3].AsString + ' , ';


Next;

end;

QRMemo1.Lines.Add(strTempMemo);
end;
end;

end.


On puni qrmemo1 sa podacima gde izlazi meseci i godine....
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2635



+69 Profil

icon Re: quick report je spor05.12.2016. u 21:50 - pre 44 meseci
Hm, proveri prvo koliko se puta poziva taj BeforePrint event, to moze biti veci broj i kako ti svaki put otvaras/zatvaras tabelu to moze da koci.
Dobio si lepo pitanje, sta se desava bez njega, uradi probu (zanemari sta treba da vidis) i gledaj vreme izvrsavanja, ako je stampa brza onda je tu problem.
Ako je do te tabele onda dataset otvori jednom (van QR eventa) i nju koristi za sve operacije.


 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1156
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: quick report je spor05.12.2016. u 22:05 - pre 44 meseci
Bez njega je to nesto brze,ali moram ga imati zbog punjenja memo-ane znam kako drugacije...Kada ga aktiviram u Access,odmah mi izlazi,rec je o upitu gde izlazi oko 6000 recorda...
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: quick report je spor06.12.2016. u 14:33 - pre 44 meseci
Mislim da si uhvatio krivi pristup. QuickReport je dizajniran da radi sa datasetovima i tu je veoma moćan. Siguran sam da taj izvještaj možeš dobiti kombinirajući datasetove i datasourceve, bez da to radiš u beforeprint eventu. Beforeprint ti se inače po defaultu događa 2 puta mi se čini prije nego se report pojavi na ekranu, a moguće i više puta ako je u nekom bandu.

Dakle, pogledaj primjere kako koristiti master detail u quickreportu.

Primjer: quickreport dataset dataSetPodaci
groupheader band dataset dataSetPodaci
detailsband dataSetPodaciNeplaceno

itd...

dakle dva dataseta, jedan datasource (dataSourcePodaci). property dataset od dataSourcePodaci je dataSetPodaci a property datasource od dataSetPodaciNeplaceno je dataSourcePodaci. I onda u upita dataSetNeplaceno koristiš parametar, npr. WHERE NEKOPOLJE = :NEKOPOLJE koji se nalazi u dataSetPodaci.
F
 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1156
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: quick report je spor06.12.2016. u 19:31 - pre 44 meseci
Da,to je u redu da su mi podaci vertikalni,ali ako su horizontalni ne znam drugacije....sem ovako......
podaci mi izlaze ovako
petar petrovic
januar 2016,februar 2016,mart 2016...itd


a ne treba mi horizontalno
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2635



+69 Profil

icon Re: quick report je spor06.12.2016. u 22:42 - pre 44 meseci
Kako ces da prikazes podatke je nebitno, horizontalno/vertikalno, tvoj je izbor. Mi ti pricamo o datasetu i nepotrebnom otvaranju x puta. Imas dve mogucnosti
a) da prihvatis brzinu kakva je i nista ne menjas
b) da otvoris jednom dataset (tipa master/detail relacija) i koristis ga za ceo report, racunam da je izmena reda velicine 10 linija koda.
 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1156
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: quick report je spor07.12.2016. u 08:48 - pre 44 meseci
Ja bih to prikazao kao sto kazes po drugoj opciji,ali ne znam kako...jedino sto sam uspeo jeste ovako....kako qrdbtexdt da nateram da pise horizontalno,jedino sam uspeo ovako preko qrmemo.....i ovim eventom...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2635



+69 Profil

icon Re: quick report je spor07.12.2016. u 13:21 - pre 44 meseci
Memo je u redu, i punjenje u eventu ovde pricamo o nepotrebnom otvaranju/zatvaranju dataseta u eventu, to je uzrok usporenja.
 
Odgovor na temu

Rapaic Rajko
Bgd

Član broj: 4105
Poruke: 790
*.e-info.ba.



+61 Profil

icon Re: quick report je spor08.12.2016. u 11:05 - pre 44 meseci
Cek malo...

Pogledao sam tvoje upite gore, i video sam u trecem uslov/parametar :SifraKlijenta.
Pitanje: ima li nekog upliva taj parametar u upitu 'neplaceno' koji otvaras/zatvaras/citas u event-u BeforePrint? Ako NEMA, sto to ne iscitas u string na pocetku stampe celog report-a, koji (string) posle samo kopiras u Memo u event-u?

Pozz
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: quick report je spor08.12.2016. u 11:18 - pre 44 meseci
Problem je bio u LEFT JOIN-u u upitu koji je bio povezan na datasource gdje je vukao sifraklijenta. Kada sam mu to promjenio na klasičan JOIN izvještaj se izvrši za možda 1-2sec. Ali da budem iskren nije mi točno jasno zašto je toliko drastično sporiji left join (makar nisam puno proučavao).
F
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2635



+69 Profil

icon Re: quick report je spor08.12.2016. u 14:00 - pre 44 meseci
> Problem je bio u LEFT JOIN-u u upitu koji je bio povezan na datasource gdje je vukao sifraklijenta. Kada sam mu to promjenio na
> klasičan JOIN izvještaj se izvrši za možda 1-2sec. Ali da budem iskren nije mi točno jasno zašto je toliko drastično sporiji left
> join (makar nisam puno proučavao).

@popmilan76, molim te pisi kvalitetnija pitanja, u prvoj poruci (i naslovu teme) si napisao da je QR spor dok taj upit van QR se izvrši brzo. Iz rešenja je očigledno da nisi koristio iste upite, da smo to znali na početku sigurno bi se brže i lakše došlo do rešenja.

LEFT JOIN uzima celu tabelu dok INNER JOIN samo matching slogove, verovatno je tabela veca ili Access ne optimizuje dobro upite.
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: quick report je spor08.12.2016. u 14:05 - pre 44 meseci
Citat:
savkic: > Problem je bio u LEFT JOIN-u u upitu koji je bio povezan na datasource gdje je vukao sifraklijenta. Kada sam mu to promjenio na
> klasičan JOIN izvještaj se izvrši za možda 1-2sec. Ali da budem iskren nije mi točno jasno zašto je toliko drastično sporiji left
> join (makar nisam puno proučavao).

@popmilan76, molim te pisi kvalitetnija pitanja, u prvoj poruci (i naslovu teme) si napisao da je QR spor dok taj upit van QR se izvrši brzo. Iz rešenja je očigledno da nisi koristio iste upite, da smo to znali na početku sigurno bi se brže i lakše došlo do rešenja.

LEFT JOIN uzima celu tabelu dok INNER JOIN samo matching slogove, verovatno je tabela veca ili Access ne optimizuje dobro upite.


Znam to, ali razlika je doslovno 1-2s prema 10-15s, po meni je to puno previše. Nisam gledao koliko slogova mu ima tabela, ali mislim da nije preko 5000. Tako da po meni lako moguće da tu i access igra ulogu. Probao sam taj upit sa left join izvršiti u accessu, ali samo samo jednim sifraklijenta i izvršio ga je trenutno, pa nisam niti pokušavao sa svim sifraklijenta, ali na kraju se ipak ispostavilo da je u njemu problem.
F
 
Odgovor na temu

popmilan76
Programer

Član broj: 295089
Poruke: 1156
*.dynamic.isp.telekom.rs.



+4 Profil

icon Re: quick report je spor08.12.2016. u 15:37 - pre 44 meseci
Isti upit je radjen u reportu i tabeli,to jeste istina,i isti taj upit u accessu se izvrsi oidmah,samo nece u qreportu....u tabeli,manje od sekunde,a u reportu mu treba 12 sekundi...i captipicard mi je pobrisao nepotrebna polja,posto sam koristio neka koja mi nisu trebala,tako da je i to malo pravilo problemupite sam pravio u access,jer mi je tako lakse,i samo ih prneo u report i delphi
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: quick report je spor

Strane: 1 2

[ Pregleda: 3941 | Odgovora: 32 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.