Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 14 odgovora
  • 3.258 pregleda

Najnovija ↓

master detail u qreportu 29.03.2017. u 21:37 · pre 116 meseci #1
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?
Re: master detail u qreportu 29.03.2017. u 23:50 · pre 116 meseci #2
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)
Potpis
F
Re: master detail u qreportu 30.03.2017. u 14:04 · pre 116 meseci #3
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
Re: master detail u qreportu 30.03.2017. u 15:07 · pre 116 meseci #4
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)
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: master detail u qreportu 30.03.2017. u 21:13 · pre 116 meseci #5
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....
Re: master detail u qreportu 30.03.2017. u 21:25 · pre 116 meseci #6
> 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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: master detail u qreportu 30.03.2017. u 22:51 · pre 116 meseci #7
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...
Re: master detail u qreportu 30.03.2017. u 23:07 · pre 116 meseci #8
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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: master detail u qreportu 30.03.2017. u 23:18 · pre 116 meseci #9
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...
Re: master detail u qreportu 31.03.2017. u 00:07 · pre 116 meseci #10
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.
Potpis
Do not be a help vampire (http://slash7.com/pages/vampires), use the google.

How to ask questions the smart way:
http://www.catb.org/~esr/faqs/smart-questions.html
http://solair.eunet.rs/~fangor...stions/smart-questions.sr.html
Re: master detail u qreportu 31.03.2017. u 09:54 · pre 116 meseci #11
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...
Re: master detail u qreportu 31.03.2017. u 15:07 · pre 116 meseci #12
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
Re: master detail u qreportu 31.03.2017. u 23:10 · pre 116 meseci #13
Ovo bas ne razumem,jel to znaci da u prvom kveriju imam i inner join i left join....
Re: master detail u qreportu 03.04.2017. u 14:25 · pre 116 meseci
izmenjeno 1 put, poslednji put popmilan76 03.04.2017. u 14:41
  1. popmilan7603.04.2017. u 14:41zapis iz teksta poruke
#15
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....
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme