Reporting Service 中的函數使用

1、 對Table中的詳細內容,以不同的顏色間隔開相鄰的兩行。

A:選擇Table的Detail行,選擇屬性中的BackgroundColor,值選擇表達式,輸入:=iif(RowNumber(Nothing) Mod 2, "White", "Beige")。

2、設置每面顯示Table表頭或表尾

A:選擇Table Header或Table Footer,將屬性中的RepeatOnNewpage設爲True.

3、在每頁都顯示放入的圖片或標題頭等信息。

A:只須在Table Header中加行數,把你要顯示的內容放到單元格中,然後再按第二條方式設置後就可以了。

 

1.     分頁的控制方式

1.1.  Reporting Services自動分頁

在報表的頁眉或者頁尾添加文本框,調用全局變量=Globals!PageNumber

1.2.  根據記錄條數來分頁

當每條記錄呈現的高度不一致,我們又希望讓每頁呈現的記錄條數一致,那麼我們可以通過記錄條數來分頁。在通過記錄條數分頁時,通常是

根據記錄條數來分組,然後在組的結束位置添加分頁符。

在表、矩陣或者列表中添加一個組,然後在分組表達式中輸入=(RowNumber("ContainerName") - 1) / PageSize ( PageSize 用每頁所包含的

記錄條數替代,ContainerName用包含這個組的表、矩陣或者列表的名稱替代)。這個表達式是用記錄的行號整除分頁大小,也就是記錄所在的

頁碼數。最後選中“在結尾處分頁”,在每個組實例的結尾處放置分頁符。

1.3.  按組分頁

插入組時,在<常規>的頁籤中,可以選擇<在起始處分頁>或者<在結尾處分頁>

 

2.     獲取參數列表的方法

ReportingService rService = new ReportingService();//創建報表服務實例

rService.Credentials = System.Net.CredentialCache.DefaultCredentials;//設置默認系統憑據

 

   string historyID = null;

   bool forRendering = true;

   ParameterValue[] values = null;  

   DataSourceCredentials[] credentials = null;

   ReportParameter[] parameters;

   parameters = rService.GetReportParameters//獲取報表參數集合

    (

    "/cfhrreport/pos",

    historyID,

    forRendering,

    values,

    credentials       

    );

   ListItem item;

   foreach(ValidValue v in parameters[0].ValidValues)//遍歷參數的有效值集合

   {

    item=new ListItem(v.Label ,v.Value );

    this.DropDownList1 .Items .Add (item);//填充到一個下拉框

   }

 

3.     Reporting Services API

首先添加web引用

http://server/reportserver/reportservice.asmx

ReportingService rService = new ReportingService();//創建報表服務實例

rService.Credentials = System.Net.CredentialCache.DefaultCredentials;//默認系統憑據

CatalogItem[] catalogItems;

catalogItems = rService.ListChildren("/", true);//對根路徑檢索

foreach(CatalogItem item in catalogItems)

{

    if(item.Type ==ItemTypeEnum.Folder)

{

//遍歷報表文件夾

}

}

 foreach(CatalogItem item in catalogItems)

{

if(item.Type ==ItemTypeEnum.Report)

{

//遍歷報表

}

}

//搜索報表

ReportService.SearchCondition[] condition=new SearchCondition[1];

condition[0]=new SearchCondition();

condition[0].Name ="Name";

condition[0].Value =this.TextBox1.Text ;

catalogItems=rs.FindItems ("/",WebReportSample.ReportService .BooleanOperatorEnum .And ,condition);

//發佈報表

byte[] reportData;

System.IO .FileStream fs=System.IO .File.OpenRead ("c://Report1.rdl");

reportData=new byte [fs.Length ];

fs.Read (reportData,0,fs.Length );

rs.CreateReport ("New Report","/",false,reportData,null);

//刪除報表

rs.DeleteItem ("報表名稱");

 

4.     報表Url分析

報表 URL 包含 Web 服務器的名稱、報表服務器虛擬目錄的名稱以及報表的完全限定名稱。(完全限定的名稱包含報表路徑,並以報表本身的

名稱結束。)

http://server/virtualroot?[/pathinfo]&prefix:param=value[&prefix:param=value]...n]

    常用前綴及其參數名:

4.1. rc:toolbar=true/false  顯示/不顯示工具欄

4.2. rs:command=render 呈現報表

4.3. rs:format=PDF(DOC,XLS)導出報表格式

4.4. rc:parameters=true/false  顯示/不顯示工具欄的參數選擇區域

4.5. @Parameter=value  直接傳遞參數值

注意:在URL參數中如果有中文,將不能被正確識別,解決的方法是用HttpUtility.UrlEncode將其轉換爲uft-8,再附加到參數中即可。此外還

要注意參數是大小寫敏感的。

 

5. ASP.NET中展現報表

ASP.NET提供了多種技術來呈現Web形式的報表,通常的解決方法是用Iframe。將我們前面所掌握的URL賦值給Iframe的src,結合Javascritp腳

本,我們便可以將報表集成在頁面中。此外,我們還可以充分利用ASP.NET強大的控件功能,如日曆控件、圖像按鈕等功能提高系統的易用性。

小技巧:有時報表中的圖片可能會顯示不出來,這可能是Cookies的設置問題,你也可以通過讓客戶下載reg文件,把Reporting Services服務

器加入本地計算機的信任站點中。此外,報表中的image有embed和external兩種方式,建議使用external方式,這樣可以有效地縮小報表的尺

寸。

 

6.報表中使用自定義嵌入式代碼

Reporting Service 只接受Microsoft Visual Basic .NET 中編寫嵌入式代碼, 代碼準備好,您就可以使用全局定義的 Code 成員在報表表達

式中調用它。例如,如果您編寫了一個名爲 GetValue 的嵌入式代碼函數,就可以使用下列語法從您的表達式中調用它:

6.1.在報表<屬性>中,選擇<代碼>頁籤,輸入自定義代碼

Function GetValue(value As Object) As Object

if Value is Nothing then

return 0

else

 return value

end if

End Function

    6.2.調用方法:

=Code.GetValue(Code.GetValue(Fields!字段名.Value))

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