Novo

Forum kao aplikacija na telefonu

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

  • 6 odgovora
  • 3.595 pregleda

Najnovija ↓

Problem sa datumom 22.01.2005. u 22:57 · pre 265 meseci #1
DBEdit1.Text := FormatDateTime('dd.mm.yyyy', strtofloat(Edit1.text));
unosim u Edit1 (ova procedura stoju u edit1Exit) i nakon izlaska zelim da mi ako je datum napisan 1.1.05 napise 01.01.2005 ili 8.08.04 napise 08.08.2004. Tj da testira datum pri izlazu iz Edit1.
Kako da ovo resim?
Hvala!!!
Potpis
GYGY
Re: Problem sa datumom 22.01.2005. u 23:39 · pre 265 meseci #2
Citat:
nakon izlaska zelim da mi ako je datum napisan 1.1.05 napise 01.01.2005 ili 8.08.04 napise 08.08.2004


Ako u Edit box napises datum u obliku 1.1.05 onda ne mozes koristiti funkciju StrToFloat vec StrToDate jer ne mozes konvertovati '.' u float podatak.
Potpis
The truth shall set you free
Re: Problem sa datumom 23.01.2005. u 00:16 · pre 265 meseci #3
Ako windows locale je podesen na neki drugi ShortDate Format (tipicno US English m/d/y) onda ni StrToDate nece raditi (hoce za 01.01.2004, ali 02.01.2004 ce mu biti 1. FEBRUAR, a za 13.1 ce prijaviti gresku). Fora je napraviti f-ju koja cita karaktere stringa i koriscenjem EncodeDate(D, M, G: Word) vraca TDate, pa posle ide FormatDateTime('dd.MM.yyyy', NekiDatum).
Re: Problem sa datumom 23.01.2005. u 00:20 · pre 265 meseci #4
Sad ferca!
Hvala!
Ali imam jos jedan problem prilikom filtriranja!
koristim ovaj kod ali nesto nije u redu.
ovaj edit2.text := dbedit1.text
Code:
...
procedure TForm1.Button1Click(Sender: TObject);
begin
    ClientDataSet1.Filtered := True;
    ClientDataSet1.Filter := 'Datum'+'='''+Edit2.text+'*'''  ;

end;
...

Kako jos da filtriram bazu (b1.xml-baza) po datumu?
Hvala
Potpis
GYGY
Re: Problem sa datumom 23.01.2005. u 00:37 · pre 265 meseci #5
da bi parsovao datum moze recimo ovako (pretpostavka da je razmak tacka)
Code:

function MyStrToDate(s: string): TDate;
var d, m, y: string;
begin
  try
  d := StrToInt(Copy(s, 1, Pos('.', s) - 1);
  Delete(s, 1, Pos('.', s));
  m := StrToInt(Copy(s, 1, Pos('.', s) - 1);
  Delete(s, 1, Pos('.', s));
  y := StrToInt(Copy(s, 1, Pos('.', s) - 1);
except
  Exit;
end;
  Result := EncodeDate(d, m, y);
end;

mozda nije bas sve ispravno, posto je iz glave ali bi trebalo da je tako
Potpis
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
Re: Problem sa datumom 24.01.2005. u 16:23 · pre 265 meseci #6
Hvala momci resio sam ovo pomocu 'Regional options'
ali imam jedan problem sa sortiranjem kako da sortiram i po datumu i po sifri?
Mogu da sortiram samo po datumu...
ClientDataSet1.IndexName := 'Datum';
...
ili samo po sifri...
ClientDataSet1.IndexName := 'Sifra';
...ClientDataSet1.IndexDefs imam definisane 0-Datum i 1-Sifra.
Kako ovo da resim?
Hvala
Potpis
GYGY
Re: Problem sa datumom 27.01.2005. u 20:51 · pre 264 meseca #7
Sa TQuery-em:
TQuery.SQL.Text := 'SELECT * FROM tvojatabela ORDER BY SIFRA, DATUM';
ili
TQuery.SQL.Text := 'SELECT * FROM tvojatabela ORDER BY DATUM, SIFRA';
zavisi sta ti treba.

A za datum nisi hteo da me poslusas pa si morao da menjas regional settings. Znaci jos jednom, da bi ti datum radio na BILO KOM reg. settingu MORAS izdvojiti iz stringa posebno dan, mesec i godinu i encodovati datum da bi dobio TDate, pa onda filtriras tabelu:
'Datum = ' + QuotedStr(DateTimeToStr(MojDatum));
DateTimeToStr ce uvek postovati system locale, tome inace i sluzi. Jedino treba da napises f-ju koja parsira datum (string) i vraca datum(TDate) ili uzmi bancikinu f-ju.

I jos nesto, ako radis sa TDBEdit, imas na raspolaganju posebno EditFormat a posebno DisplayFormat. Npr, za DisplayFormat stavis [dd.MM.yyyy], a za edit format stavis [d.M.yyyy], tako ce DBEdit uvek prikazivati dvocifren dan i mesec, onda ne treba da izmisljas svoju funkciju ni menjas locale. EditFormat i DisplayFormat su property-i TField-a.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme