日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

在 ReportViewer 报表中使用表达式

發(fā)布時間:2025/3/17 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在 ReportViewer 报表中使用表达式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

有些表達式在報表中很常用。其中包括更改報表中的數(shù)據(jù)外觀的表達式、計算總數(shù)的表達式和更改報表項屬性的表達式。本主題介紹了報表中可用于常見任務的一些表達式。

報表中的許多表達式都包含函數(shù)。您可以編寫使用 Microsoft.VisualBasic、System.Convert 和 System.Math 命名空間中的函數(shù)的表達式,或將引用添加到其他程序集或自定義代碼中。還可以使用 Microsoft .NET Framework 中的類。有關詳細信息,請參閱 .NET Framework SDK 類庫文檔。

函數(shù)

報表中的大部分函數(shù)為 Microsoft Visual Basic 函數(shù)或者內(nèi)置報表函數(shù)??梢允褂眠@些函數(shù)來設置數(shù)據(jù)格式、應用邏輯和訪問報表元數(shù)據(jù)。

Visual Basic 函數(shù)

可以使用 Visual Basic 函數(shù)來操作文本框中所顯示的數(shù)據(jù),或者操作參數(shù)、屬性或報表其他區(qū)域中所用的數(shù)據(jù)。本節(jié)舉例說明了其中一些函數(shù)。有關 Visual Basic 函數(shù)的詳細信息,請參閱 Visual Basic 文檔。

日期函數(shù)

可以使用 Visual Basic 函數(shù)在報表中提供日期信息。

  • 以下表達式包含 Today 函數(shù),用于提供當前日期。此表達式可用在文本框中以在報表上顯示日期,或用在參數(shù)中以根據(jù)當前日期篩選數(shù)據(jù):

    復制代碼 =Today()
  • 如果要根據(jù)單個參數(shù)來提供日期范圍,則可使用 DateAdd 函數(shù)。以下表達式提供了 StartDate 參數(shù)中的日期之后六個月的日期:

    復制代碼 =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
  • 以下表達式包含了 Year 函數(shù),用于顯示特定日期所屬的年份。可以使用此表達式將日期組合在一起,或者將年份作為一組日期的標簽顯示。此表達式為給定順序的一組日期提供年份:

    復制代碼 =Year(Fields!OrderDate.Value)
  • Month 函數(shù)和其他函數(shù)也可用于處理日期。有關詳細信息,請參閱 Visual Basic 文檔。

字符串函數(shù)

可以使用 Visual Basic 函數(shù)操作報表中的字符串。

  • 可以使用 Format 函數(shù)來設置字符串中的日期和數(shù)字的格式。 The following expression displays values of the StartDate and EndDate parameters in long date format:

    復制代碼 =Format(Parameters!StartDate.Value, "D") & " through " & Format(Parameters!EndDate.Value, "D")

    如果文本框只包含日期或數(shù)字,則應當使用文本框的 Format 屬性(而不是文本框中的 Format 函數(shù))來應用格式。

  • Right、Len 和 InStr 函數(shù)用于返回子字符串,例如,修整 DOMAIN\username 以只返回用戶名。 The following expression returns a portion of a string to the right of a backslash (\) character from a parameter named User:

    復制代碼 =Right(Parameters!User.Value, Len(Parameters!User.Value) - InStr(Parameters!User.Value, "\"))

    The following expression results in the same value as the previous one, using members of the .NET Framework String class instead of Visual Basic functions:

    復制代碼 =Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)

決策函數(shù)

可以使用 Visual Basic 函數(shù)來計算輸入值并根據(jù)結果返回另一個值。

  • Iif 函數(shù)根據(jù)表達式的計算結果是否為 True 返回兩個值中的一個。以下表達式使用了 Iif 函數(shù),如果 LineTotal 的值超過 100,則返回布爾值 True,否則返回 False:

    復制代碼 =Iif(Fields!LineTotal.Value > 100, True, False)

    以下表達式使用了多個 Iif 函數(shù)(也稱為“嵌套 Iif 函數(shù)”),根據(jù) PctComplete 的值返回三個值中的一個。

    復制代碼 =Iif(Fields!PctComplete.Value >= .8, "Green", Iif(Fields!PctComplete.Value >= .5, "Amber", "Red"))
  • 以下表達式也是根據(jù) PctComplete 的值返回三個值中的一個,不過使用的是 Switch 函數(shù),該函數(shù)返回的是多個表達式中計算結果為 True 的第一個表達式的值:

    復制代碼 =Switch(Fields!PctComplete.Value >= .8, "Green", Fields!PctComplete.Value >= .5, "Amber", Fields!PctComplete.Value < .5, "Red")

報表函數(shù)

Reporting Services 提供了可用于操作報表中的數(shù)據(jù)的其他報表函數(shù)。本節(jié)舉例說明了其中兩個函數(shù)。有關報表函數(shù)和示例的詳細信息,請參閱 ReportViewer 報表的內(nèi)置函數(shù)。

  • Sum 函數(shù)可計算某一分組或數(shù)據(jù)區(qū)域中多個值的和。此函數(shù)可用于表格組的頁眉或頁腳中。以下表達式顯示了訂單分組或數(shù)據(jù)區(qū)域中數(shù)據(jù)的和:

    復制代碼 =Sum(Fields!LineTotal.Value, "Order")
  • 如果將包含 RowNumber 函數(shù)的表達式用于數(shù)據(jù)區(qū)域中的文本框中,則該表達式將顯示表達式所在文本框的每個實例的行號。此函數(shù)可用于給表格中的各行加編號。還可以將其用于更復雜的情況,例如,根據(jù)行號提供分頁符。有關詳細信息,請參閱本主題中后面的“分頁符”。

    以下表達式顯示了從最外面數(shù)據(jù)區(qū)域的第一行到最后一行的行號。Nothing 關鍵字表示函數(shù)將從最外面數(shù)據(jù)區(qū)域的第一行開始計數(shù)。若要從子數(shù)據(jù)區(qū)域開始計數(shù),可使用數(shù)據(jù)區(qū)域的名稱。

    復制代碼 =RowNumber(Nothing)

報表數(shù)據(jù)的外觀

可以使用表達式來控制數(shù)據(jù)在報表上的顯示形式。例如,可以在一個文本框中顯示兩個字段的值、顯示報表的有關信息或影響報表中分頁符的插入方式。

頁眉和頁腳

在設計報表時,可能需要在報表的頁腳顯示報表名稱和頁碼。為此,可使用以下表達式:

  • 以下表達式提供了報表的名稱以及它的運行時間??梢詫⒃摫磉_式放入報表頁腳或表體的文本框中。 The time is formatted with the .NET Framework formatting string for short date:

    復制代碼 =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
  • 以下表達式位于報表頁腳的文本框中,提供了報表的頁碼和全部頁。

    復制代碼 =Globals.PageNumber & " of " & Globals.TotalPages

也可以在報表頁眉或頁腳中引用表體中的報表項。以下示例說明了如何在頁眉中顯示頁面中的第一個值和最后一個值,類似于目錄列表的形式。該示例假定存在一個包含名為 LastName 的文本框的數(shù)據(jù)區(qū)域。

  • 以下表達式位于頁眉左側的文本框中,提供了頁面上 LastName 文本框的第一個值:

    復制代碼 =First(ReportItems!LastName.Value)
  • The following expression, placed in a textbox on the right side of the page header, provides the last value of the LastName text box on the page:

    復制代碼 =Last(ReportItems!LastName.Value)

可以對頁眉或頁腳中所引用的報表項應用聚合函數(shù)。(不過,不能對表體中所引用的報表項應用聚合函數(shù)。)以下示例說明了如何顯示頁總頁數(shù)。該示例假定存在一個包含名為 Cost 的文本框的數(shù)據(jù)區(qū)域。

  • 以下表達式位于頁眉或頁腳中,提供了頁面上的 Cost 文本框中的值的和:

    復制代碼 =Sum(ReportItems!Cost.Value) 注意

    頁眉或頁腳中的每個表達式只能引用一個報表項。

分頁符

在某些報表中,可能需要在指定行數(shù)之后、組或報表項上放置分頁符。為此,在數(shù)據(jù)區(qū)域中創(chuàng)建組(通常是緊挨著詳細信息區(qū)域的組),在組中添加分頁符,然后根據(jù)指定行數(shù)在組中添加組表達式。

  • 如果將以下表達式放置在組表達式中,則它將給每 25 行指定一個編號。如果為組定義了分頁符,將導致每隔 25 行插入一個分頁符。

    復制代碼 =Int((RowNumber(Nothing)-1)/25)

屬性

表達式不僅用于顯示文本框中的數(shù)據(jù)。還可以用于更改將屬性應用于報表項的方式??梢愿膱蟊眄椀臉邮叫畔?#xff0c;或更改其可見性。

格式

可以使用表達式改變報表中報表項的外觀。

  • 如果在文本框的 Color 屬性中使用以下表達式,則它可根據(jù) Profit 字段的值更改文本的顏色:

    復制代碼 =Iif(Fields!Profit.Value < 0, "Red", "Black")
  • 如果在數(shù)據(jù)區(qū)域中的報表項的 BackgroundColor 屬性中使用以下表達式,則它可更改淡綠色與白色之間的每一行的背景顏色:

    復制代碼 =Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")

可見性

可以使用報表項的可見性屬性來顯示和隱藏報表中的項。在諸如表的數(shù)據(jù)區(qū)域中,最初可以根據(jù)表達式中的值隱藏詳細信息行。

  • The following expression, when used for initial visibility of detail rows in a group, shows the detail rows for all sales exceeding 90 percent in the PctQuota field:

    復制代碼 =Iif(Fields!PctQuota.Value>.9, False, True)

報表參數(shù)

可以在參數(shù)中使用表達式來更改參數(shù)的默認值。例如,可以使用參數(shù),以根據(jù)用于運行報表的用戶 ID 篩選特定用戶的數(shù)據(jù)。

  • 如果將以下表達式用作參數(shù)的默認值,則它可收集運行報表的用戶的用戶 ID:

    復制代碼 =User!UserID

自定義代碼

可以在報表中使用自定義代碼。自定義代碼既可以嵌入報表中,也可以存儲在報表所使用的自定義程序集中。有關自定義代碼的詳細信息,請參閱向 ReportViewer 報表中添加自定義代碼。

  • 以下示例調用了 ToUSD 嵌入代碼方法,該方法將 StandardCost 字段值轉換為美元值:

    復制代碼 =Code.ToUSD(Fields!StandardCost.Value)本文轉自94cool博客園博客,原文鏈接:http://www.cnblogs.com/94cool/p/4283809.html,如需轉載請自行聯(lián)系原作者

總結

以上是生活随笔為你收集整理的在 ReportViewer 报表中使用表达式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。