怎么創(chuàng)建自定義DevExpress報(bào)表控件,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
創(chuàng)新互聯(lián)制作網(wǎng)站網(wǎng)頁找三站合一網(wǎng)站制作公司,專注于網(wǎng)頁設(shè)計(jì),成都網(wǎng)站制作、成都做網(wǎng)站,網(wǎng)站設(shè)計(jì),企業(yè)網(wǎng)站搭建,網(wǎng)站開發(fā),建網(wǎng)站業(yè)務(wù),680元做網(wǎng)站,已為超過千家服務(wù),創(chuàng)新互聯(lián)網(wǎng)站建設(shè)將一如既往的為我們的客戶提供最優(yōu)質(zhì)的網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷推廣服務(wù)!
為幫助消除報(bào)表控件開發(fā)過程中的神秘性,下面介紹如何創(chuàng)建設(shè)計(jì)時設(shè)置、序列化設(shè)計(jì)器組件和相關(guān)的“bricks”,以及如何渲染和打印組件。第一部分包含有關(guān)Swiss QR Bill控件的一般信息,并描述控件本身的要求;第二部分詳細(xì)介紹了組件的實(shí)現(xiàn)。
"Brick"實(shí)現(xiàn)
一般概念
VisualBrick是用于顯示數(shù)據(jù)的基本元素,VisualBrick元素由一個數(shù)據(jù)模型 (the brick)及其表示形式(the exporter)組成。
Exporter渲染并將其導(dǎo)出為不同的格式,使用"brick"設(shè)置的BrickExporter(Type)屬性指定"brick"。在本文中,我們使用PanelBrickExporter和VisualBrickExporter后代作為exporter。Draw方法被重寫以實(shí)現(xiàn)渲染,Brick字段用于獲取對"brick"的訪問。
若要創(chuàng)建一個"brick",請重寫CreateBrick(VisualBrick[] childrenBricks)方法并返回"brick"實(shí)例。PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)方法將控件屬性映射到"brick"數(shù)據(jù),請查看以下文件中的代碼以獲取更多信息:XRSwissQRBill.cs。
基本類的選擇
Swiss QR Control布局是一個中間帶有文本元素和條形碼的區(qū)域,基本類的主要選擇是面板、表格和文本"brick"。panel "brick"可以通過其簡單的結(jié)果將組件布置在內(nèi)部,因此SwissQRBillBrick基于PanelBrick類,exporter則基于PanelBrickExporter類。
實(shí)現(xiàn)Service Brick
該規(guī)范指出,付款部分可能包含標(biāo)有角的空白區(qū)域。為了滿足此要求,我們創(chuàng)建了一個額外的CornerRectangleBrick和其exporter - CornerRectangleBrickExporter - 它負(fù)責(zé)繪制角,"brick" 包括BrickType屬性 - 可以重寫該屬性以實(shí)現(xiàn)正確的反序列化。
布局實(shí)現(xiàn)
選擇PanelBrick作為基本類,您可以使用Bricks屬性訪問其內(nèi)部的"bricks",相對于面板本身的坐標(biāo) - 相對于點(diǎn)(0,0)設(shè)置內(nèi)部“brick”坐標(biāo)。
將組件分為收貨和付款部分區(qū)域。
渲染功能返回其他"bricks" (或 "brick" 組合),這些 "brick" 隨后添加到Bricks集合中。
CreateReceiptPart()
CreatePaymentPart()
現(xiàn)在,我們必須渲染子區(qū)域。
CreateReceiptTitle()
CreateReceiptInformation()
CreateReceiptAmount()
CreateReceiptAcceptancePoint()
CreatePaymentTitle()
CreatePaymentSwissQRCode()
CreatePaymentAmount()
CreatePaymentInformation()
CreatePaymentFurtherInformation()
請查看以下文件中的代碼以獲取更多信息:SwissQRBillBrick.cs.
Exporter實(shí)現(xiàn)
exporter在完成 "brick"上繪制裝飾物,這使得可以在預(yù)覽或?qū)С龅腜DF文件中更改外觀。在本文中exporter繪制穿孔線和其他文本, brick的SeparatorKind選項(xiàng)確定要繪制的內(nèi)容,用于預(yù)覽和在PDF導(dǎo)出過程中使用相同的繪制"brick"的機(jī)制,主要區(qū)別在于傳遞給exporter的Draw方法的IGraphics是具有IPdfGraphics接口的對象。
序列化
一般概念
控件和"brick"都需要序列化,"brick"僅使用xml序列化,并且控件實(shí)現(xiàn)xml序列化并支持CodeDom序列化 - 這對于Visual Studio Designer是必需的。
控件序列化
XtraSerializableProperty屬性負(fù)責(zé)序列化xml中的屬性,僅指定屬性來序列化返回簡單類型的屬性,復(fù)雜類型需要具有XtraSerializationVisibility參數(shù)類型的構(gòu)造函數(shù)(最常用的值是Hidden,Collection,Reference,Content)。
DesignerSerializationVisibility屬性負(fù)責(zé)Visual Studio Designer中的CodeDOM序列化,它只有相關(guān)枚舉的三個變體 - 隱藏、可見和內(nèi)容,使用可見屬性值標(biāo)記集合或引用,DefaultValue屬性確定屬性值是否包含在序列化中。
Brick序列化
僅XML序列化是必需的,為了正確進(jìn)行反序列化,請將 "brick’s" 文本類型(在Brick級別上覆蓋的BrickType屬性)映射為真實(shí)類型。BrickFactory.BrickResolve方法用于映射,為實(shí)現(xiàn)BrickResolve方法請查看以下文件中的代碼:CustomControl.cs
組件使用
要在Visual Studio Designer中使用組件,請將其添加到Visual Studio Toolbox中。
關(guān)于怎么創(chuàng)建自定義DevExpress報(bào)表控件問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。