Hallo Detlef,
Bei Jürgen's Beispiel sollte noch kontrolliert werden, daß keine "nicht-ausgewählten" Sätze angezeigt werden.
'
Declare Anzahl&,X1%,Num&,Zw$
Def @DBGETFILTER$(2) @If( Mid$(@DBGet$(@$(1)),01,@Len($(2)))=\
Mid$(@$(2),01,@Len($(2))),@DBGet$(@$(1)) ,"")
' sollte der Code in einem numerischen Feld stehen (längeres Feld und der Wert steht
' entweder links- oder rechtsbündig) ist folgende DEF besser:
' Def @DBGETFILTER$(2) @If( Mid$(@Trim$(@DBGet$(@$(1))),01,@Len($(2)))=\
' Mid$(@$(2),01,@Len($(2))),@Trim$(@DBGet$(@$(1))) ,"")
Cls
Print "MY Filter"
@DBOPEN(#1,"Test.dbf")
Let Anzahl& = DBUSE(#1)
Let X1% = 0
While (X1% < Anzahl&) ' WhileLoop geht erst ab Profan 7
Let Zw$ = @DBGETFILTER$("EAN_NUMMER","12345")
' nur wenn ein Satz gefunden wurde: auswerten!
Case (@Len(Zw$) > 0) : Print Zw$
Let Num& = @dbGo("NEXT")
Inc X1%
endWhile
DBCLOSE(#1)
Print "Ende"
WaitInput
End
Allerdings wie groß ist die Datei? In dieser Version wird die Datei vom ersten bis zum letzten Satz gelesen.
Eventuell wäre es sinnvoll eine Indexdatei über die EAN_Nummer anzulegen und mit dbFind auf den ersten gültigen Begriff aufzusetzen.
Dann nur solange lesen bis der gefundene Satz einen höheren als den Suchwert hat.
Mfg.
Gerhard
|