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>="第" & Globals!PageNumber & "頁 共" & Globals!TotalPages & "頁"</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文件。