Datenbank: Firebird • Version: 2.5 • Zugriff über: IBDAC
GotoNearest ersetzen
Hallo zusammen,
ich bin zur Zeit dabei ein altes Programm das noch mit der BDE arbeitet umzustellen. In diesem Programm wird mit Hilfe von GotoNeares der Datensatzzeiger in einem DBGrid auf ein bestimmtes Datum gestellt.
Delphi-Quellcode:
Ich habe nun die Funktion mit Locate versucht nachzustellen:
// with EOListeDatMod.EOListeTab do
// begin // Active := True; // Close; // IndexName := 'iEODatum'; // Open; // {Mit diesen Anweisungen wird immer auf den aktuellen DatenSatz gesprungen // der das heutige Datum trägt.} // SetKey; // FieldByName('EO-Datum').AsDateTime := date(); // GotoNearest; // end;
Delphi-Quellcode:
Das Funktioniert auch ohne Probleme wenn das Datum in der Tabelle vorhanden ist, allerdings wenn das Datum nicht in der Tablelle vorhanden ist bleibt der Datensatzzeiger auf den aktuellen stehen.
var
aDatum : TDate; SuchOptionen : TLocateOptions; Gefunden : boolean; begin aDatum := strtodate('09.07.2022'); SuchOptionen := [loPartialKey]; Gefunden := EODatenViewModel.EO_DataSource.DataSet.Locate('EO_Datum', aDatum,SuchOptionen); Bei GotoNearest wird der Datensatzzeiger auf das ungefähre Datum gesetzt. z.B. : folgende Daten sind vorhanden: 08.07.2022 10.07.2022 11.07.2022 Gesucht wird das Datum: 09.07.2022, dann wird der Datensatzzeiger mit GotoNearest auf 10.07.2022 gestellt. Wie kann man diese Funktionsweise nachbauen? Bis bald Chemiker |
AW: GotoNearest ersetzen
Was ist denn mit FindNearest?
Zitat:
|
AW: GotoNearest ersetzen
Hallo Uwe,
danke für den Hinweis. Ich habe einiges probieren müssen, bis ich die passende Kombination gefunden habe.
Delphi-Quellcode:
Bis bald Chemiker
//******************************************************************************
EOListeDatMod.EO_ListeIBCQuery.KeyFields := 'EO_DATUM'; EOListeDatMod.EO_ListeIBCQuery.FindNearest([aDatum]); //****************************************************************************** |
AW: GotoNearest ersetzen
GotoNearest ist IMO veraltet und stammt noch aus der BDE.
Laut DevArt soll man LocateEx mit lxNearest als Option verwenden. Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz