Mit dem Unified Interface besteht nun auch die Möglichkeit, das Standardverhalten von Lookup Feldern zu ändern. Bisher hat ein Klick auf den Link im Lookup immer das aktuelle Formular geschlossen und hat den entsprechenden Datensatz des Lookups geöffnet. Mit dem Release 2020 Wave 1 besteht nun die Möglichkeit, dieses Standardverhalten mit ein paar Zeilen Javascript zu ändern.
Die Funktion Xrm.Navigation.navigateTo gibt es schon länger, neu hinzugekommen ist die Möglichkeit das Event "addOnLookupTagClick" anzusprechen.
Beim Laden der Webseite (Form - Onload) kann hier durch übergabe von 2 Parametern der Name des Controls und die Größe des Dialoges gesteuert werden. Schön wäre es, wenn das Event direkt im Designer angesprochen werden könnte, aber vielleicht kommt das ja noch.
/// controlname - Name des Lookups
/// percentage - Prozentzahl wie groß der Dialog sein soll
function C2S_LoadPercentage(executionContext, controlname, percentage) {
debugger;
var formContext = executionContext.getFormContext();
formContext.getControl(controlname).addOnLookupTagClick(function (mylookup) {
mylookup.getEventArgs().preventDefault(); // Deaktivieren des Standardverhaltens WICHTIG
// Aktuellen Record des betreffenden Lookups ermitteln
var lookupRecord = mylookup.getEventArgs().getTagValue();
// Oeffnet das Lookup als Modalen Dialog
Xrm.Navigation.navigateTo({
pageType: "entityrecord",
entityName: lookupRecord.entityType,
formType: 2, // Aktuell wird nur der EDIT Mode unterstützt
entityId: lookupRecord.id
}, {
target: 2,
position: 1,
width: { value: percentage, unit: "%" }
});
});
}
Bauen wir nun diese Funktion, bei den Form Properties beim Event Form-OnLoad ein und regsitrieren das neue Verhalten. Beim Klick auf den Link selber kann hier nicht mehr eingegriffen werden, das wird global für das Control auf der Maske gesteuert.
Beim "Klick" auf den Record öffnet sich dann der Dialog. Dieser bietet neben einem Schließen auch die Möglichkeit diese Form in einem neuen Tab vollflächig zu öffnen.
Comments