Vs2005報表設計器XML分析總結

 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>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章