Como software de informes desarrollado por complemento, FineReport debe desarrollarse por sí mismo. El paquete enchufable desarrollado por Fanruan es proporcionado oficialmente por Fanruan Forum. Puedes buscar en Fanruan Forum. Este artículo presentará principalmente cómo desarrollar un control personalizado. Aquí hay una metodología.
Paso 1: instanciar una interfaz que registre el control
Dar cuatro información a nuestra clase de control, clase de interfaz, ruta de icono, nombre de tipo de control
paquete com.hg.free.plugin.customcombo.param; import com.fr.design.designer.creator.xcomboBox; import com.fr.design.fun.impl.AbstractParameterWidGetOptionPtionProvider; import Com.fr.form.ui.widget; public class whidgetRegher extiende el párido de párpado de la pata de páramo; Clase <? extiende widget> classForWidget () {return CustomComboBox.class; } @Override public class <?> AparienciaForWidget () {return xcomboBox.class; } @Override public String iconPathForWidget () {return "/com/fr/web/images/comboBox.png"; } @Override public String nameForWidget () {return "Cadera desplegable personalizada"; }}El segundo paso es reescribir la clase de control
paquete com.hg.free.plugin.customcombo.param; import com.fr.form.ui.combobox; import com.fr.ui.datafilter; public class Custom CustomComboBox extiende ComboBox {private Static final Long Serialversionuid = 7169771062153345236l; @Override public String getxtype () {return "CustomCombo"; } @Override Proteged DataFilter creatataAfilter () {return new CustomBoBoBoBOxDataFilter (); }}Porque para cambiar el método de filtrado, debe reescribir un filtro
paquete com.hg.free.plugin.customcombo.param; import com.fr.form.ui.comboboxdatafilter; public class Custom CustomComboBoBoxDataFilter extiende comboBoBoxDataFilter {@Override public boolean ismatch (string txt, string filtre) {if (null == txt && null! = filtro) if (null == txt && null == filtro) return true; return txt.indexof (filtro)! =-1; }}Paso 3: heredar el control frontal JS
(function ($) {FR.CustomComboBoxEditor = FR.extend (FR.ComBoboxEditor, {_Init: function () {FR.CustomComboBoBoxEditor.superclass._init.apply (this, argents);}}); $.OK ~ lo anterior es todo el desarrollo del código ~ luego escriba un XML y empaquételo en un complemento con hormiga.
Explicación del código:
Primero, veamos qué significa este código.
Definí un control con el tipo de control CustomComboBoBoxEditor. Hereda todos los métodos y propiedades de ComboBoxEditor, y declaré la etiqueta del tipo de control recientemente definido como CustomCombo. ¿De qué sirve esta etiqueta? No hablaré de otros usos. El propósito aquí es que Java en sí no puede dejar que el front-end obtenga el control que genera ~ en su lugar, diciéndole a la configuración frontal, el motor JS front-end (llamemos que es el nombre) ~ Ejecutar el script correspondiente de acuerdo con esta configuración para generar los estilos DOM de DOM correspondientes, etc. El P. CustomComboBoxEditor como un mapa ~ y luego arroja la configuración del control a este método para ejecutar. Nuestro control se genera.
Debido a que no hay requisito para ninguna modificación al front-end en este ejemplo ~ para que no se realicen cambios ~ Veamos el back-end.
Nuestro ejemplo es modificar el método de coincidencia difusa.
Entonces, ¿qué hizo el mecanismo de coincidencia de control original? Es así: suponga que soy un jefe (solo puedo asumirlo). Ahora quiero saber los detalles de un contrato en papel, pero la compañía tiene un gran contrato en papel, ¿cómo puedo encontrarlo? Por supuesto, contrato a una secretaria (la belleza es la mejor), y le dije qué información quería. Luego fue a buscarlo y me dio el último contrato que encontró.
El control Combobox aquí es el jefe, Comboboxdatafilter es el Secretario, eso es lo que significa. Cada secretario aquí debe tener su propio conjunto de métodos para encontrar un contrato. En el pasado, el Secretario encontró todo si estaba un poco relacionado. El nuevo Secretario solo encontró el contrato que coincidía con la información provocada por el jefe. El método para encontrar la coincidencia es la coincidencia. Este código es así. De hecho, mientras el código se analice cuidadosamente, se puede asignar a muchas transacciones en la vida real. Debido a que el código también está diseñado por humanos, la lógica nunca puede escapar del pensamiento de los humanos que manejan los asuntos.
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo sea de ayuda para el estudio o el trabajo de todos. ¡También espero apoyar a Wulin.com más!