[ gygy @ 09.12.2003. 22:43 ] @
Koristim ovako nesto za filtriranje baze:
ClientDataSet1.Filter := DATUM+'='''+Edit1.text+'*'''
Ovaj kod radi savrseno kada su tekstovi u pitanju.
Ali se javlja problem za datum, npr nemogu nikako podatke da filtriram po mesecu, kao ni po godini(dd.mm.gggg), dok po danu radi savrseno.
Probavao sam da stavljem i * i # ... ispred i u samom codu ali nije vredelo onda filtar nista nebi pokazivao.
Kako bi se to moglo resiti?
Pozdrav!!!
GYGY
[ gygy @ 23.12.2003. 20:46 ] @
Zna li neko?
[ Pajke @ 23.12.2003. 22:10 ] @
Pa ... pretpostavljam da ti je polje u bazi koje sadrzi datum formatirano kao polje za data-time a to nije text zato bi sadrzaj polja Edit1.text morao da konvertujes u
datatime pa tek onda da ga ubacis u filter
[ gygy @ 25.12.2003. 23:23 ] @
Nije formatirano kao datum vec kao string. Kada je kao datum onda su stalno neke greske pa sam prebacio u string (xx.xx.xxxx, mada sam stavio masku pri unosu).
I nemogu nikako resiti to filtriranje npr za godinu da napocetku xx.xx.2000, da izlista sve podatke iz 2000 god. Na koji nacin?
Pozdrav!!!
[ byTer @ 26.12.2003. 02:06 ] @
Najjjednostavnije ti je da napravis DataSet preko SQLa

na primer
Code:

SELECT * FROM Table1 WHERE DatePart("m", DatumPolje) = " +DateTime1.Date+" AND.... i tako dalje.

[ gygy @ 04.01.2004. 02:14 ] @
Da li moze da se uradi da filtrira na primer po cetvrtom i petom stringu (xx.01.xxxx i izlista sve u mesecu januaru)?
Unapred hvala
GYGY
[ -zombie- @ 04.01.2004. 04:46 ] @
ne kapiram kako neko može da bude toliko lenj da i posle par nedelja ne može da reši ovaj problem.

imaš komponentu tClientDataSet, ona ima property Filter

klikneš na komponentu na formi, klikneš na Filter property, i pretisneš F1

pročitaš blago informativni text, klikneš na link "Limiting what records appear", i ako na toj stranici ne nađeš sve šta ti treba, onda ne znam šta tražiš uopšte u programiranju...

da li može lakše od toga?
[ [email protected] @ 05.01.2004. 19:30 ] @
Da bi filtrirao bazu po datumu ili vremenu koristeci opciju Filter, samo je potrebna jedna mnogo prosta stvar, a to je da pogledas u regional settings, koji ti je format datuma ili vremena i tako ga postavis u filter.

Drugi nacin ti je mnogo jednostavniji, i ne zavisi od Regional Settingsa, a to je da na pocetku svoje aplikacije inicijalizujes globalnu promenljivu koja je sastavni deo svakog programa i deklarisana je u SysUtils i to je:

ShortDateFormat := 'dd-mm-yyyy';
ili kako vec zelis da ti bude formatiran datum>
Evo primera
Na pocetku aplikacije stavis:
ShortDateFormat := 'dd-mm-yyyy';

A onda u kodu:
ClientDataSet := 'Datum = 31-12-2004'



Ako koristis, promenljivu za datum, npr
var
MyDate : TDate;


onda bi kod bio
ClientDataSet := 'Datum = ' + DateToStr(MyDate)


Zapamti kada globalnu promenljuvu inicijalizujes na pocetku aplikacije, tokom cele aplikacije sve radi pod tim formatom.


Uz najbolje zelje
Milan

Pozdrav
[ chips @ 12.01.2004. 09:23 ] @
Probaj ovako:
TableX.filter:='imepolja='+QuoteStr((tvoj string za datum)+'*');

Pogledaj u Helpu koji je UNIT potreban za naredbu QuoteStr

Pozdrav.
[ byTer @ 12.01.2004. 16:42 ] @
Citat:
gygy:
Da li moze da se uradi da filtrira na primer po cetvrtom i petom stringu (xx.01.xxxx i izlista sve u mesecu januaru)?
Unapred hvala
GYGY


Sta fali mom resenju?
[ gygy @ 13.01.2004. 01:09 ] @
byTer ne znam, verovatno nista samo sto nisam radio nikako sa sql-om. Neznam ni kako funkcionise jedino da mi na e-mail posaljes neke osnovne funkcije. Hvala ti na trudu u svakom slucaju!!!
chips videcu za to!
Hvala u svakom slucaju!!!
GYGY
[ byTer @ 13.01.2004. 16:50 ] @
Pa ukoliko ti je vec napravljena komponenta TQuery (valjda bese) onda samo promenis svijstvo SQL ovako

Code:

myQuery.SQL.Clear;
myQuery.SQL.Add('select ***')
myQuery.Requery()

//ovde mozes alternativno da uneses i 
myquery.Close /ili .Active:=False; na pocetku
i
myquery.Close /ili .Active:=True; na kraju.


Asto se tice ovog filtera cini mi se da sluzi za filtriranje vec dobivenih rezultata Querija
[ dragana golub @ 29.01.2004. 14:06 ] @
Mozes da koristis SetRange,iliti pretragu od-do odredjenog datuma.

Table1.IndexName := 'bydatum' ;
Table1.SetRange([MaskEdit1.Text],[MaskEdit2.Text]);