91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么創建自定義DevExpress報表控件

發布時間:2021-12-21 11:21:39 來源:億速云 閱讀:133 作者:柒染 欄目:大數據

怎么創建自定義DevExpress報表控件,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

為幫助消除報表控件開發過程中的神秘性,下面介紹如何創建設計時設置、序列化設計器組件和相關的“bricks”,以及如何渲染和打印組件。第一部分包含有關Swiss QR Bill控件的一般信息,并描述控件本身的要求;第二部分詳細介紹了組件的實現。

"Brick"實現

一般概念

VisualBrick是用于顯示數據的基本元素,VisualBrick元素由一個數據模型 (the brick)及其表示形式(the exporter)組成。

Exporter渲染并將其導出為不同的格式,使用"brick"設置的BrickExporter(Type)屬性指定"brick"。在本文中,我們使用PanelBrickExporter和VisualBrickExporter后代作為exporter。Draw方法被重寫以實現渲染,Brick字段用于獲取對"brick"的訪問。

若要創建一個"brick",請重寫CreateBrick(VisualBrick[] childrenBricks)方法并返回"brick"實例。PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)方法將控件屬性映射到"brick"數據,請查看以下文件中的代碼以獲取更多信息:XRSwissQRBill.cs。

基本類的選擇

Swiss QR Control布局是一個中間帶有文本元素和條形碼的區域,基本類的主要選擇是面板、表格和文本"brick"。panel "brick"可以通過其簡單的結果將組件布置在內部,因此SwissQRBillBrick基于PanelBrick類,exporter則基于PanelBrickExporter類。

實現Service Brick

該規范指出,付款部分可能包含標有角的空白區域。為了滿足此要求,我們創建了一個額外的CornerRectangleBrick和其exporter - CornerRectangleBrickExporter - 它負責繪制角,"brick" 包括BrickType屬性 - 可以重寫該屬性以實現正確的反序列化。

布局實現

選擇PanelBrick作為基本類,您可以使用Bricks屬性訪問其內部的"bricks",相對于面板本身的坐標 - 相對于點(0,0)設置內部“brick”坐標。

將組件分為收貨和付款部分區域。

渲染功能返回其他"bricks" (或 "brick" 組合),這些 "brick" 隨后添加到Bricks集合中。

  • CreateReceiptPart()

  • CreatePaymentPart()

現在,我們必須渲染子區域。

  1. CreateReceiptTitle()

  2. CreateReceiptInformation()

  3. CreateReceiptAmount()

  4. CreateReceiptAcceptancePoint()

  5. CreatePaymentTitle()

  6. CreatePaymentSwissQRCode()

  7. CreatePaymentAmount()

  8. CreatePaymentInformation()

  9. CreatePaymentFurtherInformation()

請查看以下文件中的代碼以獲取更多信息:SwissQRBillBrick.cs.

Exporter實現

exporter在完成 "brick"上繪制裝飾物,這使得可以在預覽或導出的PDF文件中更改外觀。在本文中exporter繪制穿孔線和其他文本, brick的SeparatorKind選項確定要繪制的內容,用于預覽和在PDF導出過程中使用相同的繪制"brick"的機制,主要區別在于傳遞給exporter的Draw方法的IGraphics是具有IPdfGraphics接口的對象。

序列化

一般概念

控件和"brick"都需要序列化,"brick"僅使用xml序列化,并且控件實現xml序列化并支持CodeDom序列化 - 這對于Visual Studio Designer是必需的。

控件序列化

XtraSerializableProperty屬性負責序列化xml中的屬性,僅指定屬性來序列化返回簡單類型的屬性,復雜類型需要具有XtraSerializationVisibility參數類型的構造函數(最常用的值是Hidden,Collection,Reference,Content)。

DesignerSerializationVisibility屬性負責Visual Studio Designer中的CodeDOM序列化,它只有相關枚舉的三個變體 - 隱藏、可見和內容,使用可見屬性值標記集合或引用,DefaultValue屬性確定屬性值是否包含在序列化中。

Brick序列化

僅XML序列化是必需的,為了正確進行反序列化,請將 "brick’s" 文本類型(在Brick級別上覆蓋的BrickType屬性)映射為真實類型。BrickFactory.BrickResolve方法用于映射,為實現BrickResolve方法請查看以下文件中的代碼:CustomControl.cs

組件使用

要在Visual Studio Designer中使用組件,請將其添加到Visual Studio Toolbox中。

關于怎么創建自定義DevExpress報表控件問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青田县| 牟定县| 白城市| 乌拉特前旗| 霸州市| 荣成市| 大连市| 富蕴县| 皋兰县| 石屏县| 延庆县| 水富县| 前郭尔| 通榆县| 衡阳市| 吴旗县| 微博| 昌图县| 邓州市| 遂宁市| 拉孜县| 深州市| 兰坪| 莲花县| 武冈市| 罗源县| 辽阳市| 广灵县| 盐池县| 鹿泉市| 三亚市| 甘洛县| 马龙县| 长乐市| 佳木斯市| 交口县| 思茅市| 罗江县| 弥渡县| 深泽县| 察隅县|