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 1314 korisnika na forumu :: 36 registrovanih, 13 sakrivenih i 1265 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: Apok, babaroga, Bane san, Ben Roj, Bluper, Brana01, brundo65, cavatina, Chainsaw, Denaya, HogarStrashni, hyla, Insan, joca83, Još malo pa deda, jukeboxer, kybonacci, lcc, Mi lao shu, milutin134, nenad81, Panter, pein, Penzula, procesor, proka89, samsung, Sirius, sombrero, Stoilkovic, suponik, Tragač, Tvrtko I, uruk, Vlad000, Vlajman1957