Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

dbsetfilter

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1820
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

dbsetfilter

Beitrag von Rolf Ramacher » Fr, 16. Sep 2016 15:24

hallo zusammen,

mache ich etwas falsch ??

Code: Alles auswählen

	Spproto->(DbSetFilter({|| substr(suche,12,6) == cSuch }))	
	Spproto->(DbGoTop())
	Do while Spproto->(!eof())
		Splief->(OrdSetFocus("liefnr"))
		Spstamm->(OrdSetFocus("artikel"))
msgbox(spproto->artinr)
cSuch ist richtig befüllt. es wird keine artikelnr. angezeigt.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de

georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1933
Registriert: Fr, 08. Feb 2008 21:29

Re: dbsetfilter

Beitrag von georg » Fr, 16. Sep 2016 16:34

Rolf,


Dein Code ist irgendwie seltsam?

Ich würde z.B. den OrdSetFocus() VOR dem "DO WHILE" erwarten. Und ich würde (wenn das Programm sich seltsam verhält) nach dem dbGoTop() mal nachsehen, auf welchem Satz Du stehst und ob der die Bedigung erfüllt.
Liebe Grüsse aus der Eifel,

Georg

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10562
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: dbsetfilter

Beitrag von AUGE_OHR » Sa, 17. Sep 2016 6:02

Rolf Ramacher hat geschrieben:cSuch ist richtig befüllt. es wird keine artikelnr. angezeigt.
hm ... das "==" würde ich mal gegen "=" austauschen.
Rolf Ramacher hat geschrieben:

Code: Alles auswählen

Do while Spproto->(!eof())
hm ... versuche mal eine andere Schreibweise

Code: Alles auswählen

   Do while !( Spproto->(eof()) )
oder
   Do while !Spproto->(eof())
aber was willst du mit den OrdSetFocus() ? ohne ein

Code: Alles auswählen

   SET RELATION TO Spproto->XXX INTO Spstamm ,;
                TO Spproto->YYY INTO Splief
passiert doch nichts in den anderen WorkAreas :?:
gruss by OHR
Jimmy

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10562
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: dbsetfilter

Beitrag von AUGE_OHR » Sa, 17. Sep 2016 21:23

was mir noch bei "dbsetfilter" einfällt :

Code: Alles auswählen

SET OPTIMIZE OFF
gruss by OHR
Jimmy

Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1820
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

Re: dbsetfilter

Beitrag von Rolf Ramacher » Mo, 19. Sep 2016 14:15

komisch dbsetfilter funkt. nicht. ordsetfocus ist auch vorher. und nur = - keine Auswirkung

lasse ich die Datenbank so alle Datensätze durchlaufen ohne nur diese zu filtern -. funkt. wunderbar. nur alle Datensätze wollte ich vermeiden.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de

Benutzeravatar
Scarmo
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 137
Registriert: Di, 24. Jul 2007 9:17

Re: dbsetfilter

Beitrag von Scarmo » Mo, 19. Sep 2016 14:25

Hallo Rolf

Dann sag mal, was Du in der Variablen "suche" bzw. "cSuch" drin hast. Vielleicht erklärt es sich dann.

Gruss
Marco

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 6797
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: dbsetfilter

Beitrag von Tom » Mo, 19. Sep 2016 14:28

"suche" ist vermutlich ein Tabellenfeld, also Alias angeben:

Code: Alles auswählen

Spproto->(DbSetFilter({|| substr(Spproto->suche,12,6) == cSuch }))
Herzlich,
Tom

Antworten