Seite 1 von 1

Zeile in Table (Query) positionieren

Verfasst: 14. November 2018, 21:21
von Adrian
Ziel ist es, nach erfassen eines neuen Mitarbeiters, die Tabelle neu aufzubauen (ist kein Problem) und den Zeiger (Balken) direkt auf dem neuen Mitarbeiter zu positionieren.

Das Aufbauen ist kein Problem, doch wie kann ich den Zeiger direkt positionieren? Daher in unterem Beispiel beim Mitarbeiter test? Hat da jemand eine Idee? (ich möchte nicht nur den Test sehen, dies wäre kein Problem, sondern ich möchte alle sehen, nur der blaue Balken sollte auf dem test stehen)

nach Erfassen habe ich den folgenden Code:

Code: Alles auswählen

IF lErfassen = True THEN
	HExecuteQuery(QRY_Mitarbeiter,hQueryDefault,"",1)
	TableDisplay(TABLE_QRY_Mitarbeiter)
	
	SetFocus(TABLE_QRY_Mitarbeiter)
END	
Unbenannt.JPG
Unbenannt.JPG (73.06 KiB) 2833 mal betrachtet

Re: Zeile in Table (Query) positionieren

Verfasst: 14. November 2018, 22:39
von Herbert
Wenn du den Namen oder ein sonstiges eindeutiges Merkmal des zu markierenden Eintrags kennst, kannst mit TableSeek arbeiten.

i=TableSeek(MeineTabelle,...
TableselectPlus(MeineTabelle,i)

Anderer Ansatz: Falls du die Position bereits kennst, nicht neu aufbauen, sondern mit TableInsert arbeiten.

Re: Zeile in Table (Query) positionieren

Verfasst: 14. November 2018, 23:00
von Adrian
Super, so klappts, besten Dank.

adrian

Re: Zeile in Table (Query) positionieren

Verfasst: 5. April 2021, 20:03
von Werner_Bayern
Verrückt, hab gleiches Thema, nur funktioniert folgender Code nicht:

Code: Alles auswählen

		nSatznr is int
		HReset(Sonderpreis)
		Sonderpreis.ArtikelID = Artikel.ArtikelID
		Sonderpreis.EK = Artikel.EK
		Sonderpreis.VK = Artikel.VK
		HAdd(Sonderpreis)
		TABLE_QRY_Sonderpreise.Display(taReExecuteQuery)
		nSatznr = TableSeek(TABLE_QRY_Sonderpreise, Sonderpreis.ArtikelID)
		TableSelectPlus(TABLE_QRY_Sonderpreise, nSatznr)
Nach Display() passt alles, mit dem TableSeek wird jedoch der neue Satz an den Anfang der Table dubliziert (!) und nSatznr erhält 1. Darauf wird auch positioniert. Tatsächlich ist der Satz Nr. 1 aber nicht der neu angefügte, der wird dort nur angezeigt!
Nach knapp 4 Stunden testen und suchen hab ich herausgefunden, dass es am Fill:Direct access liegt. Umgestellt auf Loaded in memory und es funktioniert.

Warum???