Как программное обеспечение отчета, разработанное плагином, FineReport должен быть разработан сам по себе. Плачковой пакет, разработанный FanRuan, официально предоставлен Fanruan Forum. Вы можете перейти на Fanruan Forum. Эта статья в основном представит, как разработать пользовательский контроль. Вот методология.
Шаг 1: создайте экземпляр интерфейса, который регистрирует управление
Дайте четыре информации в наш класс управления, класс интерфейса, путь к значке, имя типа управления
Пакет com.hg.free.plugin.customcombo.param; import com.fr.design.designer.creator.xcombobox; import com.fr.design.fun.impl.abstractparameterwidgetoptionProvider; import com.fform.ui.widget; public widgetgistergistervidertepraMeterwide Класс <? extends widget> classforwidget () {return customcombobox.class; } @Override public class <?> Внешний вид forfiDget () {return xcombobox.class; } @Override public String iconpathforwidget () {return "/com/fr/web/images/combobox.png"; } @Override public String nameforwidget () {return "Custom Dirlow Down"; }}Второй шаг - переписать класс управления
Пакет com.hg.free.plugin.customcombo.param; import com.fr.form.ui.combox; import com.fr.ui.datafilter; открытый класс CustomCombobox Extends ComboBox {Private Stative Long LongersionUid = 716977106215345236L; @Override public String getExtype () {return "customcombo"; } @Override Protected DataFilter ceneureAtafilter () {return new CustomComboboxDatafilter (); }}Потому что, чтобы изменить метод фильтрации, вы должны переписать фильтр
Пакет com.hg.free.plugin.customcombo.param; import com.fr.form.ui.comboboxdatafilter; открытый класс CustomComboboxDatafilter Extends ComboBoxDataFilter {@Override public boolean ismatch (String txt, String Filter) {if (null == txt && null! = Falter); if (null == txt && null == filter) вернуть true; return txt.indexof (фильтр)! =-1; }}Шаг 3: Унаследовать передний контроль JS Control
(function ($) {fr.customcomboboxeditor = fr.extend (fr.comboboxeditor, {_init: function () {fr.customcomboboxeditor.superclass._init.apply (это, аргументы);}}); $ .shortcut ("Customer., fr.custroccom.ermery);ОК ~ Вышеупомянутое разработка кода ~ затем напишите XML и упакуйте его в плагин с муравей.
Код объяснение:
Во -первых, посмотрим, что означает этот код?
Я определил элемент управления с помощью типа управления CustomComboboxEditor. Он наследует все методы и свойства ComboBoxEditor, и я объявил тег недавно определенного типа управления как CustomCombo. Каково используется этот тег? Я не буду говорить о других применениях. Просто цель здесь состоит в том, что сама Java не может позволить интерфейскому контролю получить то, какое управление генерирует ~ вместо этого, сообщив передней части конфигурации, фронтальный двигатель JS (давайте назовем его, это имя) ~ выполнить соответствующий скрипт в соответствии с этой конфигурацией, чтобы создать соответствующие стили DOM, и поэтому на ~ ~ Комплект. Fr.CustomComboboxEditor, как карта ~, а затем бросает конфигурацию элемента управления в этот метод для выполнения. Наш контроль генерируется.
Поскольку в этом примере не требуется никаких требований к переднему концу ~ поэтому не внесены никаких изменений ~ давайте посмотрим на бэкэнд ниже.
Наш пример - изменить метод нечеткого сопоставления.
Так что же сделал первоначальный механизм сопоставления управления? Это так: предположим, что я босс (я могу только это предположить). Теперь я хочу узнать подробности бумажного контракта, но у компании есть большой бумажный контракт, как я могу его найти? Конечно, я нанимаю секретаря (красота самая лучшая), и я рассказал ей, какую информацию я хочу. Затем она пошла найти его и дала мне последний контракт, который она нашла.
Комплекс управления здесь - босс, Comboboxdatafilter - секретарь, вот что это значит. У каждого секретаря здесь должен быть свой собственный набор методов, чтобы найти контракт. В прошлом Секретарь обнаружил все, если это было немного связано. Новый секретарь только нашел контракт, который был сопоставлен с информацией, подписанной боссом. Метод для поиска матча совпадает. Этот код такой. На самом деле, до тех пор, пока код тщательно проанализирован, он может быть сопоставлен со многими транзакциями в реальной жизни. Поскольку код также спроектирован людьми, логика никогда не сможет избежать мышления о людях, занимающихся дел.
Выше всего содержание этой статьи. Я надеюсь, что содержание этой статьи поможет всем, кто учится или работа. Я также надеюсь поддержать Wulin.com больше!