Vs2005报表设计器XML分析总结

一个简单的报表设计器 根据金质打印通写的报表设计器,可以看看对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>

 

NET报表设计(报表模板设计器.NET源码) cell报表模板设计器.net代码示例 Cell 产品分Cell 组件和Cell 插件两个姐妹产品。Cell 组件、插件(ActiveX控件)是北京用友华表公司在长期开发实践的基础上推出的功能强大、技术成熟的报表二次开发工具,是国内技术领先拥有广泛客户群的商业报表组件,有700多个编程接口,实现报表自定义,报表显示、打印预览、打印,图表,公式,自定义函数、资源本地化等强大功能,能够完全读写Excel文件,是软件开发人员开发优秀报表软件的最佳解决方案。 立即下载

相关推荐

Vivado FFT IP核避坑指南:从Matlab数据生成到FPGA验证的完整流程

本文详细解析了Vivado FFT IP核从Matlab数据生成到FPGA验证的完整流程,重点解决跨平台数据一致性、IP核配置陷阱和验证方法论等核心问题。通过实战案例和避坑指南,帮助工程师高效实现FFT运算的硬件验证,确保结果与Matlab的误差控制在0.3%以内。

weixin_42543046的博客 395

RDLC报表:每页显示N条记录

转自:http://www.cnblogs.com/ChenZB/archive/2011/01/07/1930198.html 留着备用! 分组表达式为 =Int((RowNumber(Nothing) - 1) / N),取消包括组头和包括组尾,勾选在结尾处分页; 另一

xiaoman880626的专栏 2823

PySpark机器学习生产化陷阱:跨节点依赖问题的7种解决方案

隐式依赖陷阱使用ldd解决方案:在基础镜像中预装和路径冲突终极解法依赖树瘦身技巧用conda-tree可减少40%环境体积PySpark机器学习生产化的核心矛盾在于分布式环境的确定性与灵活性不可兼得。轻量级方案(1-3)牺牲一致性换取灵活性重量级方案(4-6)牺牲灵活性换取确定性混合方案(7)针对特殊场景补充正如某AI平台架构师所言:“环境一致性不是技术问题,而是工程纪律问题选择适合团队当前阶段的方案,建立严格的依赖管理流程,才能让PySpark真正扛起生产环境的大旗。

datacanvas2426的博客 909

wps word文档生成目录的时候显示断裂会生成大纲怎么办_自从学会了Word自动排版,我的秀发浓密多了...

文/金金 首发于一周进步每到期末,都是大作业和报告的高发季,一个“死线”刚过,另一堆“死线”接踵而至。作为一名在报告的海洋里中挣扎,妄图顺利存活的同学,我自然是使用链接到样式的多级列表,Word自动化排版分分钟搞定。看着那些坚持使用手打序号、艰难排版的同学,我伸手摸了摸我的头发,貌似还是比他们更浓密一些的。今天我就来教大家怎样去设置与样式链接,并可以自动更新的多级列表。下图是使用此操作之后的神奇效...

weixin_39846364的博客 3665

Coze:手把手教你搭建 小红书二创 智能体

前一篇 “” ,讲了如何针对需求进行拆解,并拆解 ”小红书二创“ 智能体,分为四个内容模块。通过上述步骤,开始一步一步构建 “小红书二创” 智能体。用来测试的小红书地址:http://xhslink.com/a/quxWEDAj3J48。

保持敏感!保持学习! 1435

置顶必读(2) |《滚雪球学数学建模》专栏目录 & 历年国赛/美赛真题库 & 真题解析(持续更新中)

本专栏《滚雪球学数学建模》采用“从零开始、逐步滚雪球”的学习路径,把数学建模的基础理论、方法工具与大量实战真题(尤其是国赛题,涵盖2025-1992所有真题)有机融合,形成一套系统化训练路线。非常适合零基础入门、希望提升模型与工程化能力的本科/研究生,以及备战全国大学生数学建模竞赛(国赛/省赛)的同学。加油,我们一起把建模能力打造成可迁移的核心竞争力!

**My Coding Family** 26万+

RDLC报表分栏显示

2、新建一个RDLC报表文件:Report2.rdlc,在这个文件里面添加页眉和页脚,以及一个表,并设置 Columns 为 2 ,即设置成 2 栏 如下。3、用XML编辑器打开Report2.rdlc文件,添加蓝色框框里面的代码 :true 如果没有,加上这句,这样在第2栏就能够显示列标题了。1、建立一个数据源 DataSet1.xsd,在数据源中建立一个data.datatable表。4、新建立一个窗体文件,再拖一个ReportViewer1,我是用代码新建的,用于显示报表内容。

hhzjlsq的博客 677

基于YOLOv11的气象目标检测系统:台风眼与钩状回波检测

气象目标检测是计算机视觉在气象领域的重要应用,对台风预警和强对流天气监测具有重要意义。本文详细介绍了一种基于YOLOv11的气象目标检测系统,能够有效识别卫星云图中的台风眼和雷达图中的钩状回波。系统包含完整的数据处理流程、模型训练策略以及用户友好的Web界面。我们使用了公开的气象数据集进行训练和验证,并提供了完整的实现代码。实验结果表明,本系统在气象目标检测任务中达到了较高的准确率和实用性。关键词:气象目标检测;YOLOv11;台风眼检测;钩状回波;深度学习;计算机视觉台风眼检测数据集。

YOLO 473

浅学rdl报表

浅学rdl报表 2007-12-21 11:28http://yan.sunny86.blog.163.com/blog/static/421871372007112111284452/分类:编程 字号: 大大  中中  小小 应用于:Microsoft® SQL Server™ 2005 报表服务目录关于这篇文档 其他信息来源 产品版本 简介 

成不了佛,便堕落吧 8058

ESP32开发进阶:1.接入文心一言

ESP32开发进阶:接入文心一言大模型,串口对话

qq_53529450的博客 1431

LLCC68芯片系统架构与LoRa驱动开发核心解析

LoRa射频收发器是低功耗广域物联网(LPWAN)的关键组件,其本质是集成了调制解调器、协议引擎、数据缓冲区与电源管理的专用SoC。理解其工作模式状态机(Sleep/Standby/TX/RX)与SPI主机接口时序规范,是实现稳定通信的基础。LLCC68通过寄存器映射与命令集双接口抽象硬件控制,支持LoRa扩频调制与FSK兼容模式,具备高链路预算(157 dB)和DC-DC/LDO动态电源切换能力。典型应用场景包括远距离传感器节点、智能表计与工业无线监测系统。本文深入剖析LLCC68的信号链路径、中断机制与

weixin_29859471的博客 281

Ready To Rock 撼动未来(4)--Vs2005报表设计器XML分析总结

Vs2005报表设计器XML分析总结 作者:长江支流 关键字:Vs2005、打印、报表设计器、XML 日 期:2005-12-16     这里的XML打印描述文件都是由VS2005reportdesigner设计器设计生成的,它描述的是我们手动设计报表的纸张大小信息及报表体的分栏数、边框、数据信息及格式等等。     下面由序号加文件名(扩展名为.rdlc)把研究的格式列出来,以便在M

2万+

基于STM32单片机设计的红外测温仪(带人脸检测)_34

当前设计的这款红外非接触式测温仪由测温硬件+上位机软件组合而成,主要用在地铁、车站入口等地方,可以准确识别人脸进行测温,如果有人温度超标会进行语音提示并且保存当前人脸照片。

8769

Vs2005报表设计器XML分析总结 作者:长江支流

这里的XML打印描述文件都是由VS2005reportdesigner设计器设计生成的,它描述的是我们手动设计报表的纸张大小信息及报表体的分栏数、边框、数据信息及格式等等。 下面由序号加文件名(扩展名为.rdlc)把研究的格式列出来,以便在MIS金质打印通XML分析器中可以分析并兼容部分常用属性。 需要说明的是,由于这里这个Blog不能直接上传文件,所以直接把XML贴出来,完整...

weixin_30776545的博客 111

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

RDLC报表

VS .NET开发中,用什么做报表?     可能的回答是Crystal Report,自.NET“紧密”集成Crystal Report后,这可能是开发人员比较单一的选择。但是,这种集成似乎并不非常紧密,网络上充斥着关于使用Crystal Report的抱怨,太复杂也许是其最为令人诟病的地方,自定义性比较差也不能为程序员们所容忍。    当然,必须承认Crystal Report的功

wky2001的专栏 4833

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

vs2005 Crystal Report制作使用详细

本文主要划分为以下六部分:一、Crystal Report for .NET 的功能二、Crystal Report总体结构三、报表数据访问执行模式四、报表类型五、Crystal Report 设计器的布局六、Crystal Report 的具体实例 最近项目接近尾声,应要求总结了一下,为了对在.net环境下开发报表的程序员新手一些帮助,同时也为给新人培训做一次

piscailei@blog.youkuaiyun.com 2149

rdlc报表导出html,RDLC报表详细讲解与分析报告.docx

..下载可编辑...下载可编辑.rdlC报表随笔(,感谢网友”蜡人”)(一)VS .NET开发中,用什么做报表?可能的回答是 Crystal Report ,自.NET"紧密”集成 Crystal Report 后, 这可能是开发人员比较单一的选择。但是,这种集成似乎并不非常紧密,网络上充斥着关于使用Crystal Report的抱怨,太复杂也许是其最为令人诟病的地方,自定义性比较差也不能为程序员...

weixin_39677419的博客 296

vs2005 Crystal Report制作使用(转载)

<br />本文主要划分为以下六部分:<br />一、Crystal Report for .NET 的功能<br />二、Crystal Report总体结构<br />三、报表数据访问执行模式<br />四、报表类型<br />五、Crystal Report 设计器的布局<br />六、Crystal Report 的具体实例<br /> <br />最近项目接近尾声,应要求总结了一下,为了对在.net环境下开发报表的程序员新手一些帮助,同时也为给新人培训做一次文档准备。<br />    相信在大部

心灵的足迹 644

7月13日RDLC报表,ReportViewer使用详解

7月13日 RDLC报表,ReportViewer VS .NET开发中,用什么做报表? 可能的回答是Crystal Report,自.NET“紧密”集成Crystal Report后,这可能是开发人员比较单一的选择。但是,这种集成似 乎并不非常紧密,网络上充斥着关于使用Crystal Report的抱怨,太复杂也许是其最为令人诟病的地方,自定义性比较差也不能为程序...

aomiaolei5208的博客 648

[翻译]初识SQL Server 2005 Reporting Services Part 4

  这一篇是关于SQL Server 2005 Reporting Services四篇文章中最后一篇:   Part 1,提供了创建基本报表的指南   Part 2,介绍了创建动态报表用到的SSRS核心特性和功能   Part 3,完全介绍了嵌入到SSRS中的图表控件   这里,在Part 4,我们把精力放在报表定义语言(RDL)上。RD...

weixin_30640291的博客 201
上一篇: NET强名
下一篇: 这是四舍五入的最快方法
sutter
博客等级 码龄23年 6粉丝 9原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值