Reporting Services 中的运算式范例_第1页
Reporting Services 中的运算式范例_第2页
Reporting Services 中的运算式范例_第3页
Reporting Services 中的运算式范例_第4页
Reporting Services 中的运算式范例_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9/9函數報表中的許多運算式都有包含函數,您可以使用這些函數來格式化資料、套用邏輯以及存取報表中繼資料。您可撰寫運算式來使用VisualBasic執行階段程式庫及System.Convert和System。Math命名空間中的函數。您可以加入其他組件或自訂程式碼中函數的參考,也可以使用Microsoft.NETFramework中的類別,包括System.Text.RegularExpressions。如需有關運算式中支援的VisualBasic函數的詳細資訊,請參閱中的「VisualBasic執行階段程式庫」.VisualBasic函數您可以使用MicrosoftVisualBasic函數來操作顯示在文字方塊中的資料,或是操作用於參數、屬性或報表之其他區域的資料。此章節提供示範其中一些函數的範例。如需有關VisualBasic函數的詳細資訊,請參閱VisualBasic文件集。日期函數您可以使用VisualBasic函數在報表中提供日期資訊。下列運算式包含Today函數,此函數提供目前日期。此運算式可用於文字方塊,以顯示報表中的日期,或根據目前的日期在參數中篩選資料。=Today()DateAdd函數在根據單一參數提供一個範圍的日期時很有用。下列運算式會提供一個比來自StartDate參數的日期晚六個月的日期。=DateAdd(DateInterval.Month,6,Parameters!StartDate.Value)下列運算式包含Year函數,此函數會顯示特定日期的年。您可以使用這個來將日期群組在一起,或是將年顯示為一組日期的標籤。此運算式會提供年份給某一指定排序日期群組。Month函數和其他函數也可用來操作日期。如需詳細資訊,請參閱VisualBasic.NET文件集.=Year(Fields!OrderDate。Value)字串函數您可以使用VisualBasic函數在報表中操作字串。您可以使用串連運算子和VisualBasic常數,將一個以上的欄位結合在一起。下列運算式會傳回兩個欄位,分別位於相同文字方塊中的不同行。=Fields!FirstName.Value&vbCrLf&Fields!LastName.Value您可以使用Format函數,將字串中的日期與數字格式化.下列運算式會以完整日期格式,顯示StartDate和EndDate參數的值.=Format(Parameters!StartDate.Value,"D")&"through"&Format(Parameters!EndDate.Value,"D”)如果文字方塊只包含日期或數字,您應該使用文字方塊的Format屬性來套用格式,而非使用文字方塊中的Format函數。Right、Len和InStr函數在傳回子字串時很有用,例如,將DOMAIN\username修改成只有使用者名稱。下列運算式會從名為User的參數傳回字串中反斜線(\)字元右邊的字串部分:=Right(Parameters!User.Value,Len(Parameters!User.Value)-InStr(Parameters!User。Value,"\"))下列運算式使用.NETFrameworkString類別的成員代替VisualBasic函數,產生與前面相同的值:=Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1,Parameters!User.Value.Length-Parameters!User。Value。IndexOf("\")—1)您可以顯示多重數值參數中所選的值。下列範例會使用Join函數,將選定的MySelection參數值串連到單一字串,此字串可以設為報表項目中文字方塊值的運算式.=Join(Parameters!MySelection。Value)如果文字方塊只包含日期或數字,您應該使用文字方塊的Format屬性來套用格式,而非使用文字方塊中的Format函數。。NETFrameworkSystem。Text.RegularExpressions中的Regex函數對於變更現有字串的格式(例如,格式化電話號碼)很有用處。下列運算式使用Replace函數,將欄位中十位數電話號碼的格式從425-555-8080變更為(425)555-8080:=System。Text.RegularExpressions.Regex。Replace(Fields!Phone.Value,"(\d{3})[—.]*(\d{3})[-。]*(\d{4})","($1)$2—$3”)轉換函數您可以使用VisualBasic函數,根據報表中的需要來轉換資料類型。您可以視需要來使用VisualBasic函數轉換資料類型,轉換函數通常是用來刪除或格式化報表中的「#錯誤」訊息.下列運算式會顯示針對多重數值參數MySelection所選的值數目。=CStr(Parameters!MySelection.Count)決策函數您可以使用VisualBasic函數來評估輸入值,並根據結果傳回另一個值。Iif函數會根據運算式是否評估為True,傳回兩個值之中的一個.如果LineTotal的值超過100,則下列運算式會使用Iif函數來傳回True的布林值。否則會傳回False:=Iif(Fields!LineTotal.Value>100,True,False)下列運算式使用多個Iif函數(也稱為「巢狀Iif」),依據PctComplete的值傳回三個值之中的一個。=Iif(Fields!PctComplete.Value>=。8,”Green",Iif(Fields!PctComplete。Value〉=。5,"Amber",”Red"))下列運算式也會根據PctComplete的值,傳回三個值當中的一個,但是改用Switch函數,這會傳回與一連串評估為True之運算式中的第一個運算式相關聯的值:=Switch(Fields!PctComplete.Value〉=.8,"Green",Fields!PctComplete。Value>=.5,"Amber",Fields!PctComplete.Value<.5,"Red")下列運算式會測試ImportantDate欄位的值,並在超過一週以上時傳回"Red”,否則會傳回”Blue";這個運算式可用來控制報表項目中文字方塊的色彩屬性。=IIF(DateDiff(”d",Fields!ImportantDate.Value,Now())>7,"Red”,"Blue”)下列運算式會測試PhoneNumber欄位的值,看看它是否為null(VisualBasic中則為Nothing),並傳回"NoValue”,而不是Null值;這個運算式可用來控制報表項目中文字方塊的值.=IIF(Fields!PhoneNumber.ValueIsNothing,"NoValue",Fields!PhoneNumber.Value)下列運算式會測試Department欄位的值,然後傳回子報表名稱或null(VisualBasic中的Nothing)。此運算式可用於條件式鑽研子報表.=Iif(Fields!Department.Value=”Development”,”EmployeeReport",Nothing)下列運算式會測試欄位值是否為Null。此運算式可用來控制影像報表項目的[隱藏]屬性。=Iif(IsNothing(Fields!LargePhoto.Value),True,False)報表函數ReportingServices提供了可用來在報表中操作資料的其他報表函數。此章節提供這些函數的其中兩個範例。如需有關報表函數與範例的詳細資訊,請參閱<在運算式中使用報表功能(ReportingServices)>.Sum函數可以將群組或資料區域中的值總計。此函數在資料表群組的頁首或頁尾中非常有用。下列運算式顯示Order群組或資料區域中的資料總和:=Sum(Fields!LineTotal.Value,”Order")包含RowNumber函數的運算式,在資料區域中的文字方塊裡使用時,會顯示運算式出現之文字方塊的每個執行個體的資料列數目。此函數對於計算資料表中的資料列數目非常有用。它對於更複雜的工作也非常實用,例如,根據資料列數目提供分頁符號。如需詳細資訊,請參閱本主題稍後的「分頁符號」。下列運算式會顯示最外層之資料區域中的第一列至最後一列的資料列數目.Nothing關鍵字指出函數將從最外層資料區域中的第一個資料列開始計數;若要在子資料區域中開始計數,請使用資料區域的名稱.=RowNumber(Nothing)

報表資料的外觀您可以使用運算式來操作報表中資料顯示的方式。例如,可以在單一文字方塊中顯示兩個欄位的值、顯示有關報表的資訊,或影響報表中插入分頁符號的方式。頁首和頁尾設計報表時,您需要顯示報表的名稱以及報表尾的頁碼。若要這麼做,您可以使用下列運算式:下列運算式提供報表的名稱和執行報表的時間。它可以放置在報表尾的文字方塊中或是報表的主體中。時間會以。NETFramework的簡短日期格式化字串進行格式化:=Globals.ReportName&",dated"&Format(Globals。ExecutionTime,"d")下列放在報表尾文字方塊中的運算式,提供報表的頁碼與總頁數。=Globals.PageNumber&"of"&Globals.TotalPages您也可以在報表首或報表尾中使用運算式,以報告報表主體中的項目。下列範例描述如何顯示一頁中頁首的第一個和最後一個值,與目錄清單中所找到的類似.本範例假設一個資料區域,含有名為LastName的文字方塊。下列運算式放在頁首左邊的文字方塊中,提供頁面上LastName文字方塊的第一個值:=First(ReportItems(”LastName”)。Value)下列運算式放在頁首右邊的文字方塊中時,會提供此頁上LastName文字方塊的最後一個值:=Last(ReportItems(”LastName").Value)您可以在頁首或頁尾將彙總套用至報表項目參考。(但是,您無法在報表主體中將彙總套用至報表項目參考)。下列範例描述如何顯示總頁數。本範例假設一個資料區域,含有名為Cost的文字方塊。下列運算式放在頁首或頁尾中,提供頁面的Cost文字方塊裡之值的總和:=Sum(ReportItems("Cost").Value)附註:在頁首或頁尾中,每個運算式只能參考一個報表項目。

分頁符號在某些報表中,除了在群組或報表項目上放置分頁符號以外,您也可能會需要在指定資料列數目的結尾處放置分頁符號.若要這樣做,請在資料區域中建立一個群組(通常是在詳細資料外面立即建立一個群組),將分頁符號加入群組中,然後依指定的資料列數目將群組運算式加入群組中。下列運算式放在群組運算式中,每25個資料列即指派一個數字.為群組定義分頁符號時,這個運算式每隔25個資料列就會產生一個分頁符號.=Int((RowNumber(Nothing)—1)/25)

屬性運算式不只用來顯示文字方塊中的資料。運算式也可以用來變更將屬性套用至報表項目的方式。您可以變更報表項目的樣式資訊,或是變更其可見性。格式化您可以使用運算式來更改報表中之報表項目的外觀。下列運算式在文字方塊的Color屬性裡使用時,會根據Profit欄位的值變更文字的色彩:=Iif(Fields!Profit.Value〈0,"Red","Black")下列運算式在資料區域中之報表項目的BackgroundColor屬性裡使用時,會以淡綠色和白色交替顯示每個資料列的背景色彩:=Iif(RowNumber(Nothing)Mod2,"PaleGreen”,"White”)如果您使用指定之範圍的運算式,可能必須指出彙總函數的資料集:=Iif(RowNumber("Employees")Mod2,”PaleGreen”,”White”)可見性您可以使用報表項目的可見性屬性,來顯示和隱藏報表中的項目。在如資料表的資料區域中,您可以根據運算式中的值一開始便隱藏詳細資料列.下列運算式用於群組中之詳細資料列的初始可見性時,會顯示PctQuota欄位裡超過90%之所有銷售的詳細資料列:=Iif(Fields!PctQuota.Value>.9,False,True)下列運算式設定在資料表的[可見性]、[隱藏]屬性中時,只有當此資料表有12個以上的資料列時,才會顯示:=IIF(CountRows()>12,true,false)

報表資料您可以使用運算式來操作用於報表中的資料.您可以參考參數和其他的報表資訊。您甚至可以變更用來擷取報表資料的查詢。參數您可以在參數中使用運算式,以更改參數的預設值。例如,您可以使用參數,根據用來執行報表的使用者識別碼來篩選特定使用者的資料。使用下列運算式作為參數的預設值時,收集執行報表之人員的使用者識別碼:=User!UserID您可以使用下列運算式在查詢參數、篩選運算式、文字方塊或報表的其他區域中參考參數.這個範例假設參數的名稱是User:=Parameters!User。Value

自訂程式碼您可以在報表中使用自訂程式碼,自訂程式碼會內嵌在報表中,或是儲存在用於報表的自訂組件中.如需有關自訂程式碼的詳細資訊,請參閱<在運算式中使用自訂程式碼參考(ReportingServices)>。下列範例會呼叫內嵌的程式碼方法ToUSD,這個方法會將StandardCost欄位值轉換為美元值:=Code.ToUSD(Fields!StandardCost.Value)下列範例會示範如何定義某些自訂常數和變數.[VisualBasic]PublicConstMyNote="AuthoredbyBob”PublicConstNCopiesAsInt32=2PublicDimMyVersionAsString=”123。456”PublicDimMyDoubleVersionAsDouble=123.456雖然自訂常數和變數不會出現在運算式編輯器的[常數]檢視中(這個檢視只會顯示內建常數),但是您可以從任何運算式加入參考,如下列範例所示,這些常數和變數會視為Variant。[VisualBasic]=Code。MyNote=Code.NCopies=Code.MyVersion=Code.MyDoubleVersion下列範例會呼叫內嵌的程式碼方法FixSpelling,此方法會以Bicycle替代SubCategory。Value中出現之所有文字Bike.=Code。FixSpelling(Fields!SubCategory。Value)將下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论