原創(chuàng)|其它|編輯:郝浩|2012-09-27 14:29:33.000|閱讀 422 次
概述:默認(rèn)情況下, 由于表格是一個(gè)“所見即所得”的控件,DXGrid以一種簡(jiǎn)單的表格格式被導(dǎo)出和打印。但是你仍然可以調(diào)節(jié)表格打印的外觀。這篇文章講述了怎樣使用表格 的打印模板和選項(xiàng)來(lái)創(chuàng)建你自己特定的打印外觀。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
默認(rèn)情況下, 由于表格是一個(gè)“所見即所得”的控件,DXGrid以一種簡(jiǎn)單的表格格式被導(dǎo)出和打印。但是你仍然可以調(diào)節(jié)表格打印的外觀。這篇文章講述了怎樣使用表格 的打印模板和選項(xiàng)來(lái)創(chuàng)建你自己特定的打印外觀。但是, 如果你想得到全部的自定義數(shù)據(jù)打印外觀,歡迎你考慮使用我們的 產(chǎn)品,它會(huì)提供給你一種創(chuàng)建自定義報(bào)告的強(qiáng)大而靈活的方式 。
默認(rèn)情況下, 表格是作為一個(gè)簡(jiǎn)單的表來(lái)打印 。它的寬度被調(diào)節(jié)成適應(yīng)一個(gè)報(bào)告頁(yè)面,你能夠通過(guò)設(shè)置打印自動(dòng)寬度為False來(lái)切換自動(dòng)寬度。
你可以通過(guò)分別設(shè)置打印列表頭和打印總摘要屬性為false來(lái)從打印視圖上移除頭部和底部
每一個(gè)表格打印部分的外觀可以被重定義。因此,你能使用PrintHeaderTemplate 屬性來(lái)設(shè)置自定義表頭。
[XML]
<dxg:GridControl.Resources> <DataTemplate x:Key="CustomPrintHeaderTemplate"> <Grid> <Rectangle RadiusX="5" RadiusY="5" Fill="Red" dxp:ExportSettings.TargetType="Image"/> <dxe:TextEdit Text="Custom header template" IsPrintingMode="True" Width="{Binding Path=Content.(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth}" FontSize="20"/> </Grid> </DataTemplate> you </dxg:GridControl.Resources> <dxg:GridControl.View> <dxg:TableView PrintHeaderTemplate="{StaticResource CustomPrintHeaderTemplate}"/> </dxg:GridControl.View>
如果你想獲取表頭模板的 column headers文本,你可以使用以下的綁定聲明:
[XML]
<dxe:TextEdit Text="{Binding Path=Content.View.DataControl.Columns[ColumnName].HeaderCaption}"/>
注意:被放置在表頭模板中的TextEdit 擁有一個(gè)設(shè)置為true的 IsPrintMode屬性,Rectangle控件有一個(gè)ExportSettings.TargetType。打印模板中所使用的所有控件必須被調(diào)整以便打印。因此,任何從BaseEdit繼承的控件都必須將IsPrintingMode屬性設(shè)置為true。
其他的每個(gè)控件必須通過(guò)ExportSettings 屬性來(lái)調(diào)節(jié)打印。因此,它必須要提供ExportSettings.TargetType屬性值。這個(gè)屬性被定義在 xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing" 命名空間中,并指定如何利用打印系統(tǒng)來(lái)利用該控件。
例如, 如果你想打印TextBlock, 必須將ExportSettings.TargetType指定為文本,這樣TextBlock才會(huì)被打印。如果你想設(shè)置一些控件的背景和前景,你應(yīng)該分別設(shè)置ExportSettings.Background和ExportSettings.Foreground。
[XML]
<TextBlock Text="Textblock text" Margin="10" Foreground="Red" dxp:ExportSettings.TargetType="Text" dxp:ExportSettings.Background="White" dxp:ExportSettings.Foreground="Red" />
形狀和復(fù)合控件可以作為圖形導(dǎo)出:
[XML]
<Ellipse Fill="Yellow" Width="15" Height="15" dxp:ExportSettings.TargetType="Image" dxp:ExportSettings.Background="Transparent" />
如何你的打印模板內(nèi)有一些面板,你應(yīng)該在面板中設(shè)置ExportSettings.TargetType屬性,以便打印的子系統(tǒng)處理子元素。
[XML]
<StackPanel Orientation="Horizontal" dxp:ExportSettings.TargetType="Panel"> <TextBlock Text="Property: " Margin="2" dxp:ExportSettings.TargetType="Text"/> <TextBlock Text="Value" Margin="2" dxp:ExportSettings.TargetType="Text"/> </StackPanel>
如果一個(gè)控件沒有指定導(dǎo)出設(shè)置類型,控件將會(huì)被打印子系統(tǒng)忽視,它將會(huì)在打印文檔中丟失。這也適用于在IsPrintingMode屬性沒有設(shè)置的編輯器中。
表格底部模板可以以它在頭部模板中定義的方式來(lái)同樣被定義。
[XML]
<dxg:GridControl.Resources> <DataTemplate x:Key="CustomPrintFooterTemplate"> <dxe:TextEdit IsPrintingMode="True" Width="{Binding Path=Content.(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth}" Text="{Binding Path=Path=Content.View.DataControl.Columns[ColumnName].TotalSummaryText, Mode=OneWay}" /> </DataTemplate> </dxg:GridControl.Resources>
PrintRowTemplate屬性定義了一個(gè)用于顯示每一行表格的模板。在這里你可以放置你的行單元值去顯示一個(gè)行內(nèi)容。模板的DataContext.Content屬性中有一個(gè)RowData類對(duì)象。為了簡(jiǎn)化針對(duì)在這個(gè)模板上行單元值的綁定表達(dá)式 ,你可以通過(guò)以下的代碼來(lái)定義模板布局:
[XML]
<DataTemplate x:Key="CustomPrintRowTemplate"> <ContentControl Foreground="{Binding Foreground, RelativeSource={RelativeSource TemplatedParent}}"> <Grid DataContext="{Binding DataContext.Content.Row, RelativeSource={RelativeSource TemplatedParent}}" Width="{Binding Path=DataContext.Content.(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth, ElementName=contentControl}" > <Rectangle RadiusX="5" RadiusY="5" Fill="Red" dxp:ExportSettings.TargetType="Image"/> <dxe:ImageEdit Source="{Binding Path=Photo}" IsPrintingMode="True"/> <dxe:TextEdit EditValue="{Binding FirstName}" IsPrintingMode="True"/> </Grid> </ContentControl> </DataTemplate>
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:DevExpress中文網(wǎng)