Seite 1 von 1

open() vs OpenSister() Parameterübergabe

Verfasst: 9. August 2019, 10:05
von satmax
Ich habe ein Fenster mit Parameter:

Code: Alles auswählen

PROCEDURE MyWindow( gTableArtikel is Control)
dieser Aufruf funktioniert und ich kann die Table im Fenster normal ansprechen:

Code: Alles auswählen

Open(WIN_Filter,TABLE_QRY_xy)
Folgender Aufruf an der gleichen Stelle produziert einen Runtimefehler:

Code: Alles auswählen

OpenSister(WIN_Filter,TABLE_QRY_xy)
Fehler (gekürzt):
'OpenSister' function, syntax 0

What happened?
An element of 'int' type cannot be converted to the 'control' type.

Error code: 1021
Level: fatal error

Re: open() vs OpenSister() Parameterübergabe

Verfasst: 11. August 2019, 11:37
von Herbert
Interessant
Im zweiten Fall übergibt die Funktion den Wert anstelle des Controls.
Ich schlage vor, den Alias der Tabelle (als Stringelement) oder sogar des Mutterfensters zu übergeben und so mit Indirection weiter zu arbeiten.

Re: open() vs OpenSister() Parameterübergabe

Verfasst: 16. August 2019, 08:04
von Herbert
Noch ein Nachtrag dazu
Hier braucht es gar keine Parameterübergabe!
Mit Open und auch mit OpenSister bleibt das Mutterelement immer bestehen. Daher kann das benötigte Element immer mittels Indirection erfasst werden. Dazu hat dies den Vorteil, dass bei einer inhaltlichen Aenderung des betreffenden Elementes immer der aktuelle Stand erhalten wird.
Ein Control als Parameter ist eh nicht empfehlenswert, da sehr viele Daten übergeben werden , wenn nur ein Wert davon verwendet wird.