lunes, 9 de agosto de 2010

Envío de varios parámetros a la vez mediante args

Hola con este pequeño desarrollo, se podrá enviar varios parámetros de distintos tipos a un reporte ó formulario, mediante args y parmobject, para esta demostración enviaré dos parámetros a un reporte para que haga un filtro.

Paso1: creamos la clase “ParametrosReporte”, que recibirá todos los parámetros que necesitamos.
class ParametrosReporte
{
str para1;
str para2;
}
public str parm1( str _para1 = para1 )
{
;
if (!prmisdefault( _para1 ))
{
para1 = _para1;
}
return para1;
}
public str parm2( str _para2 = para2 )
{
;
if (!prmisdefault( _para2 ))
{
para2 = _para2;
}
return para2;
}

Paso 2: la mayoría de veces se tendrá que poner este código en un botón, pero por motivo de explicación lo he realizado en un job.
static void ParametrosVarios(Args _args)
{
Args args = new Args();
ReportRun reportRun;
ParametrosReporte parametrosReporte = new ParametrosReporte();
;
parametrosReporte.parm1( "1101" ); //código de cliente
parametrosReporte.parm2( "1102" ); //código de cliente
args.parmObject( parametrosReporte );
args.name(reportstr(Parametros));
reportRun = classFactory.reportRunClass(args);
reportRun.init();
reportrun.run();
}

Paso 3: creamos el reporte “Parametros”, con el datasource custtable y agregamos algunos campos al diseño del formulario. Luego en el método init() ponemos:
public void init()
{
ParametrosReporte parametrosReporte;
;
super();
if( element.args().parmObject() )
{
parametrosReporte = element.args().parmObject(); //recuperamos parametros
}
element.query().dataSourceName('CustTable').addRange(fieldnum(Custtable, accountNum)).value(parametrosReporte.parm1() + ".." +parametrosReporte.parm2());
this.query().userUpdate(false);
}

Saludos.

No hay comentarios:

Publicar un comentario