十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
怎樣創(chuàng)建自定義DevExpress報(bào)表控件,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),龍?zhí)镀髽I(yè)網(wǎng)站建設(shè),龍?zhí)镀放凭W(wǎng)站建設(shè),網(wǎng)站定制,龍?zhí)毒W(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,龍?zhí)毒W(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
如何構(gòu)建自定義的DevExpress Report控件(Swiss QR-Bill報(bào)表組件),以及如何解決開(kāi)發(fā)過(guò)程中遇到的問(wèn)題,希望這些信息對(duì)創(chuàng)建自定義DevExpress Report控件的用戶(hù)有價(jià)值。
為幫助消除報(bào)表控件開(kāi)發(fā)過(guò)程中的神秘性,下面如何創(chuàng)建設(shè)計(jì)時(shí)設(shè)置、序列化設(shè)計(jì)器組件和相關(guān)的“bricks”,以及如何渲染和打印組件。第一部分包含有關(guān)Swiss QR Bill控件的一般信息,并描述控件本身的要求;第二部分詳細(xì)介紹了組件的實(shí)現(xiàn)。
一般信息
Swiss QR Bill是一種帶有QR碼的新型付款單,Swiss QR Bill包含以下元素:
收據(jù)
付款部分
條碼
發(fā)票可以使用以下布局:
在A4紙上打印的“全額”發(fā)票;
在A6紙上打印的“簡(jiǎn)短”發(fā)票;
連續(xù)打印發(fā)票;
在單個(gè)頁(yè)面上打印的發(fā)票。
“完整”發(fā)票包含收據(jù),而“空”發(fā)票僅包含付款信息。 組件的BillKind屬性指定完整發(fā)票的PaymentAndReceipt值和短期發(fā)票的PaymentOnly值,連續(xù)打印或單獨(dú)打印是通過(guò)IntegratedMode屬性指定的。
將發(fā)票打印在A4或A6紙上(或?qū)С鰹镻DF),并分別通過(guò)BillOption.PreviewSeparatorKind和BillOption.PdfSeparatorKind屬性指定perforation line。該組件允許您更改任何字段的語(yǔ)言和字體,StringData屬性可用于將字段綁定到外部數(shù)據(jù)源。
報(bào)表控件開(kāi)發(fā)–概述
若要?jiǎng)?chuàng)建一個(gè)新的報(bào)表控件,您必須:
選擇一個(gè)base類(lèi),如果找不到合適的控件派生,請(qǐng)從XRControl類(lèi)繼承一個(gè)組件。
創(chuàng)建組件的對(duì)象模型,指定一組屬性和相關(guān)屬性,這些屬性決定如何序列化屬性以及如何在Property網(wǎng)格中顯示屬性。
為Visual Studio和End User Designer創(chuàng)建組件設(shè)計(jì)器,設(shè)計(jì)人員在設(shè)計(jì)時(shí)確定組件的外觀和操作,根據(jù)需要添加屬性。
選擇組件的“brick”,一個(gè)明顯的選擇是基類(lèi)創(chuàng)建的積木,但是,如果組件從XRControl類(lèi)繼承,則有兩個(gè)選項(xiàng) - 如果需要簡(jiǎn)單的Brick,則選擇VisualBrick作為Brick的基類(lèi);如果需要的容器,則選擇PanelBrick。
指定組件如何創(chuàng)建其"brick",并將組件的屬性映射到brick的特征。
實(shí)現(xiàn)BrickExporter類(lèi)來(lái)呈現(xiàn) "brick",覆蓋用于繪圖和導(dǎo)出的方法。
組件實(shí)現(xiàn)
由于SwissQRBill組件是XRControl的后代,因此它在設(shè)計(jì)器的工具箱中具有自己的 "brick"、序列化和項(xiàng)。
設(shè)計(jì)時(shí)
要將組件添加到Visual Studio工具箱,該組件必須具有ToolBoxItem(true)屬性。
WinForms End-User Designer要求向IToolBoxService注冊(cè)該組件,處理DesignPanelLoaded事件,然后調(diào)用IToolBoxService.AddToolBoxItem方法來(lái)注冊(cè)組件。
若要實(shí)現(xiàn)組件的設(shè)計(jì)時(shí)功能,請(qǐng)分別為Visual Studio和WinForms End-User Designer添加Designer和XRDesigner屬性??丶恼{(diào)整大小規(guī)則和智能標(biāo)記項(xiàng)必須根據(jù)需要進(jìn)行修改,智能標(biāo)記項(xiàng)是通過(guò)在組件設(shè)計(jì)器中注冊(cè)的DesignerActionList對(duì)象指定的, GetSelectionRulesCore方法修改控件的調(diào)整大小規(guī)則。
設(shè)置屬性網(wǎng)格時(shí),請(qǐng)?zhí)貏e注意可擴(kuò)展對(duì)象。 在此示例中,將創(chuàng)建ExpandableObjectConverter后代以重寫(xiě)ConvertTo方法,新的ConvertTo方法實(shí)現(xiàn)更改了在屬性網(wǎng)格編輯器中顯示的字符串。 AddressTypeConverter的GetProperties方法刪除該地址類(lèi)型不必要的屬性。
關(guān)于怎樣創(chuàng)建自定義DevExpress報(bào)表控件問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。