كبرنامج تقرير تم تطويره بواسطة المكون الإضافي ، يجب تطوير Finereport بنفسه. يتم توفير حزمة المكونات التي طورتها Fanruan رسميًا بواسطة Fanruan Forum. يمكنك الذهاب إلى منتدى Fanruan. ستقدم هذه المقالة بشكل أساسي كيفية تطوير عنصر تحكم مخصص. هذه منهجية.
الخطوة 1: إنشاء واجهة تسجل التحكم
قدم أربعة معلومات لفئة التحكم لدينا ، فئة الواجهة ، مسار أيقونة ، اسم نوع التحكم
package com.hg.free.plugin.customcombo الفئة <؟ يمتد widget> classForWidget () {return customCombobox.class ؛ } Override public class <؟> sameforwidget () {return xcombobox.class ؛ } Override Public String IconPathForWidget () {return "/com/fr/web/images/combobox.png" ؛ } Override public string nameforwidget () {return "custom srop-down box" ؛ }}الخطوة الثانية هي إعادة كتابة فئة التحكم
Package com.hg.free.plugin.customcombo.param ؛ import com.fr.form.ui.combobox ؛ import com.fr.ui.datafilter ؛ public custom customcombobox يمتد combobox {private static static final serialversionuid = 716971062153345236l ؛ Override public string getxtype () {return "customCombo" ؛ } Override DataFilter CreateTAfilter () {return new CustomComboboBoxDataFilter () ؛ }}لأنه لتغيير طريقة التصفية ، يجب عليك إعادة كتابة مرشح
package com.hg.free.plugin.customCombo.param ؛ import com.fr.form.ui.comboboxdatafilter ؛ public custom customComboboxDatafilter يمتد comboBoxDatafilter {override public boolean isMatch (String txt ، سلسلة مرشح) if (null == txt && null == filter) return true ؛ return txt.indexof (filter)! =-1 ؛ }}الخطوة 3: ورث التحكم في الواجهة الأمامية JS
(function ($) {fr.customComboboBoxEditor = fr.Extend (fr.comboboxeditor ، {_init: function () {fr.CustomComboBoxeditor.SuperClass._init.apply (this ، enduments) ؛}}) ؛ $ .shortcut ("customcombo" ،موافق ~ ما سبق هو كل تطوير التعليمات البرمجية ~ ثم اكتب XML وقم بتعبئته في مكون إضافي باستخدام ANT.
شرح الرمز:
أولاً ، دعنا نرى ماذا يعني هذا الرمز؟
لقد حددت عنصر تحكم مع نوع التحكم CustomComboboxeditor. يرث جميع الطرق وخصائص ComboBoxEditor ، وأعلنت علامة نوع التحكم المحدد حديثًا على أنه CustomCombo. ما هو استخدام هذه العلامة؟ لن أتحدث عن الاستخدامات الأخرى. الغرض فقط من هنا هو أن Java نفسها لا يمكن أن تدع الواجهة الأمامية تحصل على ما يتحكم فيه في توليده ~ بدلاً من ذلك ، من خلال إخبار الواجهة الأمامية بتكوين ، محرك JS في الواجهة الأمامية (دعنا نسميه هذا هو الاسم) ~ تنفيذ البرنامج النصي المقابل للتكوين وفقًا للتكوين المخصص للمكافحة المخصصة ، فإنه يتوافق fr.customcomboboxeditor مثل خريطة ~ ثم يرمي تكوين عنصر التحكم في هذه الطريقة لتنفيذها. يتم توليد سيطرتنا.
نظرًا لعدم وجود أي شرط لأي تعديل على الواجهة الأمامية في هذا المثال ~ لذلك لا يتم إجراء أي تغييرات ~ دعونا نلقي نظرة على الواجهة الخلفية أدناه.
مثالنا هو تعديل طريقة المطابقة الغامضة.
إذن ماذا فعلت آلية مطابقة التحكم الأصلي؟ إنه مثل هذا: لنفترض أنني مدرب (لا يمكنني إلا أن أفترض ذلك). الآن أريد أن أعرف تفاصيل عقد الورق ، لكن الشركة لديها جزء كبير من العقد الورقي ، كيف يمكنني العثور عليه؟ بالطبع ، أقوم بتوظيف سكرتير (الجمال هو الأفضل) ، وأخبرتها ما هي المعلومات التي أريدها. ثم ذهبت للعثور عليها وأعطتني العقد الأخير الذي وجدته.
السيطرة Combobox هنا هو الرئيس ، ComboBoxDatafilter هو الأمين ، وهذا ما يعنيه. يجب أن يكون لكل سكرتير هنا مجموعة أساليبه الخاصة للعثور على عقد. في الماضي ، وجد الأمين كل شيء إذا كان مرتبطًا قليلاً. لم يجد السكرتير الجديد سوى العقد الذي تم مطابقته للمعلومات التي قدمها الرئيس. طريقة العثور على المباراة تطابق. هذا الرمز مثل هذا. في الواقع ، طالما تم تحليل الكود بعناية ، يمكن تعيينه إلى العديد من المعاملات في الحياة الحقيقية. نظرًا لأن الكود مصمم أيضًا من قبل البشر ، فإن المنطق لا يمكن أن يفلت من تفكير البشر في التعامل مع الشؤون.
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون محتوى هذه المقالة من بعض المساعدة في دراسة أو عمل الجميع. آمل أيضًا دعم wulin.com أكثر!