2015年12月30日 星期三

SQL 查詢 換行符號

SQL 查詢 換行符號
where id like '%'+char(10)+'%'

CHAR 可用於將控制字符插入字符串中。下表顯示了一些常用的控制字符。
控制鍵 值
Tab: CHAR(9)
換行: CHAR(10)
ENTER: CHAR(13)

Ex:
SELECT * FROM TABLE_NAME
WHERE 1=1 AND COLUMN_NAME LIKE '%'+CHAR(13)+'%'

update base_mapping set basename = replace(basename,Char(10),'')
update base_mapping set basename = replace(basename,Char(13),'')

2015年12月29日 星期二

箭號 網頁無法正常顯示

win98嗎
如果是的話用搜尋去找一隻檔案叫ttfcache
他是一隻隱藏檔
你要在安全模式下將他砍掉
重開機之後因該就恢復正常了

開機時,按下CTRL不放,選擇安全模式(Safe mode)。

是哪個語系的網頁字型?如果沒有安裝任何一種韓文字型,Win98/Me會顯示「框框框」,Win2000/XP可能是空白。

顯示凈PDF文件

引用

我想顯示一個PDF文件和它的工作當我點擊保存按鈕,它讓我保存一個ASPX頁而不是PDF文件?這是我:

string path = CanvasWritingStepImages._pdfName;
WebClient client = new WebClient();
Byte[] buffer = client.DownloadData(path);

if (buffer != null)
{
//content-disposition
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", "attachment ;filename=Formulike.PDF");
Response.BinaryWrite(buffer);

}
else
{
logger.Error("Buffer was Null!");
}

我怎樣才能使它的PDF文件,當我保存它嗎?可以打開新標籤如果是這樣的話,怎麼辦

這個問題有 2 個解答。

第 1 個答案

試試這行替換
Response.AddHeader("content-length", "attachment; filename=Formulike.PDF");
這個
Response.AddHeader("Content-Disposition", "attachment; filename=Formulike.pdf");
你也可以使用
Response.AddHeader("Content-Disposition", "inline; filename=Formulike.pdf");
變化從attachmentinline使PDF被顯示在瀏覽器窗口而不是保存/打開對話框提示

第 2 個答案

由於「kelix我找到一種方法使它下載PDF格式和PDF
 Response.AddHeader("Content-Disposition", "inline; filename=Formulike.pdf");
              Response.AddHeader("content-length", "attachment ;filename=Formulike.PDF");
「內聯」是很重要的。

header中Content-Disposition的作用與使用方法

引用

https://msdn.microsoft.com/zh-tw/library/system.net.mime.contentdisposition(v=vs.110).aspx

Content-disposition 是 MIME 協議的擴展,MIME 協議指示 MIME 用戶代理如何顯示附加的文件。Content-disposition其實可以控制用戶請求所得的內容存為一個文件的時候提供一個默認的文件名,文件直接在瀏覽器上顯示或者在訪問時彈出文件下載對話框。 

格式說明: 
content-disposition = "Content-Disposition" ":" disposition-type *( ";" disposition-parm )   

欄位說明: Content-Disposition為屬性名 
disposition-type是以什麼方式下載,如attachment為以附件方式下載 
disposition-parm為默認保存時的文件名 
服務端向客戶端遊覽器發送文件時,如果是瀏覽器支持的文件類型,一般會默認使用瀏覽器打開,比如txt、jpg等,會直接在瀏覽器中顯示,如果需要提示用戶保存,就要利用Content-Disposition進行一下處理,關鍵在於一定要加上attachment: 
 
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.txt"); 

備註:這樣瀏覽器會提示保存還是打開,即使選擇打開,也會使用相關聯的程序比如記事本打開,而不是IE直接打開了。 
Content-Disposition就是當用戶想把請求所得的內容存為一個文件的時候提供一個默認的文件名。具體的定義如下: 
 
content-disposition = "Content-Disposition" ":" 
disposition-type *( ";" disposition-parm ) 
disposition-type = "attachment" | disp-extension-token 
disposition-parm = filename-parm | disp-extension-parm 
filename-parm = "filename" "=" quoted-string 
disp-extension-token = token 
disp-extension-parm = token "=" ( token | quoted-string ) 


那麼由上可知具體的例子: 

Content-Disposition: attachment; filename="filename.xls" 
當然filename參數可以包含路徑信息,但User-Agnet會忽略掉這些信息,只會把路徑信息的最後一部分做為文件名。當你在響應類型為application/octet- stream情況下使用了這個頭信息的話,那就意味著你不想直接顯示內容,而是彈出一個"文件下載"的對話框,接下來就是由你來決定"打開"還是"保存" 了。 

注意事項: 

1.當代碼裡面使用Content-Disposition來確保瀏覽器彈出下載對話框的時候。 response.addHeader("Content-Disposition","attachment");一定要確保沒有做過關於禁止瀏覽器緩存的操作。如下: 
 
response.setHeader("Pragma", "No-cache"); 
response.setHeader("Cache-Control", "No-cache"); 
response.setDateHeader("Expires", 0); 

不然會發現下載功能在opera和firefox裡面好好的沒問題,在IE下面就是不行

使用 WebForms ReportViewer 控制項

引用
若要檢視已部署至報表伺服器或存在於本機檔案系統的報表,您可以使用 WebForms ReportViewer 控制項在 Web 應用程式中加以轉譯。
若要在 Web 應用程式中使用 ReportViewer 控制項
使用 Microsoft Visual C# 或 Microsoft Visual Basic 建立新的 Microsoft ASP.NET 網站。
-或-
開啟現有的 ASP.NET 網站並加入新的 Web Form。
在 [工具箱] 視窗的 [AJAX 擴充功能] 群組中找出 [ScriptManager] 控制項,並將它拖曳到 Web 表單的設計介面上。
如果看不到 [工具箱],可以從 [檢視] 功能表選取 [工具箱] 加以存取。
在 [工具箱] 中找出 [ReportViewer] 控制項,並將它拖曳至設計介面上的 [ScriptManager] 控制項下方。
名為 reportViewer1 的 [ReportViewer] 控制項會加入至表單。
將控制項加入表單後,[ReportViewer 工作] 智慧標籤將會顯示以提示您選取報表。如果您希望檢視的報表已部署到報表伺服器,請從 [選擇報表] 下拉式清單,選取 [<伺服器報表>] 選項。一旦選取 [<伺服器報表>] 選項,會出現兩個其他屬性:[報表伺服器 URL] 與 [報表路徑]。 [報表伺服器 URL] 是到報表伺服器的位址,[報表路徑] 則是要轉譯之報表的完整路徑。
如果您要以本機模式檢視報表,請選取 [設計新報表] 選項以啟動報表設計師,或選取已是現有專案一部分的報表。在您選取報表之後,請務必在 ReportViewer 控制項的 [ReportPath] 屬性中輸入報表 RDLC 檔案的名稱。這個屬性會出現在 [屬性] 窗格的 [LocalReport] 節點下。
當報表轉譯時,您可以選擇隱藏 ReportViewer 工具列上的一個或多個項目。例如,您可以隱藏列印按鈕。若要隱藏工具列項目,請在 [屬性] 窗格中將下列 ReportViewer 屬性設定為 False。
ShowBackButton
ShowExportControls
ShowFindControls
ShowPageNavigationControls
ShowPrintButton
ShowRefreshButton
ShowZoomControl
以遠端處理模式檢視報表
下列範例示範如何轉譯已部署到報表伺服器的報表。這個範例使用包含在 AdventureWorks2012 範例報表專案中的 Sales Order Detail 報表。
此範例使用整合式 Windows 驗證,因此您必須啟用模擬。若要這樣做,請將下列行插入 web.config 檔案:


System_CAPS_note注意事項
預設會停用模擬。
C#
VB
Imports Microsoft.Reporting.WebForms

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Init(ByVal sender As Object, _
            ByVal e As System.EventArgs) Handles Me.Init

        If Not Page.IsPostBack Then

            'Set the processing mode for the ReportViewer to Remote
            reportViewer.ProcessingMode = ProcessingMode.Remote

            Dim serverReport As ServerReport
            serverReport = reportViewer.ServerReport

            'Set the report server URL and report path
            serverReport.ReportServerUrl = _
                New Uri("http:///reportserver")
            serverReport.ReportPath = _
                "/AdventureWorks Sample Reports/Sales Order Detail"

            'Create the sales order number report parameter
            Dim salesOrderNumber As New ReportParameter()
            salesOrderNumber.Name = "SalesOrderNumber"
            salesOrderNumber.Values.Add("SO43661")

            'Set the report parameters for the report
            Dim parameters() As ReportParameter = {salesOrderNumber}
            serverReport.SetParameters(parameters)

        End If

    End Sub

End Class
以本機處理模式檢視報表
下列範例示範如何轉譯是 Windows 應用程式的一部分且尚未部署到報表伺服器的報表。
若要將 Sales Order Detail 報表加入網站
開啟將加入報表的網站。
從 [網站] 功能表上,選取 [加入現有項目]。
瀏覽至安裝 AdventureWorks 報表範例專案的位置。
預設位置是 C:\Program Files\Microsoft SQL Server\100\Samples\Reporting Services\Report Samples\AdventureWorks Sample Reports。
選取 Sales Order Detail.rdl 檔案,然後按一下 [加入] 按鈕。
Sales Order Detail.rdl 檔案現在應該是專案的一部分。
在 [方案總管] 中,以滑鼠右鍵按一下 Sales Order Detail.rdl 檔案,然後選擇 [重新命名]。將報表重新命名為 Sales Order Detail.rdlc,然後按 ENTER 鍵。
如果看不到 [方案總管],可以從 [檢視] 功能表選取 [方案總管] 加以開啟。
下列的程式碼範例會為銷售訂單資料建立資料集,然後以本機模式轉譯 Sales Order Detail 報表。
C#
VB
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.Reporting.WebForms

Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Init(ByVal sender As Object, _
                ByVal e As System.EventArgs) Handles Me.Init

        If Not Page.IsPostBack Then

            'Set the processing mode for the ReportViewer to Local
            reportViewer.ProcessingMode = ProcessingMode.Local

            Dim localReport As LocalReport
            localReport = reportViewer.LocalReport

            localReport.ReportPath = "Sales Order Detail.rdlc"

            Dim dataset As New DataSet("Sales Order Detail")

            Dim salesOrderNumber As String = "SO43661"

            'Get the sales order data
            GetSalesOrderData(salesOrderNumber, dataset)

            'Create a report data source for the sales order data
            Dim dsSalesOrder As New ReportDataSource()
            dsSalesOrder.Name = "SalesOrder"
            dsSalesOrder.Value = dataset.Tables("SalesOrder")

            localReport.DataSources.Add(dsSalesOrder)

            'Get the sales order detail data
            GetSalesOrderDetailData(salesOrderNumber, dataset)

            'Create a report data source for the sales
            'order detail data
            Dim dsSalesOrderDetail As New ReportDataSource()
            dsSalesOrderDetail.Name = "SalesOrderDetail"
            dsSalesOrderDetail.Value = _
                dataset.Tables("SalesOrderDetail")

            localReport.DataSources.Add(dsSalesOrderDetail)

            'Create a report parameter for the sales order number
            Dim rpSalesOrderNumber As New ReportParameter()
            rpSalesOrderNumber.Name = "SalesOrderNumber"
            rpSalesOrderNumber.Values.Add("SO43661")

            'Set the report parameters for the report
            Dim parameters() As ReportParameter = {rpSalesOrderNumber}
            localReport.SetParameters(parameters)

        End If

    End Sub

    Private Sub GetSalesOrderData(ByVal salesOrderNumber As String, _
                               ByRef dsSalesOrder As DataSet)

        Dim sqlSalesOrder As String = _
            "SELECT SOH.SalesOrderNumber, S.Name AS Store, " & _
            "       SOH.OrderDate, C.FirstName AS SalesFirstName, " & _
            "       C.LastName AS SalesLastName, E.Title AS " & _
            "       SalesTitle, SOH.PurchaseOrderNumber, " & _
            "       SM.Name AS ShipMethod, BA.AddressLine1 " & _
            "       AS BillAddress1, BA.AddressLine2 AS " & _
            "       BillAddress2, BA.City AS BillCity, " & _
            "       BA.PostalCode AS BillPostalCode, BSP.Name " & _
            "       AS BillStateProvince, BCR.Name AS " & _
            "       BillCountryRegion, SA.AddressLine1 AS " & _
            "       ShipAddress1, SA.AddressLine2 AS " & _
            "       ShipAddress2, SA.City AS ShipCity, " & _
            "       SA.PostalCode AS ShipPostalCode, SSP.Name " & _
            "       AS ShipStateProvince, SCR.Name AS " & _
            "       ShipCountryRegion, CC.Phone AS CustPhone, " & _
            "       CC.FirstName AS CustFirstName, CC.LastName " & _
            "       AS CustLastName " & _
            "FROM   Person.Address SA INNER JOIN " & _
            "       Person.StateProvince SSP ON " & _
            "       SA.StateProvinceID = SSP.StateProvinceID " & _
            "       INNER JOIN Person.CountryRegion SCR ON " & _
            "       SSP.CountryRegionCode = SCR.CountryRegionCode " & _
            "       RIGHT OUTER JOIN Sales.SalesOrderHeader SOH " & _
            "       LEFT OUTER JOIN  Person.Contact CC ON " & _
            "       SOH.ContactID = CC.ContactID LEFT OUTER JOIN" & _
            "       Person.Address BA INNER JOIN " & _
            "       Person.StateProvince BSP ON " & _
            "       BA.StateProvinceID = BSP.StateProvinceID " & _
            "       INNER JOIN Person.CountryRegion BCR ON " & _
            "       BSP.CountryRegionCode = " & _
            "       BCR.CountryRegionCode ON SOH.BillToAddressID " & _
            "       = BA.AddressID ON  SA.AddressID = " & _
            "       SOH.ShipToAddressID LEFT OUTER JOIN " & _
            "       Person.Contact C RIGHT OUTER JOIN " & _
            "       HumanResources.Employee E ON C.ContactID = " & _
            "       E.ContactID ON SOH.SalesPersonID = " & _
            "       E.EmployeeID LEFT OUTER JOIN " & _
            "       Purchasing.ShipMethod SM ON SOH.ShipMethodID " & _
            "       = SM.ShipMethodID LEFT OUTER JOIN Sales.Store" & _
            "        S ON SOH.CustomerID = S.CustomerID " & _
            "WHERE  (SOH.SalesOrderNumber = @SalesOrderNumber)"

        Using connection As New SqlConnection( _
                      "Data Source=(local); " & _
                      "Initial Catalog=AdventureWorks; " & _
                      "Integrated Security=SSPI")

            Dim command As New SqlCommand(sqlSalesOrder, connection)

            Dim parameter As New SqlParameter("SalesOrderNumber", _
                salesOrderNumber)
            command.Parameters.Add(parameter)

            Dim salesOrderAdapter As New SqlDataAdapter(command)

            salesOrderAdapter.Fill(dsSalesOrder, "SalesOrder")

        End Using

    End Sub

    Private Sub GetSalesOrderDetailData( _
                           ByVal salesOrderNumber As String, _
                           ByRef dsSalesOrder As DataSet)

        Dim sqlSalesOrderDetail As String = _
            "SELECT  SOD.SalesOrderDetailID, SOD.OrderQty, " & _
            "        SOD.UnitPrice, CASE WHEN " & _
            "        SOD.UnitPriceDiscount IS NULL THEN 0 " & _
            "        ELSE SOD.UnitPriceDiscount END AS " & _
            "        UnitPriceDiscount, SOD.LineTotal, " & _
            "        SOD.CarrierTrackingNumber, " & _
            "        SOD.SalesOrderID, P.Name, P.ProductNumber " & _
            "FROM    Sales.SalesOrderDetail SOD INNER JOIN " & _
            "        Production.Product P ON SOD.ProductID = " & _
            "        P.ProductID INNER JOIN " & _
            "        Sales.SalesOrderHeader SOH ON " & _
            "        SOD.SalesOrderID = SOH.SalesOrderID " & _
            "WHERE   (SOH.SalesOrderNumber = @SalesOrderNumber) " & _
            "ORDER BY SOD.SalesOrderDetailID"

        Using connection As New SqlConnection( _
                      "Data Source=(local); " & _
                      "Initial Catalog=AdventureWorks; " & _
                      "Integrated Security=SSPI")

            Dim command As New SqlCommand(sqlSalesOrderDetail, _
                                          connection)

            Dim parameter As New SqlParameter("SalesOrderNumber", _
                salesOrderNumber)
            command.Parameters.Add(parameter)

            Dim salesOrderDetailAdapter As New SqlDataAdapter(command)

            salesOrderDetailAdapter.Fill(dsSalesOrder, _
                "SalesOrderDetail")

        End Using

    End Sub

End Class

Formatting Numbers and Dates in RDLC Report

引用

Formatting Numbers and Dates in RDLC Report

You can specify a format for numeric and date values by updating the Format property of its text box with a formatting string. For example, you can set a text box for a numeric field to display the number as currency. Reporting Services uses Microsoft .NET Framework formatting strings or you can create a custom formatting string for the Format property.

NoteNote:
To apply formatting to a text box, the text box must contain an expression, for example, =Fields!LineTotal.Value or =1000. If the text box is not an expression, that is, if the text in the text box does not begin with the equal (=) sign, then the text is interpreted as a string and formatting does not apply.

Formatting Numbers

The following table lists common .NET Framework number formatting strings.
Format string
Name
C or cCurrency
D or dDecimal
E or eScientific
F or fFixed-point
G or gGeneral
N or nNumber
P or pPercentage
R or rRound-trip
X or xHexadecimal
You can modify many of the format strings to include a precision specifier that defines the number of digits to the right of the decimal point. For example, a formatting string of D0 formats the number so that it has no digits after the decimal point. You can also use custom formatting strings, for example, #,###.

Formatting Dates

The following table lists common .NET Framework date formatting strings.
Format string
Name
dShort date
DLong date
tShort time
TLong time
fFull date/time (short time)
FFull date/time (long time)
gGeneral date/time (short time)
GGeneral date/time (long time)
M or mMonth day
R or rRFC1123 pattern
Y or yYear month

You can also a use custom formatting strings; for example, dd/MM/yy. For more information about .NET Framework formatting strings, see Formatting Types.

Expression
Result
 =Globals!ExecutionTime
03-07-2012 17:16
 =Format(Globals!ExecutionTime,"dd MMMM yyyy")
07-Mar-12
 =Format(Globals!ExecutionTime,"dd/MM/yyyy")
13-03-2012
 =Format(Globals!ExecutionTime,"dd-MM-yyyy")
13-03-2012
 =Format(Globals!ExecutionTime,"MM-dd-yyyy")
03-13-2012
 =Format(Globals!ExecutionTime,"yyyy-MM-dd HH mm")
13-03-2012 19:11
 =Format(Globals!ExecutionTime,"yyyy-MM-dd HH mm tt")
2012-03-13 19:11 PM
 =Format(Globals!ExecutionTime,"yyyy-MM-dd hh mm tt")
13-03-2012 19:11
 =Format(Globals!ExecutionTime,"dddd, MMMM dd yyyy")
Tuesday, March 13 2012
 =Format(Globals!ExecutionTime,"ddd,MMM d yyyy")
Tue,Mar 13 2012
 =Format(Globals!ExecutionTime,"ddd, MMM d "'"yy")
Sun, Jan 8 '06
 =Format(Globals!ExecutionTime,"dddd, MMMM dd")
Sunday, January 08
 =Format(Globals!ExecutionTime,"M/yy")
01-Jun
 =Format(Globals!ExecutionTime,"d")
01-08-2006
 =Format(Globals!ExecutionTime,"D")
Sunday, January 08, 2006
 =Format(Globals!ExecutionTime,"f")
Sunday, January 08, 2006 11:53 PM
 =Format(Globals!ExecutionTime,"F")
Sunday, January 08, 2006 11:53:52 PM
 =Format(Globals!ExecutionTime,"g")
01-08-2006 23:53
 =Format(Globals!ExecutionTime,"G")
01-08-2006 23:53
 =Format(Globals!ExecutionTime,"m")
Jan-08
 =Format(Globals!ExecutionTime,"r")
Sun, 08 Jan 2006 23:53:52 GMT
 =Format(Globals!ExecutionTime,"s")
2006-01-08T23:53:52
 =Format(Globals!ExecutionTime,"t")
11:53 PM
 =Format(Globals!ExecutionTime,"T")
11:53:52 PM
 =Format(Globals!ExecutionTime,"u")
2006-01-08 23:53:52Z
 =Format(Globals!ExecutionTime,"U")
Monday, January 09, 2006 5:53:52 AM
 =Format(Globals!ExecutionTime,"y")
January, 2006

RDLC报表若要隱藏第一頁或最後一頁的頁首或頁尾

引用

若要隱藏第一頁或最後一頁的頁首或頁尾

  1. 在 [配置] 檢視中,按一下頁首或頁尾。
  2. 在 [屬性] 視窗中,針對 [PrintonFirstPage] 或 [PrintonLastPage] 屬性,選取 [False]。
Microsoft 報表
※ Microsoft 報表 >> 報表設計工具
※ Microsoft 報表 >> ReportViewer 控制項
※ Microsoft 報表 >> Class Library
D:\Download\微軟\ReportViewerSample

※ 網路爬文
◎ CodeProject sirwan mualla -- Direct print for microsoft_report (RDLC) 2014-7-16 ===> RDLC 不過是格式, 有看到讀檔但看不出來何處塞資料, 要再測才知道

※ Microsoft 報表
    1. 報表設計工具
    2. ReportViewer 控制項
    3. ReportViewer 控制項程式設計參考
※ Microsoft 報表 >> 報表設計工具
   1. 報表概觀
    * 報表種類:自由形式, 多重資料行, 鑽研報表, 互動式報表, 簡單報表
    * 報表部份:可插入 文字方塊, 資料表, 矩陣, 圖表, 影像, 子報表, 清單, 矩形, 線條
                        矩陣提供類似於交叉資料表和樞紐資料表的功能
    * 關於報表定義檔案RDL XML
          ReportViewer 控制項會利用您定義的資料繫結來擷取資料,且會將結果集合併到報表配置中。
         報表會以您正在使用之控制項的原生輸出格式來呈現。如果是 Web 伺服器控制項,輸出格式便是 HTML。
         如果是 Windows Form 控制項,輸出格式便是 Graphical Device Instrumentation (GDI) 格式。
   2. 建立用戶端報表定義檔案 (.rdlc)
   2.1 使用報表精靈建立用戶端報表定義
       樣式範本:Bold, Corporate, Forest, Generic, Ocean, Slate
       可編輯 \Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Private Assemblies\<語言> 資料夾內的 StyleTemplates.xml 檔案,改變範本。
   2.2 建立報表的資料來源
       資料來源只要可提供 DataTable 或 可列舉的集合

     - 如何加入 ReportViewer 報表的資料來源
       . 將資料來源加入應用程式專案中,再設定對於基礎資料的資料連接。
       . 建立資料表 [TabaleAdapter 精靈]
       . 建立商務物件
   2.3 更新和重新繫結資料來源參考
     * ReportViewer 控制項資料來源參考
     - 利用 [ReportViewer 工作] 智慧標籤面板中的 [選擇資料來源] 工作,將資料來源繫結到從伺服器報表定義檔案 (.rdl) 轉換來的用戶端報表定義檔案 (.rdlc)。
     - 利用 [ReportViewer 工作] 智慧標籤面板中的 [重新繫結資料來源] 工作,使控制項和報表定義與修改的資料集同步。
     - 利用 [報表] 功能表的 [報表資料來源] 對話方塊來更新報表定義檔案所儲存的結構描述資訊。當您在圖形設計模式中編輯用戶端報表定義檔案 (.rdlc) 時,可以使用 [報表] 功能表。
     * 報表定義中的資料來源參考
       1. 開啟用戶端報表定義檔案 (.rdlc)
       2. 選取專案資料來源,按一下[加入報表]
           移除現有的資料集參考
           重新命名資料集,您可以利用 [報表資料來源] 對話方塊來更新報表定義中的資料集名稱
       3.按一下 [全部重新整理]
   2.4 定義報表配置
   2.4.1 加入資料區
       * 加入資料表資料區域
          ,以建立表格式、矩陣、圖表和清單報表。
       * 加入清單資料區域
       * 新增矩陣資料區域
       * 在報表中加入圖表
         直條圖, 橫條圖, 折線圖類型, 圓形圖, XY 圖, 泡泡圖, 區域圖, 環圈圖, 股票圖
   2.4.2 加入文字方塊
         ="這是靜態文字標籤"
         =Fields!UnitCost.Value
         =Fields!TotalUnits.Value * Fields!UnitCost.Value
         =Sum(Fields!TotalUnits.Value)
       * 設定文字方塊屬性
         Calendar 日期要用的日曆, Direction 水平寫入方向, Language NumeralLanguage 數字格式,NumeralVariant 數字變式, UnicodeBiDi 雙向內嵌層級
         CanGrow 依內容展開文字方塊, CanShrink
   2.4.3 加入影像
   2.4.4 加入矩形、線條和框線
   2.4.5 加入互動性、可見性和導覽
         URL, 書籤, 鑙研
       * 文件引導模式
         顯示成在報表旁的目錄, 區段和群組是依照連結的階層來安排
         匯出時, PDF會將文件引導顯示成 [書籤]。Excel會顯示成階層的具名工作表。
         HOW TO:建立文件引導模式
         HOW TO:建立書籤
         HOW TO:在報表項目上隱藏或定義切換
   2.4.6 加入頁首和頁尾
         PrintOnFirstPage, PrintOnLastPage, InteractiveHeight, InteractiveWidth, PageHeight, PageWidth
         不能直接參考頁首或頁尾中之文字方塊的欄位,不能在頁首或頁尾的欄位中,使用彙總函數。
       * 顯示變數資料
         =First(ReportItems!TXT_LastName.Value)   ' 在頁首或頁尾中參考這個文字方塊
         =Globals.PageNumber & " of " & Globals.TotalPages   ' 頁尾通常會顯示頁碼
         =ReportItems!ReportTitle.Value   ' 報表標題
         =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")    ' 報表名稱, 產生時間戳記
         =Convert.ToBase64String(Fields!Photo.Value)    ' 加入影像, 須是base64編碼, 隱藏在報表主體中
         =Convert.FromBase64String(ReportItems!TXT_Photo.Value)
         =Sum(ReportItems!Textbox1.Value) ' 頁面總計
      
   2.4.7 加入樣式和格式
       * Color 屬性
         =iif(Fields!Profit.Value < 0, "Red", "Black")
       * BackgroundColor 屬性
         =iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White") ' 資料表白綠相間

        * Format 屬性
       - 格式化數字
         C 貨幣 D 十進位 E 科學記號 F 固定點 G 一般 N 數字 P 百分比 R 往返 X 十六進位
         格式化字串 D0 會將數字格式化,成為小數點之後沒有位數, #,###
       - 格式化日期
         簡短日期 D 完整日期 t 簡短時間 T 完整時間 f 詳細日期簡短時間 F 詳細日期完整時間
         g 一般日期簡短時間 G 一般日期完整時間 M 月份日期 R RFC1123 Y 年度月份
         自訂格式化字串;如 dd/MM/yy 格式化型別
   2.4.8 在報表中定義報表參數
         若要在執行階段提供資料值給參數,您必須撰寫傳遞值的程式碼。
         在本機處理模式中,ReportViewer 控制項不會提供用來接受使用者參數值的參數區域。
         您必須將欄位加入表單來取得資料值,然後再利用 SetParameters 方法,將這些值傳給 ReportViewer 控制項。
         參閱 Microsoft.Reporting.WebForms.ReportParameterInfo 和 Microsoft.Reporting.WinForms.ReportParameterInfo
   2.4.9 在報表中群組資料
         可以將小計和其他運算式加入群組首和群組尾中。
         在矩陣中,群組會顯示成動態資料行或資料列。
         可以將群組放在其他群組內,成為巢狀結構,再加上小計。
       - 遞迴階層 € D:\@Source\XXXWeb\MSDNReport
         要拉 TableAdapter 才會自動建立報表的資料集
   2.4.10 在報表中排序資料
   2.4.11 HOW TO:篩選報表中的資料
   2.5 最佳化報表 HTML 輸出配置
   2.6 在報表中使用運算式   報表中運算式的全域集合    報表的內建函式
     * 一般運算式
       =Today()
       =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
     * 字串  可使用 System.String 成員
       =Format(Parameters!StartDate.Value, "D") & " through " & Format(Parameters!EndDate.Value, "D")
       =Right(Parameters!User.Value, Len(Parameters!User.Value) - InStr(Parameters!User.Value, "\"))
       =Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)
       =Join(Parameters!MySelection.Value) ' 将参数 MySelection 的所选值串联到单个字符串中(多選)
     * System.Text.RegularExpressions
        =System.Text.RegularExpressions.Regex.Replace(Fields!Phone.Value, "(\d{3})[ -.]*(\d{3})[ -.]*(\d{4})", "($1) $2-$3")
     * 決策
       =Iif(Fields!LineTotal.Value > 100, True, False)
       =Switch(Fields!PctComplete.Value >= .8, "Green", Fields!PctComplete.Value >= .5, "Amber", Fields!PctComplete.Value <.5, "Red")
     * 報表
       =Sum(Fields!LineTotal.Value, "Order")
       =RowNumber(Nothing)
     * 頁首&頁尾
       =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
       =Globals.PageNumber & " of " & Globals.TotalPages
       =First(ReportItems!LastName.Value)

※ Microsoft 報表 >> ReportViewer 控制項
‧ ReportViewer 類別 ..WebControl                                    命名空間: Microsoft.Reporting.WebForms
+P
+ Attributes
+ CurrentPage : int default: 0
+ LocalReport : Report
+ ServerReport
+ ShowBackButton                          g/s that whether the Back button is visible on the toolbar.
+ ShowCredentialPrompts
+ ShowDocumentMapButton
+ ShowExportControls
+ ShowFindControls
+ ShowPageNavigationControls
+ ShowParameterPrompts
+ ShowPrintButton
+ ShowPromptAreaButton
+ ShowRefreshButton
+ ShowReportBody
+ ShowToolBar
+ ShowZoomControl
+ SizeToReportContent
+ ZoomMode
+ ZoomPercent
+M
+JumpToBookmark
+JumpToDocumentMapId
+PerformBack
+E
+ Back
+ BookmarkNavigation
‧ Report 類別                                                                  命名空間: Microsoft.Reporting.WebForms
+P
+ DisplayName
+M
+ GetDefaultPageSettings : ReportPageSettings
+ GetDocumentMap : DocumentMapNode
+ GetParameters
+ GetTotalPages
+ ListRenderingExtensions
+ LoadReportDefinition (Stream) (TextReader)
+ Refresh
+ Render
   參數
       format:      XML, NULL, CSV, IMAGE, PDF, HTML4.0, HTML3.2, MHTML, EXCEL, and HTMLOWC
       deviceInfo
       mimeType
       encoding
       fileNameExtension
       streams
       warnings
+ SetParameters


◎ keisuoy的专栏 Asp.net中动态控制RDLC报表 2007-08-08
1. 透過localReport找到Report對象
2. 報表全部自動生成
   reportViewer1.Reset();
   reportViewer1.LocalReport.LoadReportDefinition(m_rdl);
   reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("MyData", m_dataSet.Tables[0]));
   reportViewer1.RefreshReport();
3. 加戴rdlc到XmlDocument, 修改xml, 交給 ReportViewer


◎ .Net下动态报表生成实现(一) 博客园 蓝天_白云 2011/10/16

   ReportXml rex = new ReportXml(destname);
   ...

   foreach (DataRow row in xz._XiangXhen.Rows) {
      Rex.AddParameter
      Rex.AddDataSetColumn
      Rex.AddTableColumn
      Rex.AddTableHaderSecondRowCell
      Rex.AddDetailsCell
      ...
   }

   Rex.EditPageFooterLineWidth

   this.reportViewer.LocalReport.ReportPath = destname;
   this.reportViewer.LocalReport.SetParameters(cc);
   this.reportViewer.RefreshReport();

   public ReportXml(string filename) {
      ... 產出XML
   }