• Este debate está vacío.
Viendo 3 entradas - de la 1 a la 3 (de un total de 3)
  • Autor
    Entradas
  • #31317
    Luis Castelat
    Miembro

    Que tal Federico, te hago una consulta. Necesitamos lanzar varios reportes hechos en Jasper desde la ventana Entidad Comercial, por ejemplo: Cuenta Corriente del Cliente, Facturas adeudadas, Articulos mas comprados, etc.. Estos reportes los deberia largar desde un boton y que no abran ningun proceso de seleccion sino que use los argumentos de la ventana, como id de EC, para no tener que seleccionar nada, sino que el reporte salga directo. Quisiera saber si es posible desarrollar esto, y si nos podes orientar para poderlo empezar a programar. En los cursos vimos esto pero muy basico y haciendolo directamente con los procesos para seleccionar los datos del informe. Tambien si es posible que los desarrollemos como un componente ya que estamos trabajando en la ultima version.

    Un abrazo!!!

    #34160
    Luis Castelat
    Miembro

    sticuyo escribió:

    Quote:
    Que tal Federico, te hago una consulta. Necesitamos lanzar varios reportes hechos en Jasper desde la ventana Entidad Comercial, por ejemplo: Cuenta Corriente del Cliente, Facturas adeudadas, Articulos mas comprados, etc.. Estos reportes los deberia largar desde un boton y que no abran ningun proceso de seleccion sino que use los argumentos de la ventana, como id de EC, para no tener que seleccionar nada, sino que el reporte salga directo. Quisiera saber si es posible desarrollar esto, y si nos podes orientar para poderlo empezar a programar. En los cursos vimos esto pero muy basico y haciendolo directamente con los procesos para seleccionar los datos del informe. Tambien si es posible que los desarrollemos como un componente ya que estamos trabajando en la ultima version.

    Un abrazo!!!

    #34161
    Federico Cristina
    Superadministrador

    Luis,

    Parece que se nos pasó este thread!

    Quote:
    Necesitamos lanzar varios reportes hechos en Jasper desde la ventana Entidad Comercial, por ejemplo: Cuenta Corriente del Cliente, Facturas adeudadas, Articulos mas comprados, etc..

    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.

    Code:
    /* Insertar el parametro para el XML */
    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í:

    Code:
    // setear los parámetros
    HashMap params = new HashMap();
    params.put(“Parametro 1”, XXX);

    params.put(“Parametro X”, XXX);

    // ejecutar el proceso
    MProcess.execute(getCtx(), launchProcessId, params, get_TrxName());

    Quote:
    Estos reportes los deberia largar desde un boton y que no abran ningun proceso de seleccion sino que use los argumentos de la ventana, como id de EC, para no tener que seleccionar nada, sino que el reporte salga directo

    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:

    Code:
    AD_Table_ID = getTable_ID();
    AD_Record_ID = getRecord_ID();

    Saludos!

Viendo 3 entradas - de la 1 a la 3 (de un total de 3)
  • Debes estar registrado para responder a este debate.