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

master detail u qreportu

[es] :: Pascal / Delphi / Kylix :: master detail u qreportu

[ Pregleda: 1704 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

popmilan76

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



+5 Profil

icon master detail u qreportu29.03.2017. u 20:37 - pre 85 meseci
Imam qreport sa dva kverija i detail band i subdetail,gde treba da mi izlista neke usluge po korisnicima....da izgleda ovako
petar petrovic
hemijsko ciscenje 5 dinara.....
mirko mirković
susenje 10 dinara ....

Ja sam to napravio,i radi mi,ali sa tom greskom da mi izlista i one korisnike koji nemaju nista od usluga....Gde gresim?
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: master detail u qreportu29.03.2017. u 22:50 - pre 85 meseci
Nemoj uzimat u query šifre korisnika iz tabele korisnika nego iz tabele iz koje vučeš podatke, pa ti se neče pojavljivati prazni. (osim ako nije neki drugim problem posrijedi)
F
 
Odgovor na temu

popmilan76

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



+5 Profil

icon Re: master detail u qreportu30.03.2017. u 13:04 - pre 85 meseci
Bice da je nesto drugo posredi,to kod mene ne moze jednostavno

polje u tblkorisnici je tblklijentiid
a polje iz koje vucem podatke je sifraklijenta
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: master detail u qreportu30.03.2017. u 14:07 - pre 85 meseci
Koristis TQuery komponente za prikaz u reportu? Prosto u sam kveri koji lista sve korisnike ubaci uslov da postoje podaci iz tabele usluga, tako na kraju ce ostati samo oni klijenti koji imaju promet.

Code:

select 
 KL.*
from 
  KLIJENTI KL
where
  EXISTS (select 1 from USLUGE USL where USL.SIFRAKLIJENTA = KL.KLIJENTID)

 
Odgovor na temu

popmilan76

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



+5 Profil

icon Re: master detail u qreportu30.03.2017. u 20:13 - pre 85 meseci
Ja sam to radio sa dva kverija,u prvom sam stavio
select * from tblklijenti


u drugom


select * from tblhemijsko
where tblhemijsko.sifraklijenta =:sifraklijenta;


naravno,drugi ima i dodatak u vidu join-a....
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: master detail u qreportu30.03.2017. u 20:25 - pre 85 meseci
> Ja sam to radio sa dva kverija,u prvom sam stavio select * from tblklijenti

U taj treba da dodas where sekciju kao u mom primeru. Dakle da prikazes samo klijente koji imaju podatke u tblhemijsko.
 
Odgovor na temu

popmilan76

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



+5 Profil

icon Re: master detail u qreportu30.03.2017. u 21:51 - pre 85 meseci
I to sam uradio,query1 u celosti
SELECT DISTINCT TblHemijsko.SifraKlijenta, TblKlijenti.NazivKlijenta
FROM TblKlijenti LEFT JOIN TblHemijsko ON TblKlijenti.TblKlijentiID = TblHemijsko.SifraKlijenta
WHERE (((TblHemijsko.Faktura)="ne") AND ((TblHemijsko.Status)="Placeno"))
ORDER BY TblHemijsko.SifraKlijenta;


i query2 u celosti

SELECT TblHemijsko.SifraKlijenta, TblKlijenti.NazivKlijenta, TblHemijsko.DatumNaplate, TblUsluge.NazivUsluge, TblRoba.NazivRobe, TblHemijsko.Kolicina, TblHemijsko.Ukupno
FROM TblUsluge INNER JOIN (TblRoba INNER JOIN (TblKlijenti INNER JOIN TblHemijsko ON TblKlijenti.TblKlijentiID = TblHemijsko.SifraKlijenta) ON TblRoba.TblRobaID = TblHemijsko.SifraRobe) ON TblUsluge.SifraUsluge = TblHemijsko.SifraUsluge
WHERE TblHemijsko.Faktura ="ne" AND TblHemijsko.Status ="Placeno" AND TblHemijsko.Sifraklijenta =:tblklijenti.tblklijentiid ;

Master je query1 a details je query2

iz prve vucem nazivklijenta a iz druge nazivuslkuge,nazivrobe,ukupno...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: master detail u qreportu30.03.2017. u 22:07 - pre 85 meseci
Dajes kontradiktorne informacije i kverije.
Tvoje originalno pitanje je "radi mi,ali sa tom greskom da mi izlista i one korisnike koji nemaju nista od usluga....Gde gresim? "

Odgovor na to pitanje je, u kveriju ti se nalaze podaci o klijentima koji nemaju promet, ako ne zelis da ih vidjas moras ih eliminisati. To mozes uraditi putem where klauzule i EXISTS operatera (slao sam primer).
Za ove kverije koje si sad poslao se to radi na drugaciji nacin, koriscenjem INNER joina umesto LEFT joina.
 
Odgovor na temu

popmilan76

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



+5 Profil

icon Re: master detail u qreportu30.03.2017. u 22:18 - pre 85 meseci
Savkicu,ako mi verujes uradio sam sa svim mogucim primerima,i left i inner join i isto je...Najgore,sto imam gotove aplikacije koje sam uradio na slican nacin i tamo rade...ovde mi je razlika samo,sto mi polja nisu ista u dva kverija,jedno je sifraklijenta,a drugo tblklijentiid...
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: master detail u qreportu30.03.2017. u 23:07 - pre 85 meseci
Negde gresis, gde ne znam dok ne probam na podacima. Uzmi jednog klijenta koji se pojavljuje a ne bi trebalo i otkrij zasto kveri koji koristis nije dobar.
 
Odgovor na temu

popmilan76

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



+5 Profil

icon Re: master detail u qreportu31.03.2017. u 08:54 - pre 85 meseci
Probao sam,i sada desava se sledece da se ne pojavljuju svi iz tabele klijenti,vec svi iz tabele promet,i oni koji zadovoljavaju i oni koji ne zadovoljavaju uslov,s tim sto mi ovaj drugi bira podatke od datuma do datuma,i kada nema nista pojavi se samo klijenta nista u subdetail...Da li treba nesto u ovom qreportu da se podesi...
 
Odgovor na temu

Rapaic Rajko
Bgd

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



+62 Profil

icon Re: master detail u qreportu31.03.2017. u 14:07 - pre 85 meseci
Citat:
popmilan76: I to sam uradio,query1 u celosti
SELECT DISTINCT TblHemijsko.SifraKlijenta, TblKlijenti.NazivKlijenta
FROM TblKlijenti LEFT JOIN TblHemijsko ON TblKlijenti.TblKlijentiID = TblHemijsko.SifraKlijenta
WHERE (((TblHemijsko.Faktura)="ne") AND ((TblHemijsko.Status)="Placeno"))
ORDER BY TblHemijsko.SifraKlijenta;


i query2 u celosti

SELECT TblHemijsko.SifraKlijenta, TblKlijenti.NazivKlijenta, TblHemijsko.DatumNaplate, TblUsluge.NazivUsluge, TblRoba.NazivRobe, TblHemijsko.Kolicina, TblHemijsko.Ukupno
FROM TblUsluge INNER JOIN (TblRoba INNER JOIN (TblKlijenti INNER JOIN TblHemijsko ON TblKlijenti.TblKlijentiID = TblHemijsko.SifraKlijenta) ON TblRoba.TblRobaID = TblHemijsko.SifraRobe) ON TblUsluge.SifraUsluge = TblHemijsko.SifraUsluge
WHERE TblHemijsko.Faktura ="ne" AND TblHemijsko.Status ="Placeno" AND TblHemijsko.Sifraklijenta =:tblklijenti.tblklijentiid ;



Prvi query: imas select from TblKlijenti (master); drugi query: select from TblUsluge (detail)

Prvi query: LEFT JOIN TblHemijsko ON TblKlijenti.TblKlijentiID = TblHemijsko.SifraKlijenta, a treba INNER JOIN TblUsluge ON TblKlijenti.TblKlijentiID = TblUsluge.SifraKlijenta.
Vidim da ti u prvom query-ju treba i tabela TblHemijsko; dodaj jos ovo LEFT JOIN TblHemijsko ON TblKlijenti.TblKlijentiID = TblHemijsko.SifraKlijenta ispod prvog join-a i trebalo bi da proradi.

Pozz
 
Odgovor na temu

popmilan76

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



+5 Profil

icon Re: master detail u qreportu31.03.2017. u 22:10 - pre 85 meseci
Ovo bas ne razumem,jel to znaci da u prvom kveriju imam i inner join i left join....
 
Odgovor na temu

Rapaic Rajko
Bgd

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



+62 Profil

icon Re: master detail u qreportu03.04.2017. u 13:03 - pre 85 meseci
Da, znaci upravo to. oba join-a u master select-u.
Jesi li probao?
 
Odgovor na temu

popmilan76

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



+5 Profil

icon Re: master detail u qreportu03.04.2017. u 13:25 - pre 85 meseci
Od silnog probanja,uspeo sam sa jednim queryem,i meni to radi...evo kako...
RepIzvestaj.adoquery1.Close;
RepIzvestaj.adoquery1.SQL.Clear;
RepIzvestaj.adoquery1.SQL.Add('SELECT * FROM TblUsluge ');
RepIzvestaj.adoquery1.SQL.Add('INNER JOIN (TblRoba INNER JOIN (tblklijenti INNER JOIN TblHemijsko ON tblklijenti.TblKlijentiID = TblHemijsko.SifraKlijenta) ON TblRoba.TblRobaID = TblHemijsko.SifraRobe) ON TblUsluge.SifraUsluge = TblHemijsko.SifraUsluge');
RepIzvestaj.adoquery1.SQL.Add('where TblHemijsko.Status = "Placeno" AND TblHemijsko.Faktura = "ne" ');
RepIzvestaj.adoquery1.SQL.Add('and TblHemijsko.DatumNaplate BETWEEN :pocetak AND :kraj');
RepIzvestaj.adoquery1.Parameters.ParamByName('pocetak').Value := DateToStr(datetimepicker1.Date);
RepIzvestaj.adoquery1.Parameters.ParamByName('kraj').Value := DateToStr(datetimepicker2.Date);

RepIzvestaj.adoquery1.Open;

Mada mi ovo nije resenje iz razloga,sto kada imam istog klijenta,a razlicite dane,onda oni idu posebno,pa mi se desava da ih imam dva....

[Ovu poruku je menjao popmilan76 dana 03.04.2017. u 14:41 GMT+1]
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: master detail u qreportu

[ Pregleda: 1704 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

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