2012-06-29 15 views

Antwort

12

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

Verwandte Themen