Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
|
plugins:ejemploplugin [2013/04/03 01:59] 127.0.0.1 editor externo |
plugins:ejemploplugin [2021/07/02 12:37] (actual) fcristina [Implementación de clases del package ar.com.disytel.plugin.reportProvider] |
||
|---|---|---|---|
| Línea 154: | Línea 154: | ||
| Notar que la modificación de la superclase no presenta problema alguno: Esta es la misma clase del ejemplo anterior (el cual implementaba el método **preBeforeSave()**), | Notar que la modificación de la superclase no presenta problema alguno: Esta es la misma clase del ejemplo anterior (el cual implementaba el método **preBeforeSave()**), | ||
| + | |||
| + | |||
| + | ==== Modificacion de las opciones de acciones de documento ==== | ||
| + | |||
| + | Es posible incorporar o eliminar acciones sobre la lista de posibles acciones sobre un documento en particular. | ||
| + | |||
| + | Dicha interface tiene simplemente un método llamando **customizeValidActions()** que recibe la información relevante del documento, las opciones actuales, etc. Dicho método debe retornar el indice actual que referencia al total de opciones válidas. | ||
| + | |||
| + | Se cuenta además con la clase **DocOptionsUtils**, | ||
| + | |||
| + | NOTA: Esta funcionalidad también es válida para una clase que extienda de PO (sin utilizar lógica de plugins), siempre y cuando implemente **DocOptions** y corresponda con el documento que se quiere procesar. | ||
| + | |||
| + | Ejemplo: se requiere modificar las opciones de acción para un Payment. | ||
| + | |||
| + | <code java> | ||
| + | package org.libertya.ejemplo.model | ||
| + | |||
| + | import java.util.Properties; | ||
| + | |||
| + | import org.openXpertya.model.PO; | ||
| + | import org.openXpertya.plugin.MPluginDocAction; | ||
| + | import org.openXpertya.process.DocAction; | ||
| + | import org.openXpertya.process.DocOptions; | ||
| + | import org.openXpertya.util.DocOptionsUtils; | ||
| + | |||
| + | public class MPayment extends MPluginDocAction implements DocOptions { | ||
| + | |||
| + | public MPayment(PO po, Properties ctx, String trxName, String aPackage) { | ||
| + | super(po, ctx, trxName, aPackage); | ||
| + | // TODO Auto-generated constructor stub | ||
| + | } | ||
| + | |||
| + | @Override | ||
| + | public int customizeValidActions(String docStatus, Object processing, | ||
| + | String orderType, String isSOTrx, int AD_Table_ID, | ||
| + | String[] docAction, String[] options, int index) { | ||
| + | |||
| + | // Si se esta completando el documento, incorporar la opción de WaitComplete | ||
| + | if (DocAction.ACTION_Complete.equals(docAction[0])) { | ||
| + | index = DocOptionsUtils.addAction(options, | ||
| + | } else { | ||
| + | // En caso contrario permitir invalidar el documento | ||
| + | index = DocOptionsUtils.addAction(options, | ||
| + | } | ||
| + | // En todos los casos, quitar la accion ReActivate | ||
| + | index = DocOptionsUtils.removeAction(options, | ||
| + | return index; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
| Línea 248: | Línea 299: | ||
| Este package comprende los componentes que redefinen las ventanas //Info// que extienden de **org.openXpertya.apps.search.Info**. | Este package comprende los componentes que redefinen las ventanas //Info// que extienden de **org.openXpertya.apps.search.Info**. | ||
| - | Según | + | Según |
| * Si la //Info// a redefinir en el plugin es una de las vistas ya construidas para las tablas más frecuentemente usadas (**C_BPartner**, | * Si la //Info// a redefinir en el plugin es una de las vistas ya construidas para las tablas más frecuentemente usadas (**C_BPartner**, | ||
| - | * Si la //Info// a redefinir es una modificación de **InfoGeneral** (la vista genérica para cualquier otra tabla), la nueva clase deberá extender de **InfoGeneralPlugin**, a fin de respetar | + | * Si la //Info// a redefinir es una modificación de **InfoGeneral** (la vista genérica para cualquier otra tabla), la nueva clase deberá extender de **Info**, respetando |
| Al igual que en los procesos, la redefinición de una ventana implica su completo // | Al igual que en los procesos, la redefinición de una ventana implica su completo // | ||
| Línea 430: | Línea 481: | ||
| </ | </ | ||
| + | |||
| + | ===== Implementación de clases del package ar.com.disytel.plugin.reportProvider ===== | ||
| + | |||
| + | A partir de la revision r2968, en caso de necesitar incorporar nuevos parámetros a un informe Jasper, pero sin necesidad de redefinir la clase por completo, es posible crear una clase que simplemente se encargue de incorporar al Jasper los parametros adicionales específicos del componente. | ||
| + | |||
| + | Es importante que la clase respete los siguientes: | ||
| + | |||
| + | * Debe tener igual nombre de clase que la existente en Libertya CORE | ||
| + | * Debe implementar la interfaz **org.openXpertya.plugin.report.ReportProviderInterface**, | ||
| + | |||
| + | Este método inyecta dos parámetros: | ||
| + | |||
| + | * **MJasperReport report**: Reporte Jasper al cual podremos incorporarle nuevos parámetros previo a su rellenado. | ||
| + | * **PO po**: El objeto base con la información a imprimir. | ||
| + | |||
| + | Por ejemplo, suponiendo que es necesario incorporar nuevos parámetros para la impresión Jasper de facturas, la clase en CORE es **org.openXpertya.JasperReport.LaunchInvoice**, | ||
| + | |||
| + | <code java> | ||
| + | package ar.com.disytel.plugin.reportProvider; | ||
| + | import org.openXpertya.JasperReport.MJasperReport; | ||
| + | import org.openXpertya.model.MInvoice; | ||
| + | import org.openXpertya.model.PO; | ||
| + | import org.openXpertya.plugin.report.ReportProviderInterface; | ||
| + | |||
| + | public class LaunchInvoice implements ReportProviderInterface { | ||
| + | |||
| + | @Override | ||
| + | public void addReportParametersToLaunch(MJasperReport report, PO po) { | ||
| + | // Agregar los parámetros que necesitemos | ||
| + | report.addParameter(" | ||
| + | report.addParameter(" | ||
| + | } | ||
| + | } | ||
| + | </ | ||