溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

怎樣創(chuàng)建自定義DevExpress報(bào)表控件

發(fā)布時(shí)間:2021-12-21 11:08:39 來(lái)源:億速云 閱讀:101 作者:柒染 欄目:大數(shù)據(jù)

怎樣創(chuàng)建自定義DevExpress報(bào)表控件,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

如何構(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)表控件,您必須:

  1. 選擇一個(gè)base類(lèi),如果找不到合適的控件派生,請(qǐng)從XRControl類(lèi)繼承一個(gè)組件。

  2. 創(chuàng)建組件的對(duì)象模型,指定一組屬性和相關(guān)屬性,這些屬性決定如何序列化屬性以及如何在Property網(wǎng)格中顯示屬性。

  3. 為Visual Studio和End User Designer創(chuàng)建組件設(shè)計(jì)器,設(shè)計(jì)人員在設(shè)計(jì)時(shí)確定組件的外觀和操作,根據(jù)需要添加屬性。

  4. 選擇組件的“brick”,一個(gè)明顯的選擇是基類(lèi)創(chuàng)建的積木,但是,如果組件從XRControl類(lèi)繼承,則有兩個(gè)選項(xiàng) - 如果需要簡(jiǎn)單的Brick,則選擇VisualBrick作為Brick的基類(lèi);如果需要的容器,則選擇PanelBrick。

  5. 指定組件如何創(chuàng)建其"brick",并將組件的屬性映射到brick的特征。

  6. 實(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)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI