1.8 Añadiendo campos al diálogo

En este post agregaremos un campo al diálogo. Para eso necesitaremos una clase de tipo contract.
La clase contract será la encargada de insertar campos al diálogo así como de empaquetar y desempaquetar éstos.

Para eso nos crearemos una clase indicándole el parámetro DataContractAttribute.

[DataContractAttribute]
 class TestSysOperationDataContract

{
        CustAccount custAccount;


Nos crearemos un método parm para el campo que agregamos al diálogo.
Aquí tenéis alguna de las posibles opciones que podemos darle al parámetro:

[DataMemberAttribute,
SysOperationLabelAttribute('Cliente'),
SysOperationHelpTextAttribute('Seleccione un cliente'),
SysOperationDisplayOrderAttribute('1')]
public custAccount parmCustAccount(custAccount _custAccount = custAccount)

{
    custAccount = _custAccount;
   

    return custAccount;
}

Modificaremos la clase controller para indicarle al método showInfo que recibirá por parámetros nuestra clase contract, así podremos recuperar los valores insertados en el diálogo.

public void showInfo(TestSysOperationDataContract _contract)
{
      if (xSession::isCLRSession())

     {
           info('Ejecutado en una sessión CLR.');
     }
     else
    {
           info('No ejecutado en CLR.');

          if (isRunningOnServer())

          {
               info('Ejecutado en el AOS.');

          }
          else
         {
               info('Ejecutado en el cliente.');
          }
     }
   

     info(strFmt('Cliente: %1', _contract.parmCustAccount()));
}


Recordad siempre de hacerle una compilación incremental CIL.

Ahora nuestro diálogo tendrá este aspecto:

 
Y si lo ejecutamos podremos ver que nos muestra el cliente introducido en el diálogo.
 
 
 
Este post es el equivalente al siguiente para la RunBaseBatch: 
 
 
Para descargar el fichero xpo sólo tenéis que presionar en el siguiente enlace:


Comentarios