Wichtig
Detail
Detail
Detail
#27197
Fehlendes Komponentenmodell bei Grid-Objekt-Initialisierung mit mehreren Eingangskanälen
Wenn in-app eine Grid konfiguriert wird, so kann man als Modell eine Kombination aus verschiedenen Kanälen nutzen. Das Modell der Grid ist dementsprechend eine Liste.
Verbesserung
Wenn der Button "Neue Zeile" konfiguriert wird, so kann aus dem Modell ein Container-Objekt ausgerechnet werden, welches der Initialisierungsfunktion mitgegeben wird. Dieses Objekt muß ein tl:TLObject sein, so dass in diesem Fall nicht das Modell der Komponente benutzt werden kann.
Die Initialisierungsfunktion erhält das so berechnete Container-Objekt als auch das Komponentenmodell, so dass während der Initialisierung Zugriff auf den kompletten Kontext besteht.
Im Normalfall gilt aber Modell == Container ist ein tl:TLObject.
Code-Migration
In ungünstigen Fällen ändert sich die Belegung der Parameter "Link-Operation" in Anlagedialogen:
- Bisher erhielt die Operation zwei Argumente (den Create-Kontext und das neue Objekt). Bisher sollte dieser Create-Kontext eigentlich das Objekt sein, in dessen Kompositionsbeziehung das neu angelegte Objekt durch die Link-Operation eingefügt werden soll. Allerdings war dieser Create-Kontext de-facto nicht das Objekt, das auch für das im Formular transient angelegte Objekt als Container verwendet wurde, sondern das Modell auf dem der Create-Handler ausgeführt wurde.
- Jetzt erhält die Link-Operation drei Argumente. Wie bisher das Container-Objekt, in dessen Kompositionsbeziehung das neu angelegete Objekt eingefügt werden soll, das neue Objekt und neu das Modell des Create-Commandhandlers.
- Wenn das Anlage-Formular vorher kein Modell hatte, aber das Kontext-Modell erst an den Create-Handler übergeben wurde, muss jetzt (präferiert) dafür gesorgt werden, dass das Kontext-Objekt schon im Create-Formular als Modell vorliegt. Alternativ kann das dritte Argument der Link-Operation (statt des ersten) verwendet werden.
Test
TestRegression27197.script.xml