Das SysOperation-Framework generiert den Dialog für den Benutzer üblicherweise auf Basis des verwendeten Data Contracts vollautomatisch, bietet aber auch die Möglichkeit ein eigenes Formular als Dialog einzubinden.
Dafür gibt es im Service Controller die Methode templateForm(), die auf einfache Art & Weise überschrieben werden kann:
protected FormName templateForm()
{
FormName ret;
ret = formStr(TutorialSysOperationDialog);
return ret;
}
Ein über diese Methode eingebundenes Formular muss allerdings einigen Regeln folgen, damit es kompatibel mit dem SysOperation-Framework ist.
Die Form benötigt die folgenden Elemente:
Eine Gruppe namens DialogStartGrp
Ein Tab namens Tab
Für den Query eine eigene Gruppe namens QueriesGroup
Eine ButtonGroup mit OK und Cancel-Button (beispielsweise kopieren von PurchEditLines)
Das Design sollte über die folgenden Properties angepasst werden:
StatusBarStyle: SimpleWithoutClose
Frame: Dialog
HideToolbar: Yes
Weiters sind folgende Methoden zu überschreiben/erstellen:
formRun()
dialog()
controller()
closeOK()
public class FormRun extends ObjectRun
{
Object dialogObject;
}
public SysOperationDialog dialog()
{
if (dialogObject == null)
{
dialogObject = Dialog::getDialogFromCaller(this);
}
return dialogObject;
}
public TutorialSysOperationServiceController controller()
{
return this.dialog().controller();
}
public void closeOk()
{
// Validate
if (this.controller().checkCloseDialog())
{
super();
}
}
Die Methode closeOK() ist übrigens auch die ideale Stelle (vor dem Aufruf von checkCloseDialog()), um beispielsweise weitere Parameter an die Klassen zu übergeben.
Dieser Beitrag bezieht sich auf die Version: Dynamics AX 2012
Diese Webseite verwendet Cookies, um Benutzern einen besseren Service anzubieten. Wenn Sie weiterhin auf der Seite bleiben, stimmen Sie der Verwendung von Cookies zu.
Mehr dazu
Das SysOperation-Framework generiert den Dialog für den Benutzer üblicherweise auf Basis des verwendeten Data Contracts vollautomatisch, bietet aber auch die Möglichkeit ein eigenes Formular als Dialog einzubinden.
Dafür gibt es im Service Controller die Methode templateForm(), die auf einfache Art & Weise überschrieben werden kann:
{
FormName ret;
ret = formStr(TutorialSysOperationDialog);
return ret;
}
Ein über diese Methode eingebundenes Formular muss allerdings einigen Regeln folgen, damit es kompatibel mit dem SysOperation-Framework ist.
Das Design sollte über die folgenden Properties angepasst werden:
Weiters sind folgende Methoden zu überschreiben/erstellen:
{
Object dialogObject;
}
{
if (dialogObject == null)
{
dialogObject = Dialog::getDialogFromCaller(this);
}
return dialogObject;
}
{
return this.dialog().controller();
}
{
// Validate
if (this.controller().checkCloseDialog())
{
super();
}
}
Die Methode closeOK() ist übrigens auch die ideale Stelle (vor dem Aufruf von checkCloseDialog()), um beispielsweise weitere Parameter an die Klassen zu übergeben.