2012-06-29 16 views
6

¿Cómo puedo pasar un único parámetro entre un formulario en axapta? Quiero ejecutar un Formulario B a partir de un evento de botón hecho clic en un Formulario A y pasar ... por ejemplo, la identificación del cliente? ¿Cómo puedo leerlo en el formulario de destino, tal vez en el método init? Gracias ¿Cómo pasar un parámetro entre dos formularios en Axapta?

Respuesta

12

1 Método

La forma más fácil es pasar registro actual. Simplemente cambie el valor de DataSource del control de botones por Ejemplo a CustTable si CustTable está en fuentes de datos de formularios actuales. Entonces el método init forma en destino:

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 Método

Si aún necesita pasar exactamente un valor .parm() (o un objeto más complejo .parmObject()) se puede hacer esto mediante la fuente overiding forma de Control del botón de clic método:

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(); 
} 

Luego, en forma de destino init:

public void init() 
{ 
    str    anyStringValueFromCaller; 
    ; 
    super(); 

    // Check for passed arguments 
    if(element.args()) 
    { 
     // get string parameter 
     anyStringValueFromCaller = element.args().parm(); 

    } 
} 

Definitivamente, solo utilizaría el primer método y solo en circunstancias especiales iría con el método n. ° 2 con el método de clic de botón primordial porque este es uno de los patrones predeterminados para pasar valores entre formularios. El ejemplo más complejo está disponible en AxaptaPedia.com Passing values between forms

Cuestiones relacionadas