程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> 個人開發框架總結(五)

個人開發框架總結(五)

編輯:關於C#

BaseReportForm 為用戶展現RDLC報表

及報表打印

屬性

UseDefaultConfigFile:使用默認的配置文件

QueryConfigFile:指定查詢配置文件

PrintConfigFile:指定打印配置文件

重載方法

QuerySetTypeListData

QuerySetTypeTreeData

報表配置可在Config下建立 窗體類名.pcs 文件:

配置文件(Config/*.rps)

<ReportConfig>
  <Title> 報表標題
  <ColumnConfigFile> 使用的*.cls配置文件名
  <PaperSize>
    <Height> 高
    <Width> 寬
  </PaperSize>
  <Margins>
     <Left> 左邊距
     <Top> 頂邊距
     <Right> 右邊距
     <Bottom> 底邊距
  </Margins>
  <Landscape> 是否橫向打印
  <DataColumns />
  <Header>
    <Objects>
      <Label>
        <Text> 標題
        <HAlign> 對齊
        <AutoCenter> 是否自動居中
        <AutoRight> 是否自動居右
        <VAlign> 垂直對齊
        <Font>
          <Name> 字體
          <Size> 大小
        </Font>
        <Key> 對象名稱
        <Location>
          <X> 左
          <Y> 右
        </Location>
        <Size>
          <Width> 寬
          <Height> 高
        </Size>
      </Label>
    </Objects>
    <Height> 高度
  </Header>
  <Footer>
    <Height> 高度
    <Objects>
    </Objects>
  </Footer>
</ReportConfig>

這裡分兩節,Header和Footer,每個節的Objects裡可建立多個Label對象,使用不同的Key以便在程序裡可以使用FindControl來查找,AutoCenter 屬性指的是,標簽居於報表表格的中間,AutoRight 是居右。ColumnConfigFile 引用的是對應的*.cls 文件,如:

<?xml version="1.0"?>
<ReportConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Title>消費明細報表</Title>
  <ColumnConfigFile>frmConsumeDetailReport</ColumnConfigFile>
  <PaperSize>
    <Height>21</Height>
    <Width>29.7</Width>
  </PaperSize>
  <Margins>
     <Left>0.5</Left>
     <Top>0.5</Top>
     <Right>0.5</Right>
     <Bottom>0.5</Bottom>
  </Margins>
  <Landscape>false</Landscape>
  <DataColumns />
  <Header>
    <Objects>
      <Label>
        <Text></Text>
        <HAlign>Center</HAlign>
        <AutoCenter>True</AutoCenter>
        <VAlign>Middle</VAlign>
        <Font>
          <Name>黑體</Name>
          <Size>15</Size>
        </Font>
        <Key>Company</Key>
        <Location>
          <X>0</X>
          <Y>0.2</Y>
        </Location>
        <Size>
          <Width>0</Width>
          <Height>0.6</Height>
        </Size>
      </Label>
      <Label>
        <Text></Text>
        <HAlign>Center</HAlign>
        <AutoCenter>True</AutoCenter>
        <VAlign>Middle</VAlign>
        <Font>
          <Name>黑體</Name>
          <Size>15</Size>
        </Font>
        <Key>Title</Key>
        <Location>
          <X>0</X>
          <Y>0.8</Y>
        </Location>
        <Size>
          <Width>0</Width>
          <Height>0.6</Height>
        </Size>
      </Label>
      <Label>
        <Text>操作員:{0}</Text>
        <HAlign>Left</HAlign>
        <VAlign>Middle</VAlign>
        <Key>Employee</Key>
        <Location>
          <X>0</X>
          <Y>1.4</Y>
        </Location>
        <Size>
          <Width>5</Width>
          <Height>0.6</Height>
        </Size>
      </Label>
      <Label>
        <Text>="打印日期:" + Today.ToString("D")</Text>
        <HAlign>Right</HAlign>
        <AutoRight>True</AutoRight>
        <VAlign>Middle</VAlign>
        <Key>PrintDate</Key>
        <Location>
          <X>0</X>
          <Y>1.4</Y>
        </Location>
        <Size>
          <Width>5</Width>
          <Height>0.6</Height>
        </Size>
      </Label>
    </Objects>
    <Height>2</Height>
  </Header>
  <Footer>
    <Height>0.7</Height>
    <Objects>
      <Label>
        <Text>="第" &amp; Globals!PageNumber &amp; "頁 共" &amp; Globals!TotalPages &amp; "頁"</Text>
        <HAlign>Right</HAlign>
        <AutoRight>True</AutoRight>
        <VAlign>Middle</VAlign>
        <Key>Page</Key>
        <Location>
          <X>0</X>
          <Y>0.1</Y>
        </Location>
        <Size>
          <Width>5</Width>
          <Height>0.4</Height>
        </Size>
      </Label>
    </Objects>
  </Footer>
</ReportConfig>

在代碼裡,可以重寫SetReportConfig方法來設置報表標簽的文本:

/// <summary>
        /// 設置報表配置
        /// </summary>
        /// <param name="config"></param>
        protected override void SetReportConfig(FaibClass.Common.Windows.Config.ReportConfig config)
        {
            base.SetReportConfig(config);
            object lbl = config.Header.FindObject("Company");
            if (lbl != null)
            {
                ((FaibClass.Common.Windows.Report.ReportLabel)lbl).Text = ContextArgs.Instance.CompanyName;
            }
            lbl = config.Header.FindObject("Employee");
            if (lbl != null)
            {
                string text = ((FaibClass.Common.Windows.Report.ReportLabel)lbl).Text;
                ((FaibClass.Common.Windows.Report.ReportLabel)lbl).Text = string.Format(text, ContextArgs.Instance.UserName);
            }
        }

如果報表使用查詢,也要建立相應的*.pcs文件。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved