ในฐานะที่เป็นซอฟต์แวร์การรายงานที่พัฒนาโดยปลั๊กอิน Finereport จะต้องได้รับการพัฒนาด้วยตัวเอง แพ็คเกจปลั๊กอินที่พัฒนาโดย Fanruan จัดทำอย่างเป็นทางการโดย Fanruan Forum คุณสามารถค้นหาในฟอรัม Fanruan บทความนี้ส่วนใหญ่จะแนะนำวิธีการพัฒนาการควบคุมที่กำหนดเอง นี่คือวิธีการ
ขั้นตอนที่ 1: ยกตัวอย่างอินเทอร์เฟซที่ลงทะเบียนการควบคุม
ให้ข้อมูลสี่ข้อมูลไปยังคลาสควบคุมคลาสอินเตอร์เฟสพา ธ ไอคอนชื่อประเภทการควบคุม
แพ็คเกจ com.hg.free.plugin.customcombo.param; นำเข้า com.fr.design.designer.creator.xcombobox; นำเข้า com.fr.design.fun.impl.abstractParameterwidgetoptionprovider; ชั้นเรียน <? ขยายวิดเจ็ต> classforwidget () {return customcombobox.class; } @Override คลาสสาธารณะ <?> spointionForWidGet () {return xcombobox.class; } @Override String Public String IconPathForWidGet () {return "/com/fr/web/images/combobox.png"; } @Override สตริงสาธารณะ NameForWidGet () {return "Box Drop-Down ที่กำหนดเอง"; -ขั้นตอนที่สองคือการเขียนคลาสควบคุมใหม่
แพ็คเกจ com.hg.free.plugin.customcombo.param; นำเข้า com.fr.form.ui.combobox; นำเข้า com.fr.ui.datafilter; customcombobox ระดับสาธารณะ @Override สตริงสาธารณะ getxType () {return "customcombo"; } @Override dataFilter createDataFilter () {ส่งคืนใหม่ CustomcomboBoxDatafilter (); -เนื่องจากการเปลี่ยนวิธีการกรองคุณต้องเขียนตัวกรองใหม่
แพ็คเกจ com.hg.free.plugin.customcombo.param; นำเข้า com.fr.form.ui.comboBoxDaTafilter; คลาสสาธารณะ customcomboBoxDatafilter ขยาย comboBoxDaTafilter {@Override public boolean ismatch (string txt, string filter) if (null == txt && null == ตัวกรอง) ส่งคืนจริง; return txt.indexof (ตัวกรอง)! =-1; -ขั้นตอนที่ 3: สืบทอดการควบคุมส่วนหน้า JS
(ฟังก์ชั่น ($) {fr.customcomboBoxeditor = fr.extend (fr.comboboxeditor, {_init: function () {fr.customcomboboxeditor.superclass._init.applyตกลง ~ ข้างต้นคือการพัฒนารหัสทั้งหมด ~ จากนั้นเขียน XML และจัดทำแพ็คเกจลงในปลั๊กอินด้วย ANT
รหัสคำอธิบาย:
ก่อนอื่นมาดูกันว่ารหัสนี้มีความหมายอย่างไร
ฉันกำหนดตัวควบคุมด้วยประเภทควบคุม CustomcomboBoxEditor มันสืบทอดวิธีการและคุณสมบัติทั้งหมดของ Comboboxeditor และฉันประกาศแท็กของประเภทควบคุมที่กำหนดไว้ใหม่เป็น customcombo การใช้แท็กนี้คืออะไร? ฉันจะไม่พูดถึงการใช้งานอื่น ๆ เพียงจุดประสงค์ที่นี่คือ Java เองไม่สามารถปล่อยให้ส่วนหน้าได้รับสิ่งที่ควบคุมมันสร้าง ~ แทนโดยบอกการกำหนดค่า front-end เครื่องยนต์ JS front-end (เรียกมันว่าชื่อ) ~ ดำเนินการสคริปต์ที่เกี่ยวข้องตามการกำหนดค่านี้ Fr.CustomComboBoxEditor เช่นแผนที่ ~ จากนั้นโยนการกำหนดค่าของการควบคุมลงในวิธีนี้เพื่อดำเนินการ การควบคุมของเราถูกสร้างขึ้น
เนื่องจากไม่มีข้อกำหนดสำหรับการปรับเปลี่ยนใด ๆ ไปยังส่วนหน้าในตัวอย่างนี้ ~ ดังนั้นจึงไม่มีการเปลี่ยนแปลง ~ มาดูที่แบ็คเอนด์
ตัวอย่างของเราคือการปรับเปลี่ยนวิธีการจับคู่ฟัซซี่
กลไกการจับคู่การควบคุมดั้งเดิมทำอะไร? มันเป็นเช่นนี้: สมมติว่าฉันเป็นเจ้านาย (ฉันสามารถสรุปได้เท่านั้น) ตอนนี้ฉันต้องการทราบรายละเอียดของสัญญากระดาษ แต่ บริษัท มีสัญญากระดาษชิ้นใหญ่ฉันจะหาได้อย่างไร แน่นอนฉันจ้างเลขานุการ (ความงามดีที่สุด) และฉันบอกเธอว่าฉันต้องการข้อมูลอะไร จากนั้นเธอก็ไปหามันและให้สัญญาล่าสุดที่เธอพบ
Combobox ควบคุมที่นี่คือหัวหน้า ComboboxDatafilter เป็นเลขานุการนั่นคือความหมาย เลขานุการทุกคนที่นี่จะต้องมีชุดวิธีการของตัวเองเพื่อค้นหาสัญญา ในอดีตเลขานุการพบทุกอย่างถ้ามันเกี่ยวข้องกันเล็กน้อย เลขานุการคนใหม่พบเฉพาะสัญญาที่ตรงกับข้อมูลที่ได้รับแจ้งจากเจ้านาย วิธีการค้นหาการแข่งขันคือการจับคู่ รหัสนี้เป็นเช่นนี้ ในความเป็นจริงตราบใดที่รหัสได้รับการวิเคราะห์อย่างรอบคอบก็สามารถแมปกับการทำธุรกรรมจำนวนมากในชีวิตจริง เนื่องจากรหัสได้รับการออกแบบโดยมนุษย์ตรรกะจึงไม่สามารถหลบหนีจากความคิดของมนุษย์ในการจัดการกิจการ
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่าเนื้อหาของบทความนี้จะช่วยในการศึกษาหรือทำงานของทุกคน ฉันหวังว่าจะสนับสนุน Wulin.com เพิ่มเติม!