[ CaSper01 @ 24.11.2007. 16:42 ] @
Pozdrav svima,
Potrebna mi je hitno Vasa pomoc.Radim na jednom programu za DVD klub i imam problema.Radim sa tabelama BDTabels znaci ne koristim SQL.Sve je mi radi ok:unos datuma ,filmova ,korisnika...jedini problem je kad film iznamim na recimo 3 dana a korisnik ne vraca, kako bi mogao da odradim filtriranje; tj. sve korisnike koje ne vracaju na vreme da se automatsko menja status ili tako nesto.Za filtriranje sam koristio DBPro komponentu.
Hvala unapred
[ savkic @ 24.11.2007. 23:52 ] @
> ok:unos datuma ,filmova ,korisnika...jedini problem je kad film iznamim na recimo 3 dana a korisnik ne vraca, kako bi mogao da odradim
> filtriranje; tj. sve korisnike koje ne vracaju na vreme da se automatsko menja status ili tako nesto.Za filtriranje sam koristio DBPro komponentu.

Filtriranje je jedno a promena statusa tj. izmene u tabeli nešto drugo, nije jasno šta tebi od ta dva treba. Ako nećeš da koristiš TQuery onda u TTable imaš Filter property gde možeš upisati željeni uslov ili OnFilterRecord gde možeš ispitati uslov. A izmenu statusa (pretpostavljam da je to neko polje) radiš sa:
Code:

Table.Edit;
Table.FieldByName('STATUS').AsString := '1';
Table.Post;


Mislim da ti je bolje da umesto statusa držiš informaciju koliko dana kasni, odnosno kada je iznajmio i koliko je dana prošlo od tada.
[ CaSper01 @ 25.11.2007. 02:21 ] @
Vidi ovako da Vam pojasnim situaciju.Unosim korisnike,unosim datum iznajmljvanja, po default ima vreme vracanja recimo 3 dana.Ukoliko to vreme istakne automatski da se taj korisnik prebaci u drugi status.Najvaznije je da ja mogu da listam korisnike koje ne vracaju na vreme tj. ciji je period od tri dana isteko.
Mislim da sam sad malo jasnije opisao moj problem
[ savkic @ 25.11.2007. 10:02 ] @
> Najvaznije je da ja mogu da listam korisnike koje ne vracaju na vreme tj. ciji je period od tri dana isteko.

Šta ti je konkretno problem? Da li si probao pomoću Filter svojstva ili OnFilterRecord (bolja varijanta)?
[ CaSper01 @ 25.11.2007. 14:26 ] @
Resen problem.
Svaka cast, care
Evo ovako sam resio problem:

procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := Danasnji_Datum.Date > DataSet['Datum.Iznajmljvanja'] + 3;
end;

To je ono sto sam trazio..... Hvala jos jednom
[ CaSper01 @ 30.11.2007. 20:50 ] @
Pozdrav,
Opet je.Pojavio mi se novi problem.
Kada sam postavio filer panel i dodao ovo:

procedure TForm1.filterFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := Danasnji_datum > DataSet['datumiznajmljivanja'] +30;
end;

/////Filter ON
procedure TForm1.BitBtn3Click(Sender: TObject);
begin
filter.Filtered:=true;
end;

////Filter OFF
procedure TForm1.BitBtn2Click(Sender: TObject);
begin
filter.Filtered:=false;
end;

Filtriranje po datumu radi ali mi zeza sve ostalo.Ne mogu da filtriram po imenu, prezimenu ....
Da li je potrebno da se postavi neki uslov ili sta vec.
Probao sam da odradim filter i kodom ali isti slucaj.
[ savkic @ 01.12.2007. 09:29 ] @
> Filtriranje po datumu radi ali mi zeza sve ostalo.Ne mogu da filtriram po imenu, prezimenu ....
> Da li je potrebno da se postavi neki uslov ili sta vec. Probao sam da odradim filter i kodom ali isti slucaj.

Uslov postavljaš na isti način kao i za datum u OnFilterRecord ili u Filter svojstvu, verovatno si nešto pogrešno napisao, pokaži kod za filtriranje.
[ CaSper01 @ 01.12.2007. 18:46 ] @
procedure Filter;
var
sField : String;
sSearch: String;
begin
case frmMain.cbField.ItemIndex of
0 : sField := 'JMBG';
1 : sField := 'Prezime';
2 : sField := 'Adresa';
end;

sSearch := frmMain.edtSearch.Text;
if sSearch = '' then
begin
TABLE1.Filter := '';
TABLE1.Filtered := False;
Exit;
end;

while Pos('?',sSearch) > 0 do
sSearch[Pos('?',sSearch)] := '%';

if sSearch[Length(sSearch)] <> '%' then sSearch := sSearch + '%';
TABLE1.Filter := sField+ ' like '+''''+sSearch+'''';
TABLE1.Filtered := True;
end;
Ovo je kod koji sam koristio za filtriranje mada sam probao da koristim komponentu DBPro.Postoji vec gotov filter panel kome je dovoljno da se daje ime fildova pa cak ni to ne treba.Sve radi sam.
Jedini problem je to da kad mu aktiviram filter on filtrira datum a ne ime ili prezim.To mi je proble i u slucaju koda.Jedino mi je potrebno nesto kao check button ili tako nesto da recimo kad je cekirano onda da filtrira datum a ka nije da filtrira imena,prezimena...
[ savkic @ 01.12.2007. 20:24 ] @
> Jedini problem je to da kad mu aktiviram filter on filtrira datum a ne ime ili prezim.To mi je proble i u slucaju koda.Jedino mi je potrebno nesto
> kao check button ili tako nesto da recimo kad je cekirano onda da filtrira datum a ka nije da filtrira imena,prezimena...

Kada želiš da isključiš filtiranje preko OnFilterRecord eventa jednostavno napišeš Table.OnFilterRecord := nil; Kada hoćeš da uključiš napišeš
Table.OnFilterRecord := NazivFilterMetode;
[ CaSper01 @ 02.12.2007. 15:56 ] @
Resio problem,
Jos jednom hvala
Pozdrav