Vs2005報表設計器XML分析總結
作者:長江支流
關鍵字:Vs2005、打印、報表設計器、XML
日 期:2005-12-16
這裏的XML打印描述文件都是由VS2005reportdesigner設計器設計生成的,它描述的是我們手動設計報表的紙張大小信息及報表體的分欄數、邊框、數據信息及格式等等。
下面由序號加文件名(擴展名爲.rdlc)把研究的格式列出來,以便在MIS金質打印通XML分析器中可以分析併兼容部分常用屬性。
需要說明的是,由於這裏這個Blog不能直接上傳文件,所以直接把XML貼出來,完整的文件請到我的主面上下載。
0--設計時默認頁面設置.rdlc
初始報表設計器畫板大小及一些默認值,主要是在rd:InitialDimensions中描述頁面大小及默認單位,提供英吋和釐米兩種單位,關係約爲1Inch = 2.5釐米,注意僅僅是大約,以rd:標記開頭,頁面大小及左右頂底頁邊距見名知義。ColumnSpacing描述的是分欄間隔,默認1CM.在Report中定義的Width及Body/Height,其實就是在畫板中設計的報表寬與高。
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<Width>6.5in</Width>
<Body>
<Height>2in</Height>
</Body>
<rd:InitialLanguage>true</rd:InitialLanguage>
<rd:InitialDimensions>
<rd:UnitType>Inch</rd:UnitType>
<rd:LeftMargin>1in</rd:LeftMargin>
<rd:RightMargin>1in</rd:RightMargin>
<rd:TopMargin>1in</rd:TopMargin>
<rd:BottomMargin>1in</rd:BottomMargin>
<rd:PageWidth>8.5in</rd:PageWidth>
<rd:PageHeight>11in</rd:PageHeight>
<rd:ColumnSpacing>0.5in</rd:ColumnSpacing>
</rd:InitialDimensions>
<rd:InitialDimensions>
<rd:UnitType>Cm</rd:UnitType>
<rd:Width>16cm</rd:Width>
<rd:Height>5cm</rd:Height>
<rd:LeftMargin>2.5cm</rd:LeftMargin>
<rd:RightMargin>2.5cm</rd:RightMargin>
<rd:TopMargin>2.5cm</rd:TopMargin>
<rd:BottomMargin>2.5cm</rd:BottomMargin>
<rd:GridSpacing>0.25cm</rd:GridSpacing>
<rd:PageWidth>21cm</rd:PageWidth>
<rd:PageHeight>29.7cm</rd:PageHeight>
<rd:ColumnSpacing>1cm</rd:ColumnSpacing>
</rd:InitialDimensions>
</Report>
這些信息可以單擊畫板,然後右健查看屬性就可以看到Report。
1--Body及頁面邊框樣式及背景設置.rdlc
單擊畫板上的報表體,然後右健查看屬性就可以看到報表真正的頁面設置信息了,
其中包括:
分欄信息如分欄數、分欄之間的間距、寬與高(欄,當不分欄時實際就是報表寬高)
格式信息如背景顏色、背景圖片、邊框(顏色、線樣式、線粗),在Style中描述。
我倒覺得Report/Width應放到Report/Body中,也就是類似Report/Body/Height。
這裏說說邊框,Html中,有個亮邊框和暗邊框,亮邊框就是左邊和頂邊線,暗邊框就是右邊和底邊線,它們的屬性就是顏色。這裏搞出一個默認的邊框顏色,和Html保持一致,但沒有亮、暗邊框要領概念了,它搞的更廣,乾脆就矩形的四邊即左、右、頂、底邊分析描述。線樣式、線粗同樣也可以門針對四邊進行描述。
值得一提的是,如果指定的圖像但圖像文件不存在,運行報表時會提示出錯。其實沒必要嘛,直接跳過去得了,本機的倒好,Internet誰能保證那個圖片提供的服務器不Down機啊。於是設置了本機的一個有效圖片,運行時提示報表包含外部圖片,還要設置EnableExternalImages屬性,真是羅嗦:)。
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<InteractiveWidth>21cm</InteractiveWidth>
<InteractiveHeight>29.7cm</InteractiveHeight>
<rd:GridSpacing>0.25cm</rd:GridSpacing>
<rd:SnapToGrid>true</rd:SnapToGrid>
<rd:ReportID>d9dddd8a-9336-41fb-ad58-7071ffac1a5a</rd:ReportID>
<rd:DrawGrid>true</rd:DrawGrid>
<Language>zh-CN</Language>
<LeftMargin>2.5cm</LeftMargin>
<RightMargin>2.5cm</RightMargin>
<TopMargin>2.5cm</TopMargin>
<BottomMargin>2.5cm</BottomMargin>
<PageHeight>29.7cm</PageHeight>
<PageWidth>21cm</PageWidth>
<Width>8cm</Width>
<Body>
<Columns>2</Columns>
<ColumnSpacing>1cm</ColumnSpacing>
<Height>6cm</Height>
<Style>
<BackgroundColor>Pink</BackgroundColor>
<BackgroundImage>
<Value>MISGoldPrinter.JPG</Value>
<Source>External</Source>
<BackgroundRepeat>NoRepeat</BackgroundRepeat>
</BackgroundImage>
<BorderColor>
<Default>DarkGray</Default>
<Top>Silver</Top>
<Default>DarkGray</Default>
<Left>Lime</Left>
<Right>Red</Right>
</BorderColor>
<BorderStyle>
<Default>Dotted</Default>
</BorderStyle>
<BorderWidth>
<Default>2pt</Default>
</BorderWidth>
</Style>
</Body>
</Report>
2--頁眉頁腳.rdlc
頁眉頁腳的概念我想就不用說了,用過word和Excel的都知道。它的屬性同Body的Style一樣,這裏不敖述。
主要是增加特有屬性PrintOnFirstPage、PrintOnLastPage表示是否在第一頁和最後一頁顯示。雖然可以指定Width和Height屬性,但是Width並不保存在XML文件中,不難不理解,頁眉頁腳寬就是打印頁的寬。
出現With出現在屬性中的原因可以想象是由於同一體系中繼承的問題。就像MIS金質打印通XML解析器,所有類統一繼承並實現一個接口,提供Rectang表示元素所在的打印區,即使是描述一條直線,我們同樣也可以看到X、Y、Width和Height屬性。
這些信息可以單擊畫板,然後右健查看PageHeader/Footer屬性就可以看到Report。
Body與頁眉頁腳的區別和聯繫:
相同點:都是畫板即頁面的一個打印區,都可作爲報表元素的容器,既然是這樣,那當然都可以設置樣式。
不同點:Body可以分欄,而頁眉頁腳只是一欄;Body每頁都打印,而頁眉頁腳可以選擇首尾頁是否打印。
<?xml version="1.0" encoding="utf-8"?>
<Report >
<PageHeader>
<Height>1.25cm</Height>
<PrintOnLastPage>true</PrintOnLastPage>
<PrintOnFirstPage>true</PrintOnFirstPage>
</PageHeader>
<PageFooter>
<Height>1.5cm</Height>
<PrintOnLastPage>true</PrintOnLastPage>
<PrintOnFirstPage>true</PrintOnFirstPage>
</PageFooter>
</Report>
報表元素
上面說了Body與頁眉頁腳都可作爲報表元素的容器。報表元素包括Textbox、Line、Table、Rectangle,其中Rectangle也可作爲報表元素的容器。報表元素全部在ReportItems中描述。
3--TextBox.rdlc
同Body一樣,TextBox同樣具有Style,另外就是描述文本的Value及文本所有矩形區Left、Top、Width、Height,可以指定CanGrow、CanShrink自適應。文本字體、顏色、對齊及邊框等在Style中描述,其中PaddingLeft/Right/Top/Bottom描述文本距邊框的起點位置。
<Body>
<ReportItems>
<Textbox Name="textbox1">
<Value>Hello World!</Value>
<Left>1cm</Left>
<Top>0.75cm</Top>
<Width>5.5cm</Width>
<Height>0.75cm</Height>
<CanShrink>true</CanShrink>
<CanGrow>true</CanGrow>
<Style>
<Color>SpringGreen</Color>
<FontFamily>宋體</FontFamily>
<FontStyle>Italic</FontStyle>
<FontWeight>700</FontWeight>
<TextDecoration>Underline</TextDecoration>
<TextAlign>Left</TextAlign>
<VerticalAlign>Bottom</VerticalAlign>
<Direction>RTL</Direction>
<PaddingLeft>20pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>10pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
<BorderColor>
<Default>Red</Default>
</BorderColor>
<BorderStyle>
<Default>Inset</Default>
</BorderStyle>
</Style>
</Textbox>
</ReportItems>
</Body>
4--Line.rdlc
Location和EndPoint存入XML文件時,計算並轉換爲矩形區Left、Top、Width、Height。
LineColor、LineStyle、LineWidth存入XML文件時保存爲Style,相應的對應爲BoderColor、BoderStyle、BoderWidth並存入Default標記。
<Body>
<ColumnSpacing>1cm</ColumnSpacing>
<ReportItems>
<Line Name="line1">
<Left>5cm</Left>
<Top>1.25cm</Top>
<Width>6cm</Width>
<Height>0.75cm</Height>
<Label>這是線</Label>
<Visibility>
<Hidden>true</Hidden>
</Visibility>
<Style>
<BorderColor>
<Default>Red</Default>
</BorderColor>
<BorderStyle>
<Default>Dotted</Default>
</BorderStyle>
<BorderWidth>
<Default>2pt</Default>
</BorderWidth>
<FontFamily>宋體</FontFamily>
</Style>
</Line>
</ReportItems>
<Height>5cm</Height>
</Body>
5--Rectangle.rdlc
和Body一樣,它可作爲報表元素的容器,因此,也有Style下的Boder相關屬性,當然,既然是一個矩形,少不了Left、Top、Width、Height屬性。PageBreakAtStart、PageBreakAtEnd表示中否在這這前或之後換頁。可以在此Rectangle後畫一個Line後運行看看效果。但它的有組合在運行時有的卻並不是我們想像的。
<Body>
<ReportItems>
<Rectangle Name="rectangle1">
<Left>5.5cm</Left>
<Top>0.75cm</Top>
<Width>7.01058cm</Width>
<Height>2.98942cm</Height>
<PageBreakAtStart>true</PageBreakAtStart>
<PageBreakAtEnd>false</PageBreakAtEnd>
<Style>
<BorderStyle>
<Default>Inset</Default>
</BorderStyle>
<FontFamily>宋體</FontFamily>
<BorderColor>
<Default>DarkOrange</Default>
</BorderColor>
</Style>
</Rectangle>
</ReportItems>
</Body>
6--Image.rdlc
它是在一個矩形區內,所以基本上具有Rectangle的固有屬性,只是把把背景圖片這個屬性專門拿出來。
<Body>
<ReportItems>
<Image Name="image1">
<Source>External</Source>
<Value>c:/MISGoldPrinter.JPG</Value>
<Sizing>AutoSize</Sizing>
<Left>6cm</Left>
<Top>1cm</Top>
<Width>5.74074cm</Width>
<Height>5cm</Height>
</Image>
</ReportItems>
</Body>
7--Char.rdlc
Char基本具有Rectangle的固有屬性和TextBox屬性,需要數據源的支持。
對於列表(list)和子報表(SubReport),list可作爲其它元素的容器。
表格Table,在列數固定和行數可變的網格中顯示數據,由TableRows和TableColumns兩部分組成。
TableRows在Header、Details、Footer三個部分中描述,每個TableRow由多個TableCell構成,TableCell的內容一般爲TextBox,也可以是其它的報表元素,如Rectangle等,唯一不能的是Line。
8--Table.rdlc
Table:
表格在一個矩形區,所以具有Rectangle的屬性,當然,它不具有Height,想一想,爲什麼?同時默認情況下具有TextBox屬性,以用來從整體上改變單元格的格式。RepeatHeaderOnNewPage、RepeatFooterOnNewPage屬性值分別保存於Header、Footer中的RepeatOnNewPage屬性中。
TableColumn:
路徑爲Report/Body/ReportItems/Table/TableColumns,包含背景、邊框、列寬(Width)及是否爲固定列FixedHeader。
當然,這是以Body爲容器的路徑,如果是其它元素或嵌套情況,Report/Body相應的改爲容器的路徑。以下表示路徑時不再特別說明。
如:
<TableColumns>
<TableColumn>
<Width>3cm</Width>
<FixedHeader>true</FixedHeader>
</TableColumn>
...
<TableColumns>
其它的屬性一般爲所在該列報表元素特有屬性,如果設置,則直接保存到特定的報表元素屬性描述中,而不是保存在TableColumn中。
Header、Details、Footer:
根據名字可知,它們是描述表頭表底固定行數據及表中間可變的數據行。因爲有可變行,所以,沒有Table不具有Height。RepeatOnNewPage表示是否每頁都打印。
以Header爲例,路麼爲Report/Body/ReportItems/Table/Header。
Table及相關的元素的XML文件主體描述如下:
<Body>
<ReportItems>
<Table Name="table1">
<Left>5cm</Left>
<Top>0.75cm</Top>
<Width>7.75132cm</Width>
<PageBreakAtStart>true</PageBreakAtStart>
<PageBreakAtEnd>true</PageBreakAtEnd>
<Style>
<TextAlign>Left</TextAlign>
<FontFamily>宋體</FontFamily>
<Direction>RTL</Direction>
<Color>Red</Color>
<TextDecoration>Underline</TextDecoration>
<FontStyle>Italic</FontStyle>
</Style>
<TableColumns>
<TableColumn>
<Width>3cm</Width>
<FixedHeader>true</FixedHeader>
</TableColumn>
<TableColumn>
<Width>2.24868cm</Width>
</TableColumn>
<TableColumn>
<Width>2.24868cm</Width>
</TableColumn>
</TableColumns>
<Footer>
<RepeatOnNewPage>true</RepeatOnNewPage>
<TableRows>
<TableRow>
<TableCells>
<TableCell>
<ReportItems>
<Textbox Name="textbox7">
<rd:DefaultName>textbox7</rd:DefaultName>
<ZIndex>5</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox8">
<rd:DefaultName>textbox8</rd:DefaultName>
<ZIndex>4</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox9">
<rd:DefaultName>textbox9</rd:DefaultName>
<ZIndex>3</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
</TableCells>
<Height>1.08466cm</Height>
</TableRow>
</TableRows>
</Footer>
<Details>
<TableRows>
<TableRow>
<TableCells>
<TableCell>
<ReportItems>
<Textbox Name="textbox4">
<rd:DefaultName>textbox4</rd:DefaultName>
<ZIndex>2</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox5">
<rd:DefaultName>textbox5</rd:DefaultName>
<ZIndex>1</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox6">
<rd:DefaultName>textbox6</rd:DefaultName>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
</TableCells>
<Height>1.08466cm</Height>
</TableRow>
</TableRows>
</Details>
<Header>
<RepeatOnNewPage>true</RepeatOnNewPage>
<TableRows>
<TableRow>
<TableCells>
<TableCell>
<ReportItems>
<Textbox Name="textbox1">
<rd:DefaultName>textbox1</rd:DefaultName>
<ZIndex>8</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox2">
<rd:DefaultName>textbox2</rd:DefaultName>
<ZIndex>7</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox3">
<rd:DefaultName>textbox3</rd:DefaultName>
<ZIndex>6</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
</TableCells>
</TableRow>
</TableRows>
</Header>
</Table>
</ReportItems>
</Body>
相關連接:
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<Width>6.5in</Width>
<Body>
<Height>2in</Height>
</Body>
<rd:InitialLanguage>true</rd:InitialLanguage>
<rd:InitialDimensions>
<rd:UnitType>Inch</rd:UnitType>
<rd:LeftMargin>1in</rd:LeftMargin>
<rd:RightMargin>1in</rd:RightMargin>
<rd:TopMargin>1in</rd:TopMargin>
<rd:BottomMargin>1in</rd:BottomMargin>
<rd:PageWidth>8.5in</rd:PageWidth>
<rd:PageHeight>11in</rd:PageHeight>
<rd:ColumnSpacing>0.5in</rd:ColumnSpacing>
</rd:InitialDimensions>
<rd:InitialDimensions>
<rd:UnitType>Cm</rd:UnitType>
<rd:Width>16cm</rd:Width>
<rd:Height>5cm</rd:Height>
<rd:LeftMargin>2.5cm</rd:LeftMargin>
<rd:RightMargin>2.5cm</rd:RightMargin>
<rd:TopMargin>2.5cm</rd:TopMargin>
<rd:BottomMargin>2.5cm</rd:BottomMargin>
<rd:GridSpacing>0.25cm</rd:GridSpacing>
<rd:PageWidth>21cm</rd:PageWidth>
<rd:PageHeight>29.7cm</rd:PageHeight>
<rd:ColumnSpacing>1cm</rd:ColumnSpacing>
</rd:InitialDimensions>
</Report>
這些信息可以單擊畫板,然後右健查看屬性就可以看到Report。
1--Body及頁面邊框樣式及背景設置.rdlc
單擊畫板上的報表體,然後右健查看屬性就可以看到報表真正的頁面設置信息了,
其中包括:
分欄信息如分欄數、分欄之間的間距、寬與高(欄,當不分欄時實際就是報表寬高)
格式信息如背景顏色、背景圖片、邊框(顏色、線樣式、線粗),在Style中描述。
我倒覺得Report/Width應放到Report/Body中,也就是類似Report/Body/Height。
這裏說說邊框,Html中,有個亮邊框和暗邊框,亮邊框就是左邊和頂邊線,暗邊框就是右邊和底邊線,它們的屬性就是顏色。這裏搞出一個默認的邊框顏色,和Html保持一致,但沒有亮、暗邊框要領概念了,它搞的更廣,乾脆就矩形的四邊即左、右、頂、底邊分析描述。線樣式、線粗同樣也可以門針對四邊進行描述。
值得一提的是,如果指定的圖像但圖像文件不存在,運行報表時會提示出錯。其實沒必要嘛,直接跳過去得了,本機的倒好,Internet誰能保證那個圖片提供的服務器不Down機啊。於是設置了本機的一個有效圖片,運行時提示報表包含外部圖片,還要設置EnableExternalImages屬性,真是羅嗦:)。
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<InteractiveWidth>21cm</InteractiveWidth>
<InteractiveHeight>29.7cm</InteractiveHeight>
<rd:GridSpacing>0.25cm</rd:GridSpacing>
<rd:SnapToGrid>true</rd:SnapToGrid>
<rd:ReportID>d9dddd8a-9336-41fb-ad58-7071ffac1a5a</rd:ReportID>
<rd:DrawGrid>true</rd:DrawGrid>
<Language>zh-CN</Language>
<LeftMargin>2.5cm</LeftMargin>
<RightMargin>2.5cm</RightMargin>
<TopMargin>2.5cm</TopMargin>
<BottomMargin>2.5cm</BottomMargin>
<PageHeight>29.7cm</PageHeight>
<PageWidth>21cm</PageWidth>
<Width>8cm</Width>
<Body>
<Columns>2</Columns>
<ColumnSpacing>1cm</ColumnSpacing>
<Height>6cm</Height>
<Style>
<BackgroundColor>Pink</BackgroundColor>
<BackgroundImage>
<Value>MISGoldPrinter.JPG</Value>
<Source>External</Source>
<BackgroundRepeat>NoRepeat</BackgroundRepeat>
</BackgroundImage>
<BorderColor>
<Default>DarkGray</Default>
<Top>Silver</Top>
<Default>DarkGray</Default>
<Left>Lime</Left>
<Right>Red</Right>
</BorderColor>
<BorderStyle>
<Default>Dotted</Default>
</BorderStyle>
<BorderWidth>
<Default>2pt</Default>
</BorderWidth>
</Style>
</Body>
</Report>
2--頁眉頁腳.rdlc
頁眉頁腳的概念我想就不用說了,用過word和Excel的都知道。它的屬性同Body的Style一樣,這裏不敖述。
主要是增加特有屬性PrintOnFirstPage、PrintOnLastPage表示是否在第一頁和最後一頁顯示。雖然可以指定Width和Height屬性,但是Width並不保存在XML文件中,不難不理解,頁眉頁腳寬就是打印頁的寬。
出現With出現在屬性中的原因可以想象是由於同一體系中繼承的問題。就像MIS金質打印通XML解析器,所有類統一繼承並實現一個接口,提供Rectang表示元素所在的打印區,即使是描述一條直線,我們同樣也可以看到X、Y、Width和Height屬性。
這些信息可以單擊畫板,然後右健查看PageHeader/Footer屬性就可以看到Report。
Body與頁眉頁腳的區別和聯繫:
相同點:都是畫板即頁面的一個打印區,都可作爲報表元素的容器,既然是這樣,那當然都可以設置樣式。
不同點:Body可以分欄,而頁眉頁腳只是一欄;Body每頁都打印,而頁眉頁腳可以選擇首尾頁是否打印。
<?xml version="1.0" encoding="utf-8"?>
<Report >
<PageHeader>
<Height>1.25cm</Height>
<PrintOnLastPage>true</PrintOnLastPage>
<PrintOnFirstPage>true</PrintOnFirstPage>
</PageHeader>
<PageFooter>
<Height>1.5cm</Height>
<PrintOnLastPage>true</PrintOnLastPage>
<PrintOnFirstPage>true</PrintOnFirstPage>
</PageFooter>
</Report>
報表元素
上面說了Body與頁眉頁腳都可作爲報表元素的容器。報表元素包括Textbox、Line、Table、Rectangle,其中Rectangle也可作爲報表元素的容器。報表元素全部在ReportItems中描述。
3--TextBox.rdlc
同Body一樣,TextBox同樣具有Style,另外就是描述文本的Value及文本所有矩形區Left、Top、Width、Height,可以指定CanGrow、CanShrink自適應。文本字體、顏色、對齊及邊框等在Style中描述,其中PaddingLeft/Right/Top/Bottom描述文本距邊框的起點位置。
<Body>
<ReportItems>
<Textbox Name="textbox1">
<Value>Hello World!</Value>
<Left>1cm</Left>
<Top>0.75cm</Top>
<Width>5.5cm</Width>
<Height>0.75cm</Height>
<CanShrink>true</CanShrink>
<CanGrow>true</CanGrow>
<Style>
<Color>SpringGreen</Color>
<FontFamily>宋體</FontFamily>
<FontStyle>Italic</FontStyle>
<FontWeight>700</FontWeight>
<TextDecoration>Underline</TextDecoration>
<TextAlign>Left</TextAlign>
<VerticalAlign>Bottom</VerticalAlign>
<Direction>RTL</Direction>
<PaddingLeft>20pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>10pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
<BorderColor>
<Default>Red</Default>
</BorderColor>
<BorderStyle>
<Default>Inset</Default>
</BorderStyle>
</Style>
</Textbox>
</ReportItems>
</Body>
4--Line.rdlc
Location和EndPoint存入XML文件時,計算並轉換爲矩形區Left、Top、Width、Height。
LineColor、LineStyle、LineWidth存入XML文件時保存爲Style,相應的對應爲BoderColor、BoderStyle、BoderWidth並存入Default標記。
<Body>
<ColumnSpacing>1cm</ColumnSpacing>
<ReportItems>
<Line Name="line1">
<Left>5cm</Left>
<Top>1.25cm</Top>
<Width>6cm</Width>
<Height>0.75cm</Height>
<Label>這是線</Label>
<Visibility>
<Hidden>true</Hidden>
</Visibility>
<Style>
<BorderColor>
<Default>Red</Default>
</BorderColor>
<BorderStyle>
<Default>Dotted</Default>
</BorderStyle>
<BorderWidth>
<Default>2pt</Default>
</BorderWidth>
<FontFamily>宋體</FontFamily>
</Style>
</Line>
</ReportItems>
<Height>5cm</Height>
</Body>
5--Rectangle.rdlc
和Body一樣,它可作爲報表元素的容器,因此,也有Style下的Boder相關屬性,當然,既然是一個矩形,少不了Left、Top、Width、Height屬性。PageBreakAtStart、PageBreakAtEnd表示中否在這這前或之後換頁。可以在此Rectangle後畫一個Line後運行看看效果。但它的有組合在運行時有的卻並不是我們想像的。
<Body>
<ReportItems>
<Rectangle Name="rectangle1">
<Left>5.5cm</Left>
<Top>0.75cm</Top>
<Width>7.01058cm</Width>
<Height>2.98942cm</Height>
<PageBreakAtStart>true</PageBreakAtStart>
<PageBreakAtEnd>false</PageBreakAtEnd>
<Style>
<BorderStyle>
<Default>Inset</Default>
</BorderStyle>
<FontFamily>宋體</FontFamily>
<BorderColor>
<Default>DarkOrange</Default>
</BorderColor>
</Style>
</Rectangle>
</ReportItems>
</Body>
6--Image.rdlc
它是在一個矩形區內,所以基本上具有Rectangle的固有屬性,只是把把背景圖片這個屬性專門拿出來。
<Body>
<ReportItems>
<Image Name="image1">
<Source>External</Source>
<Value>c:/MISGoldPrinter.JPG</Value>
<Sizing>AutoSize</Sizing>
<Left>6cm</Left>
<Top>1cm</Top>
<Width>5.74074cm</Width>
<Height>5cm</Height>
</Image>
</ReportItems>
</Body>
7--Char.rdlc
Char基本具有Rectangle的固有屬性和TextBox屬性,需要數據源的支持。
對於列表(list)和子報表(SubReport),list可作爲其它元素的容器。
表格Table,在列數固定和行數可變的網格中顯示數據,由TableRows和TableColumns兩部分組成。
TableRows在Header、Details、Footer三個部分中描述,每個TableRow由多個TableCell構成,TableCell的內容一般爲TextBox,也可以是其它的報表元素,如Rectangle等,唯一不能的是Line。
8--Table.rdlc
Table:
表格在一個矩形區,所以具有Rectangle的屬性,當然,它不具有Height,想一想,爲什麼?同時默認情況下具有TextBox屬性,以用來從整體上改變單元格的格式。RepeatHeaderOnNewPage、RepeatFooterOnNewPage屬性值分別保存於Header、Footer中的RepeatOnNewPage屬性中。
TableColumn:
路徑爲Report/Body/ReportItems/Table/TableColumns,包含背景、邊框、列寬(Width)及是否爲固定列FixedHeader。
當然,這是以Body爲容器的路徑,如果是其它元素或嵌套情況,Report/Body相應的改爲容器的路徑。以下表示路徑時不再特別說明。
如:
<TableColumns>
<TableColumn>
<Width>3cm</Width>
<FixedHeader>true</FixedHeader>
</TableColumn>
...
<TableColumns>
其它的屬性一般爲所在該列報表元素特有屬性,如果設置,則直接保存到特定的報表元素屬性描述中,而不是保存在TableColumn中。
Header、Details、Footer:
根據名字可知,它們是描述表頭表底固定行數據及表中間可變的數據行。因爲有可變行,所以,沒有Table不具有Height。RepeatOnNewPage表示是否每頁都打印。
以Header爲例,路麼爲Report/Body/ReportItems/Table/Header。
Table及相關的元素的XML文件主體描述如下:
<Body>
<ReportItems>
<Table Name="table1">
<Left>5cm</Left>
<Top>0.75cm</Top>
<Width>7.75132cm</Width>
<PageBreakAtStart>true</PageBreakAtStart>
<PageBreakAtEnd>true</PageBreakAtEnd>
<Style>
<TextAlign>Left</TextAlign>
<FontFamily>宋體</FontFamily>
<Direction>RTL</Direction>
<Color>Red</Color>
<TextDecoration>Underline</TextDecoration>
<FontStyle>Italic</FontStyle>
</Style>
<TableColumns>
<TableColumn>
<Width>3cm</Width>
<FixedHeader>true</FixedHeader>
</TableColumn>
<TableColumn>
<Width>2.24868cm</Width>
</TableColumn>
<TableColumn>
<Width>2.24868cm</Width>
</TableColumn>
</TableColumns>
<Footer>
<RepeatOnNewPage>true</RepeatOnNewPage>
<TableRows>
<TableRow>
<TableCells>
<TableCell>
<ReportItems>
<Textbox Name="textbox7">
<rd:DefaultName>textbox7</rd:DefaultName>
<ZIndex>5</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox8">
<rd:DefaultName>textbox8</rd:DefaultName>
<ZIndex>4</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox9">
<rd:DefaultName>textbox9</rd:DefaultName>
<ZIndex>3</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
</TableCells>
<Height>1.08466cm</Height>
</TableRow>
</TableRows>
</Footer>
<Details>
<TableRows>
<TableRow>
<TableCells>
<TableCell>
<ReportItems>
<Textbox Name="textbox4">
<rd:DefaultName>textbox4</rd:DefaultName>
<ZIndex>2</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox5">
<rd:DefaultName>textbox5</rd:DefaultName>
<ZIndex>1</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox6">
<rd:DefaultName>textbox6</rd:DefaultName>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
</TableCells>
<Height>1.08466cm</Height>
</TableRow>
</TableRows>
</Details>
<Header>
<RepeatOnNewPage>true</RepeatOnNewPage>
<TableRows>
<TableRow>
<TableCells>
<TableCell>
<ReportItems>
<Textbox Name="textbox1">
<rd:DefaultName>textbox1</rd:DefaultName>
<ZIndex>8</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox2">
<rd:DefaultName>textbox2</rd:DefaultName>
<ZIndex>7</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox3">
<rd:DefaultName>textbox3</rd:DefaultName>
<ZIndex>6</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
</TableCells>
</TableRow>
</TableRows>
</Header>
</Table>
</ReportItems>
</Body>
相關連接:
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<Width>6.5in</Width>
<Body>
<Height>2in</Height>
</Body>
<rd:InitialLanguage>true</rd:InitialLanguage>
<rd:InitialDimensions>
<rd:UnitType>Inch</rd:UnitType>
<rd:LeftMargin>1in</rd:LeftMargin>
<rd:RightMargin>1in</rd:RightMargin>
<rd:TopMargin>1in</rd:TopMargin>
<rd:BottomMargin>1in</rd:BottomMargin>
<rd:PageWidth>8.5in</rd:PageWidth>
<rd:PageHeight>11in</rd:PageHeight>
<rd:ColumnSpacing>0.5in</rd:ColumnSpacing>
</rd:InitialDimensions>
<rd:InitialDimensions>
<rd:UnitType>Cm</rd:UnitType>
<rd:Width>16cm</rd:Width>
<rd:Height>5cm</rd:Height>
<rd:LeftMargin>2.5cm</rd:LeftMargin>
<rd:RightMargin>2.5cm</rd:RightMargin>
<rd:TopMargin>2.5cm</rd:TopMargin>
<rd:BottomMargin>2.5cm</rd:BottomMargin>
<rd:GridSpacing>0.25cm</rd:GridSpacing>
<rd:PageWidth>21cm</rd:PageWidth>
<rd:PageHeight>29.7cm</rd:PageHeight>
<rd:ColumnSpacing>1cm</rd:ColumnSpacing>
</rd:InitialDimensions>
</Report>
這些信息可以單擊畫板,然後右健查看屬性就可以看到Report。
1--Body及頁面邊框樣式及背景設置.rdlc
單擊畫板上的報表體,然後右健查看屬性就可以看到報表真正的頁面設置信息了,
其中包括:
分欄信息如分欄數、分欄之間的間距、寬與高(欄,當不分欄時實際就是報表寬高)
格式信息如背景顏色、背景圖片、邊框(顏色、線樣式、線粗),在Style中描述。
我倒覺得Report/Width應放到Report/Body中,也就是類似Report/Body/Height。
這裏說說邊框,Html中,有個亮邊框和暗邊框,亮邊框就是左邊和頂邊線,暗邊框就是右邊和底邊線,它們的屬性就是顏色。這裏搞出一個默認的邊框顏色,和Html保持一致,但沒有亮、暗邊框要領概念了,它搞的更廣,乾脆就矩形的四邊即左、右、頂、底邊分析描述。線樣式、線粗同樣也可以門針對四邊進行描述。
值得一提的是,如果指定的圖像但圖像文件不存在,運行報表時會提示出錯。其實沒必要嘛,直接跳過去得了,本機的倒好,Internet誰能保證那個圖片提供的服務器不Down機啊。於是設置了本機的一個有效圖片,運行時提示報表包含外部圖片,還要設置EnableExternalImages屬性,真是羅嗦:)。
<?xml version="1.0" encoding="utf-8"?>
<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2005/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
<InteractiveWidth>21cm</InteractiveWidth>
<InteractiveHeight>29.7cm</InteractiveHeight>
<rd:GridSpacing>0.25cm</rd:GridSpacing>
<rd:SnapToGrid>true</rd:SnapToGrid>
<rd:ReportID>d9dddd8a-9336-41fb-ad58-7071ffac1a5a</rd:ReportID>
<rd:DrawGrid>true</rd:DrawGrid>
<Language>zh-CN</Language>
<LeftMargin>2.5cm</LeftMargin>
<RightMargin>2.5cm</RightMargin>
<TopMargin>2.5cm</TopMargin>
<BottomMargin>2.5cm</BottomMargin>
<PageHeight>29.7cm</PageHeight>
<PageWidth>21cm</PageWidth>
<Width>8cm</Width>
<Body>
<Columns>2</Columns>
<ColumnSpacing>1cm</ColumnSpacing>
<Height>6cm</Height>
<Style>
<BackgroundColor>Pink</BackgroundColor>
<BackgroundImage>
<Value>MISGoldPrinter.JPG</Value>
<Source>External</Source>
<BackgroundRepeat>NoRepeat</BackgroundRepeat>
</BackgroundImage>
<BorderColor>
<Default>DarkGray</Default>
<Top>Silver</Top>
<Default>DarkGray</Default>
<Left>Lime</Left>
<Right>Red</Right>
</BorderColor>
<BorderStyle>
<Default>Dotted</Default>
</BorderStyle>
<BorderWidth>
<Default>2pt</Default>
</BorderWidth>
</Style>
</Body>
</Report>
2--頁眉頁腳.rdlc
頁眉頁腳的概念我想就不用說了,用過word和Excel的都知道。它的屬性同Body的Style一樣,這裏不敖述。
主要是增加特有屬性PrintOnFirstPage、PrintOnLastPage表示是否在第一頁和最後一頁顯示。雖然可以指定Width和Height屬性,但是Width並不保存在XML文件中,不難不理解,頁眉頁腳寬就是打印頁的寬。
出現With出現在屬性中的原因可以想象是由於同一體系中繼承的問題。就像MIS金質打印通XML解析器,所有類統一繼承並實現一個接口,提供Rectang表示元素所在的打印區,即使是描述一條直線,我們同樣也可以看到X、Y、Width和Height屬性。
這些信息可以單擊畫板,然後右健查看PageHeader/Footer屬性就可以看到Report。
Body與頁眉頁腳的區別和聯繫:
相同點:都是畫板即頁面的一個打印區,都可作爲報表元素的容器,既然是這樣,那當然都可以設置樣式。
不同點:Body可以分欄,而頁眉頁腳只是一欄;Body每頁都打印,而頁眉頁腳可以選擇首尾頁是否打印。
<?xml version="1.0" encoding="utf-8"?>
<Report >
<PageHeader>
<Height>1.25cm</Height>
<PrintOnLastPage>true</PrintOnLastPage>
<PrintOnFirstPage>true</PrintOnFirstPage>
</PageHeader>
<PageFooter>
<Height>1.5cm</Height>
<PrintOnLastPage>true</PrintOnLastPage>
<PrintOnFirstPage>true</PrintOnFirstPage>
</PageFooter>
</Report>
報表元素
上面說了Body與頁眉頁腳都可作爲報表元素的容器。報表元素包括Textbox、Line、Table、Rectangle,其中Rectangle也可作爲報表元素的容器。報表元素全部在ReportItems中描述。
3--TextBox.rdlc
同Body一樣,TextBox同樣具有Style,另外就是描述文本的Value及文本所有矩形區Left、Top、Width、Height,可以指定CanGrow、CanShrink自適應。文本字體、顏色、對齊及邊框等在Style中描述,其中PaddingLeft/Right/Top/Bottom描述文本距邊框的起點位置。
<Body>
<ReportItems>
<Textbox Name="textbox1">
<Value>Hello World!</Value>
<Left>1cm</Left>
<Top>0.75cm</Top>
<Width>5.5cm</Width>
<Height>0.75cm</Height>
<CanShrink>true</CanShrink>
<CanGrow>true</CanGrow>
<Style>
<Color>SpringGreen</Color>
<FontFamily>宋體</FontFamily>
<FontStyle>Italic</FontStyle>
<FontWeight>700</FontWeight>
<TextDecoration>Underline</TextDecoration>
<TextAlign>Left</TextAlign>
<VerticalAlign>Bottom</VerticalAlign>
<Direction>RTL</Direction>
<PaddingLeft>20pt</PaddingLeft>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>10pt</PaddingTop>
<PaddingBottom>2pt</PaddingBottom>
<BorderColor>
<Default>Red</Default>
</BorderColor>
<BorderStyle>
<Default>Inset</Default>
</BorderStyle>
</Style>
</Textbox>
</ReportItems>
</Body>
4--Line.rdlc
Location和EndPoint存入XML文件時,計算並轉換爲矩形區Left、Top、Width、Height。
LineColor、LineStyle、LineWidth存入XML文件時保存爲Style,相應的對應爲BoderColor、BoderStyle、BoderWidth並存入Default標記。
<Body>
<ColumnSpacing>1cm</ColumnSpacing>
<ReportItems>
<Line Name="line1">
<Left>5cm</Left>
<Top>1.25cm</Top>
<Width>6cm</Width>
<Height>0.75cm</Height>
<Label>這是線</Label>
<Visibility>
<Hidden>true</Hidden>
</Visibility>
<Style>
<BorderColor>
<Default>Red</Default>
</BorderColor>
<BorderStyle>
<Default>Dotted</Default>
</BorderStyle>
<BorderWidth>
<Default>2pt</Default>
</BorderWidth>
<FontFamily>宋體</FontFamily>
</Style>
</Line>
</ReportItems>
<Height>5cm</Height>
</Body>
5--Rectangle.rdlc
和Body一樣,它可作爲報表元素的容器,因此,也有Style下的Boder相關屬性,當然,既然是一個矩形,少不了Left、Top、Width、Height屬性。PageBreakAtStart、PageBreakAtEnd表示中否在這這前或之後換頁。可以在此Rectangle後畫一個Line後運行看看效果。但它的有組合在運行時有的卻並不是我們想像的。
<Body>
<ReportItems>
<Rectangle Name="rectangle1">
<Left>5.5cm</Left>
<Top>0.75cm</Top>
<Width>7.01058cm</Width>
<Height>2.98942cm</Height>
<PageBreakAtStart>true</PageBreakAtStart>
<PageBreakAtEnd>false</PageBreakAtEnd>
<Style>
<BorderStyle>
<Default>Inset</Default>
</BorderStyle>
<FontFamily>宋體</FontFamily>
<BorderColor>
<Default>DarkOrange</Default>
</BorderColor>
</Style>
</Rectangle>
</ReportItems>
</Body>
6--Image.rdlc
它是在一個矩形區內,所以基本上具有Rectangle的固有屬性,只是把把背景圖片這個屬性專門拿出來。
<Body>
<ReportItems>
<Image Name="image1">
<Source>External</Source>
<Value>c:/MISGoldPrinter.JPG</Value>
<Sizing>AutoSize</Sizing>
<Left>6cm</Left>
<Top>1cm</Top>
<Width>5.74074cm</Width>
<Height>5cm</Height>
</Image>
</ReportItems>
</Body>
7--Char.rdlc
Char基本具有Rectangle的固有屬性和TextBox屬性,需要數據源的支持。
對於列表(list)和子報表(SubReport),list可作爲其它元素的容器。
表格Table,在列數固定和行數可變的網格中顯示數據,由TableRows和TableColumns兩部分組成。
TableRows在Header、Details、Footer三個部分中描述,每個TableRow由多個TableCell構成,TableCell的內容一般爲TextBox,也可以是其它的報表元素,如Rectangle等,唯一不能的是Line。
8--Table.rdlc
Table:
表格在一個矩形區,所以具有Rectangle的屬性,當然,它不具有Height,想一想,爲什麼?同時默認情況下具有TextBox屬性,以用來從整體上改變單元格的格式。RepeatHeaderOnNewPage、RepeatFooterOnNewPage屬性值分別保存於Header、Footer中的RepeatOnNewPage屬性中。
TableColumn:
路徑爲Report/Body/ReportItems/Table/TableColumns,包含背景、邊框、列寬(Width)及是否爲固定列FixedHeader。
當然,這是以Body爲容器的路徑,如果是其它元素或嵌套情況,Report/Body相應的改爲容器的路徑。以下表示路徑時不再特別說明。
如:
<TableColumns>
<TableColumn>
<Width>3cm</Width>
<FixedHeader>true</FixedHeader>
</TableColumn>
...
<TableColumns>
其它的屬性一般爲所在該列報表元素特有屬性,如果設置,則直接保存到特定的報表元素屬性描述中,而不是保存在TableColumn中。
Header、Details、Footer:
根據名字可知,它們是描述表頭表底固定行數據及表中間可變的數據行。因爲有可變行,所以,沒有Table不具有Height。RepeatOnNewPage表示是否每頁都打印。
以Header爲例,路麼爲Report/Body/ReportItems/Table/Header。
Table及相關的元素的XML文件主體描述如下:
<Body>
<ReportItems>
<Table Name="table1">
<Left>5cm</Left>
<Top>0.75cm</Top>
<Width>7.75132cm</Width>
<PageBreakAtStart>true</PageBreakAtStart>
<PageBreakAtEnd>true</PageBreakAtEnd>
<Style>
<TextAlign>Left</TextAlign>
<FontFamily>宋體</FontFamily>
<Direction>RTL</Direction>
<Color>Red</Color>
<TextDecoration>Underline</TextDecoration>
<FontStyle>Italic</FontStyle>
</Style>
<TableColumns>
<TableColumn>
<Width>3cm</Width>
<FixedHeader>true</FixedHeader>
</TableColumn>
<TableColumn>
<Width>2.24868cm</Width>
</TableColumn>
<TableColumn>
<Width>2.24868cm</Width>
</TableColumn>
</TableColumns>
<Footer>
<RepeatOnNewPage>true</RepeatOnNewPage>
<TableRows>
<TableRow>
<TableCells>
<TableCell>
<ReportItems>
<Textbox Name="textbox7">
<rd:DefaultName>textbox7</rd:DefaultName>
<ZIndex>5</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox8">
<rd:DefaultName>textbox8</rd:DefaultName>
<ZIndex>4</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox9">
<rd:DefaultName>textbox9</rd:DefaultName>
<ZIndex>3</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
</TableCells>
<Height>1.08466cm</Height>
</TableRow>
</TableRows>
</Footer>
<Details>
<TableRows>
<TableRow>
<TableCells>
<TableCell>
<ReportItems>
<Textbox Name="textbox4">
<rd:DefaultName>textbox4</rd:DefaultName>
<ZIndex>2</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox5">
<rd:DefaultName>textbox5</rd:DefaultName>
<ZIndex>1</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox6">
<rd:DefaultName>textbox6</rd:DefaultName>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
</TableCells>
<Height>1.08466cm</Height>
</TableRow>
</TableRows>
</Details>
<Header>
<RepeatOnNewPage>true</RepeatOnNewPage>
<TableRows>
<TableRow>
<TableCells>
<TableCell>
<ReportItems>
<Textbox Name="textbox1">
<rd:DefaultName>textbox1</rd:DefaultName>
<ZIndex>8</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox2">
<rd:DefaultName>textbox2</rd:DefaultName>
<ZIndex>7</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
<TableCell>
<ReportItems>
<Textbox Name="textbox3">
<rd:DefaultName>textbox3</rd:DefaultName>
<ZIndex>6</ZIndex>
<Style>
<PaddingLeft>2pt</PaddingLeft>
<PaddingBottom>2pt</PaddingBottom>
<FontFamily>宋體</FontFamily>
<PaddingRight>2pt</PaddingRight>
<PaddingTop>2pt</PaddingTop>
</Style>
<CanGrow>true</CanGrow>
<Value />
</Textbox>
</ReportItems>
</TableCell>
</TableCells>
</TableRow>
</TableRows>
</Header>
</Table>
</ReportItems>
</Body>