Wie kann ich einen einzelnen Parameter zwischen einer Form in axapta übergeben? Ich möchte ein Formular B von einem Klick-Ereignis in einem Formular A ausführen und übergeben ... zum Beispiel die Kunden-ID? Wie kann ich es im Zielformular, vielleicht in der init Methode lesen? DankWie man einen Parameter zwischen zwei Formen in Axapta übergibt?
Antwort
1 Methode
Der einfachste Weg ist aktuellen Datensatz zu übergeben. Ändern Sie den DataSource-Wert des Schaltflächensteuerelements für Beispiel in CustTable, wenn sich CustTable in aktuellen Form-Datenquellen befindet. Dann in Ziel Form init-Methode:
public void init()
{
CustTable cTable;
;
super();
// Check for passed arguments
if(element.args())
{
// get record parameter
if(element.args().record() && element.args().record().TableId == TableNum(CustTable))
{
cTable = element.args().record();
}
}
}
2 Methode
Wenn Sie noch genau einen Wert .parm geben müssen() (oder komplexere Objekt .parmObject()) Sie können dies tun, die durch overiding Source-Form Tastensteuerung angeklickt Methode:
void clicked()
{
// Args class is usually used in Axapta for passing parameters between forms
Args args;
FormRun formRun;
;
args = new args();
// Our values which we want to pass to FormB
// If we want pass just simple string we can use 'parm' method of 'Args' class
args.parm("anyStringValue");
// Run FormB
args.name(formstr(FormB));
formRun = classFactory.formRunClass(Args);
formRun.init();
formrun.run();
formrun.wait();
super();
}
dann in init Zielform:
public void init()
{
str anyStringValueFromCaller;
;
super();
// Check for passed arguments
if(element.args())
{
// get string parameter
anyStringValueFromCaller = element.args().parm();
}
}
Ich sollte definitiv nur die erste Methode verwenden und nur unter besonderen Umständen mit der Methode # 2 mit überschreiben Schaltfläche klicken klicken, weil dies eines der Standardmuster für die Übergabe von Werten zwischen Formularen ist. Komplexeres Beispiel ist verfügbar unter AxaptaPedia.com Passing values between forms