Autor Beitrag
LonghornUser
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Fr 09.04.10 21:32 
Hallo,

ich möchte gerne eine Funktion "Springe zu Zeile mit bestimmter ID..." implementieren. Da mir der betreffende Befehl fehlt, habe ich folgende (ziemlich miese ;)) Lösung erdacht:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
s := InputBox('SalesSystem - Eingabe',
      'Bitte geben Sie die gewünschte ID ein:''');
    while (s <> ''and (ZQuery1.FieldByName('ID').AsString <> s) do
    begin
      ZQuery1.Next;
    end;


Habt ihr da vielleicht etwas besseres?

Ciao LHUser
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Fr 09.04.10 22:06 
user profile iconLonghornUser hat folgendes geschrieben Zum zitierten Posting springen:
Da mir der betreffende Befehl fehlt,

Glaub das war irgendwas mit Query.Locate oder so?

_________________
PROGRAMMER: A device for converting coffee into software.
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: So 11.04.10 15:31 
Ich habe das ganze so probiert, aber der Befehl liefert immer False :(
ausblenden Delphi-Quelltext
1:
ZQuery1.Locate('ID', s, []);					
RonLipp
Hält's aus hier
Beiträge: 13

WinXP
D5 Prof
BeitragVerfasst: Mo 12.04.10 14:39 
Das Feld 'ID' sollte existieren und von Typ String sein.
Beim Doppelklick auf die Komponente ZQuery1 lässt sich das prüfen.

_________________
Danke für Ihre Aufmerksamkeit!
zuma
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 660
Erhaltene Danke: 21

Win XP, Win7, Win 8
D7 Enterprise, Delphi XE, Interbase (5 - XE)
BeitragVerfasst: Mo 12.04.10 15:21 
ist deine ID vom Typ String oder Integer?
ist in s direkt vor dem locate auch nur der 'richtige' Eingabewert (z.b. '3') oder ist da noch evtl. ein (Leer-)zeichen drin (z.b. '3 ') ?
versuch mal:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
s := InputBox('SalesSystem - Eingabe',
      'Bitte geben Sie die gewünschte ID ein:''');
if not zquery1.Locate('ID', StrToInt(s), []) then
 showmessage('ID nicht gefunden');


die Prüfung per doppelklick funktioniert nicht zwangsläufig, besser ist es, in der DB-Tabelle (oder, falls Datenmenge nicht aus db, in der Erzeuge-Routine für die Datenmenge, mit der das Grid verbunden ist) den Feldnamen/Feldtyp zu prüfen und im Code dann entsprechend zu verwenden.

_________________
Ich habe nichts gegen Fremde. Aber diese Fremden sind nicht von hier! (Methusalix)
Warum sich Sorgen ums Leben machen? Keiner überlebts!
LonghornUser Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 796



BeitragVerfasst: Mo 12.04.10 21:11 
Euer Hinweis war genau richtig. Die ID war ein Integer und ein String. Macht auch irgendwie Sinn ;)

Danke!!