Luis,
Parece que se nos pasó este thread!
Lo más sencillo sería tener un botón por cada informe a disparar. Sin embargo, si la intención es que con un botón directamente se disparen varios reportes, deberías implementar un proceso que invoque a todos los procesos restantes.
La nueva clase VPluginInstallerUtils del release 10.03 hace uso de esta funcionalidad. El método doPostInstall(), invoca desde código la ejecución de otro proceso.
ProcessInfo pi = new ProcessInfo( ” Post Instalacion “, postInstallProcessId);
ProcessInfoParameter xtraParam = new ProcessInfoParameter(PluginConstants.XML_CONTENT_PARAMETER_NAME, xml, null, null, null);
pi.setParameter(addToArray(pi.getParameter(), xtraParam));
/* Habilitar al usuario System para que pueda disparar el postinstall */
postInstallprocessAccess(ctx, trxName, postInstallProcessId);
/* Invocar la ejecución del proceso, si el mismo devuelve null es porque se cancelo en los parametros */
ProcessCtl worker = ProcessCtl.process(installer, installer.getM_WindowNo(), pi, Trx.getTrx(trxName));
Tené en cuenta que para cada proceso invocado, se abrirá la ventana de diálogo correspondiente a los parámetros requeridos por el proceso (en caso que de que los mismos tengan definidos parámetros).
Para “inyectar” los parámetros por código y que directamente no se presente la ventana de diálogo, deberías utilizar alguno de los métodos execute() de la clase MProcess. Por ejemplo algo así:
HashMap
params.put(“Parametro 1”, XXX);
…
params.put(“Parametro X”, XXX);
// ejecutar el proceso
MProcess.execute(getCtx(), launchProcessId, params, get_TrxName());
Para ésto, fijate por ejemplo la clase LaunchInvoice (impresión de factura), en el prepare() recupera la tabla y registro donde se encuentra el usuario en ese momento:
AD_Record_ID = getRecord_ID();
Saludos!