do while

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: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

do while

Beitrag von Rolf Ramacher »

nach einer KER-Auswertung soll noch nach Inventur gesucht werden.
bis dahin läuft alles sauber. ich habe vorher nochmal ein close data gesetzt. aber es passiert nichts.

Code: Alles auswählen

	use spker New Exclusive
	set index to "spker.cdx"
	spker->(OrdSetFocus("begriff"))

	nZaehler:=0
	// eintrag suchen nach Inventur und die Differenz wird aufaddiert.
	Spker->(DbGoTop())
	Do while Spker->(!eof())

		nZaehler++
		If nZaehler % 5 == 0
			oAStatic:setcaption("Inventur suchen:  "+Spker->Wg)
			nZaehler:=0
		Endif

		If Spker->SA="A"
			nSatz:=Spker->(Recno())
			nMengeVor:=Spker->Gesmebe
			nEkVor:=Spker->Ekbest
			nVkVor:=Spker->Vkbest
			cIndex:=substr(Spker->Begriff,1,13)+"I"

			If Spker->(DbSeek(cIndex))
				If Spker->WeMenge <0
					nMengeVor+=abs(Spker->Wemge)
					nEkVor+=abs(Spker->WeDmEk)
					nVkVor+=abs(Spker->WedmVk)
				Else
					nMengeVor-=Spker->Menge
					nEkVor-=Spker->WeEmEk
					nVkVor-=spker->Wedmvk
				Endif
				Spker->(DbGoTo(nSatz))
				Spker->Gesmebe:=nMengeVor
				Spker->EkBest:=nEkVor
				Spker->Vkbest:=nVkVor
			Endif
		Endif
		Spker->(DbSkip(+1))
		sleep(100)
	Enddo

	Close Data
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: do while

Beitrag von Martin Altmann »

Moin,
versuch mal statt:

Code: Alles auswählen

   Do while Spker->(!eof())
eher ein

Code: Alles auswählen

   Do while .not. Spker->(eof())
Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: do while

Beitrag von Rolf Ramacher »

Hallo Martin

leider das gleiche ergebenis
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: do while

Beitrag von brandelh »

Ich sehe oben eine DO WHILE Schleife, das close data DANACH ....

In der Schleife wird ein Feld abgefragt If Spker->SA="A"
und dann mit If Spker->(DbSeek(cIndex)) nach einen Begriff gesucht.
Danach wieder zurück zum letzten Feld ... und eins weiter.

die Sortierung liegt auf Begriff ...

Was nirgends steht ist, was wo erwartet wird (als Kommentar) und wo was falsches rauskommt.
Muss man alles raten ;-)
Gruß
Hubert
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: do while

Beitrag von Koverhage »

Hat nichts mit dem Problem zu tun, aber ich bevorzuge
do while !xyz->(eof())
Gruß
Klaus
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: do while [erledigt]

Beitrag von Rolf Ramacher »

ab und zu ist man schon mal blind. alles klar gefunden. dbgoto(nsatz)) stand an der falschen stelle.

danke
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15689
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: do while

Beitrag von brandelh »

stimmt, wenn dbseek .f. zurück gab war und blieb die Datei auf EOF (dbgoto wurde nicht erreicht).
Gruß
Hubert
Antworten