procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
try
if Button = btNext then fDatum := IncYear(fDatum,1);
if Button = btPrev then fDatum := IncYear(fDatum,-1);
finally
ZeigeJahr;
end;
end;
procedure TForm1.ZeigeJahr;
begin
try
with JahrTable do begin
Open;
IndexName := 'DATUM';
CancelRange;
DisableControls;
SetRange(StartOfTheYear(FDatum),EndOfTheYear(FDatum));
end; // with
finally
JahrTable.EnableControls;
StaticText5.Caption := IntToStr(Yearof(FDatum));
end;
end;
Leider funktioniert das nicht. Die Daten werden zwar ALLE angezeigt aber nicht NUR das ausgewählte Jahr.
Der Code ist oben und läuft unter Delphi7 einwandfrei.(plus den [] natürlich.
Wenn Ihr mir helfen könnt wärer das super.
argos
Wenn nicht beachte bitte, dass die Leute hier im Forum dein System und dein Programm nicht kennen können und deshalb ein bisschen mehr Informationen brauchen als "Es geht nicht". Dazu gehören immer das Betriebssystem, Lazarus- und FPC-Version (kannst du in deinem Profil hinterlegen). Aber auch was du schon probiert hast, um es selbst zu lösen. Und in deinem Fall von welchem Typ die Objekte sind die du benutzt (JahrTable) und was die selbst geschriebenen Funktionen (StartOfTheYear, EndofTheYear) machen.
Aber nun zu Problem:
Ich hab mit Tdbf eine Tabelle mit einem ftString-Feld und Index drauf erstellt und wahllos ein paar Datensätze erstellt. Anschließendes dbf1.SetRange('a', 'l', true); funktioniert.
Mein Tipp: Schau dir erst mal an wie deine Datensätze aussehen und was deine Funktionen zurückgeben.
Hallo
danke für die Antwort.
StartOf theYear(Date) gibt den Jahresanfangswert von einer TDateTimeVar zurück. zB.1.1.2010
EndOftheYear(Date) = dann 31.12.2010 und YearOf(Date) = zB 2010
Das sind Datumsfunktionen von Lazarus.
JahrTable = TDBf.
Mein System Windows 7 64 Bit. LazVers. lazarus-0.9.28.2-fpc-2.2.4-win64.