filtriranje tabele po vise uslova

1

filtriranje tabele po vise uslova

offline
  • Pridružio: 04 Mar 2005
  • Poruke: 31

Kako isfiltrirati tabelu(paradox) po vise uslova,pomocu edit1.text,edit2.text,edit3.text itd...



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Jednostavno, ali i ne dovoljno dobro.
Otvori help, i pogledaj Locate komandu, kao i TLocateOptions.

Sve to ide mnogo bolje SQL-om.



offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2597
  • Gde živiš: Stara Pazova

Filtriranje baze je jako jednostavno u delphiju... Evo i primera u vezi sa ADO komponentama ( a isti je đavo i za sve ostale komponente Smile ):

ADOTable1.Filter := 'Ime = ' + QuotedStr(Edit1.Text); ADOTable1.Filtered := true;

Znači ovo će ti prikazati sve rekorde iz tabele koji imaju polje "Ime" sa vrednošću napisanom u Edit1.

E sada ako želiš da filtriraš po više kriteriojuma, tj. po više polja onda koristiš OR ili AND. Primer:

ADOTable1.Filter := 'Ime = ' + QuotedStr(Edit1.Text)     + ' AND Neopravdani > 5 OR Vladanje<5'; ADOTable1.Filtered := true;

Recimo ovo bi prikazalo sve učenike koji se zovu onako kako je napisano u Edit1 koji imaju više od 5 neopravdanih časova, ili koji imaju manje od 5 iz vladanja. Mislim primer je jači, ali mi je to palo na pamet da ti lakše objasnim filtriranje Very Happy.

Eto, to ti je to, pa sad malo experimentiši sa tim i biće to super Wink.

Uživaj!

Dodatak: Eh, da, zaboravio sam da napomenem da je QuotedStr u da bi se ako se u Edit1 nalazi Strog u filter dodalo "Strog", kako bi upit bio ispravan, pošto je polje ime tipa string Wink. I na kraju, umesto onoga
AND Neopravdani > 5
možeš da staviš i:
AND Neopravdani > '+Edit2.text
Da bi mogao da menjaš iz programa broj neopravdanih časova po kojima se filtriraju učenici i to sada radiš bez QuotedStr jer ti ne treba "5", već samo 5 u upitu, pošto je polje "Neopravdani" tipa Integer .

Eto, nadam se da sada nisam sve zapetljao i da sam bio od pomoći Smile.

Pozdrav!

offline
  • Pridružio: 04 Mar 2005
  • Poruke: 31

datamodule2.Table2.Filter := 'Datum = ' + quotedstr(edit1.Text + '*') and 'Proizvod = ' + quotedstr(edit2.Text + '*');

Pokusao sam ovako ali ne ide...zakoci mi kod predzadnjeg znaka "+"

offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2597
  • Gde živiš: Stara Pazova

A kog tipa polja ti je polje Datum, koju tačno grešku izbaci kada stane kod +-a?

offline
  • Pridružio: 04 Mar 2005
  • Poruke: 31

DATUM MI JE STRING,ZNACI NIJE GRESKA TOG TIPA,TO SAM SAVLADAO,PA NISTA MI NE IZBACI SAMO SE ZACRVENI LINIJA KODA I KURSOR SE ZAUSTAVI KOD ZNAKA "+"

offline
  • Strog  Male
  • Stručni saradnik
    Web programiranje
  • Bojan Kopanja
  • Web & Mobile developer @ ZeusSoftware
  • Pridružio: 26 Jul 2003
  • Poruke: 2597
  • Gde živiš: Stara Pazova

Hehe, a da nisi ti tu stavio breakpoint pa se zato tu zaustavlja Laughing, inače ako je greška mora ti nešto izbaciti kao objašnjenje greške. Proveri to sa breakpointom Wink...

offline
  • Pridružio: 04 Mar 2005
  • Poruke: 31

datamodule2.Table2.Filter := 'Datum = ' + quotedstr(edit1.Text + '*')and 'Proizvod = ' + quotedstr(edit2.Text + '*') ;

E ovako sam napisao i na predzadnjem znaku "+" mi stane kursor a greska je: "Operator not applicable to this operand type"

offline
  • Kaca  Female
  • Super građanin
  • Pridružio: 26 Sep 2004
  • Poruke: 1371
  • Gde živiš: blizuBG

zasto ne koristis datetimepicker1 umesto edit1?

offline
  • Pridružio: 04 Mar 2005
  • Poruke: 31

ma nije mi problem sa datumom,kad stavim samo to on odradi posao ali cim mu pridruzim ovo "and" i filtriranje po drugom edit.text-om problemi.Ne ide,ne ide pa stane...tako ti je kod mene.

Ko je trenutno na forumu
 

Ukupno su 503 korisnika na forumu :: 7 registrovanih, 1 sakriven i 495 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Bobrock1, ILGromovnik, Koridor, Krvava Devetka, MilosKop, opt1, TBF1D