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

master detail u qreportu

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

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

popmilan76
Programer

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



+4 Profil

icon master detail u qreportu29.03.2017. u 20:37 - pre 35 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 35 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
Programer

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



+4 Profil

icon Re: master detail u qreportu30.03.2017. u 13:04 - pre 35 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: 2608



+68 Profil

icon Re: master detail u qreportu30.03.2017. u 14:07 - pre 35 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
Programer

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



+4 Profil

icon Re: master detail u qreportu30.03.2017. u 20:13 - pre 35 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: 2608



+68 Profil

icon Re: master detail u qreportu30.03.2017. u 20:25 - pre 35 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
Programer

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



+4 Profil

icon Re: master detail u qreportu30.03.2017. u 21:51 - pre 35 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: 2608



+68 Profil

icon Re: master detail u qreportu30.03.2017. u 22:07 - pre 35 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
Programer

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



+4 Profil

icon Re: master detail u qreportu30.03.2017. u 22:18 - pre 35 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: 2608



+68 Profil

icon Re: master detail u qreportu30.03.2017. u 23:07 - pre 35 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
Programer

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



+4 Profil

icon Re: master detail u qreportu31.03.2017. u 08:54 - pre 35 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: 785
*.e-info.ba.



+61 Profil

icon Re: master detail u qreportu31.03.2017. u 14:07 - pre 35 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
Programer

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



+4 Profil

icon Re: master detail u qreportu31.03.2017. u 22:10 - pre 35 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: 785
*.e-info.ba.



+61 Profil

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

popmilan76
Programer

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



+4 Profil

icon Re: master detail u qreportu03.04.2017. u 13:25 - pre 35 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: 1238 | Odgovora: 14 ] > FB > Twit

Postavi temu Odgovori

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