Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Rapor sunucusuna dağıtılan raporları veya yerel dosya sisteminde mevcut raporları görüntülemek için, WebForms ReportViewer kontrolünü kullanarak bunları bir Web uygulamasında render edebilirsiniz.
Bir Web uygulamasında ReportViewer kontrolünü kullanın
Microsoft C# veya Microsoft Visual Basic kullanarak yeni bir Microsoft ASP.NET Web Sitesi oluşturun.
-Veya-
Mevcut bir ASP.NET Web Sitesi açın ve yeni bir Web Formu ekleyin.
ScriptManager kontrolünü Toolbox penceresinde AJAX Extensions grubunda bulun ve Web formunun tasarım yüzeyine sürükleyin.
Eğer Araç Kutusu görünmüyorsa, Görünüm menüsünden Araç Kutusu'nu seçerek erişebilirsiniz.
Toolbox'taReportViewer kontrolünü bulun ve ScriptManager kontrolünün altındaki tasarım yüzeyine sürükleyin.
ReportViewer adlı reportViewer1 kontrolü forma eklenir.
Kontrol forma eklendikten sonra, ReportViewer Görevleri akıllı etiketi görünür ve bir rapor seçmeniz için uyarır. Görüntülemek istediğiniz rapor bir rapor sunucusuna dağıtılıyorsa, Rapor Seç açılır menüden Sunucu Raporu> seçeneğini seçin<. <Sunucu Raporu> seçeneği seçildiğinde iki özellik daha belirir: Rapor Sunucusu URL'si ve Rapor Yolu. Rapor Sunucusu URL'si, rapor sunucusunun adresi, Rapor Yolu ise render etmek istediğiniz rapora giden tam yoldur.
Yerel modda bir raporu görüntülemek istiyorsanız, rapor tasarımcısını başlatmak için ya Yeni bir rapor tasarla seçeneğini seçin ya da mevcut projenin parçası olan bir raporu seçin. Bir rapor seçtikten sonra, ReportViewer kontrolünün ReportPath özelliğine rapor RDLC dosyasının adını girdiğinizden emin olun. Bu özellik, Özellikler panelinde LocalReport düğümünün altında görünür.
Rapor render edildiğinde ReportViewer araç çubuğunda bir veya daha fazla öğeyi saklama seçeneğiniz var. Örneğin, baskı butonunu gizleyebilirsiniz. Araç çubuğu öğelerini gizlemek için, Özellikler panelinde aşağıdaki ReportViewer özelliklerini Yanlış olarak ayarlayın.
GösterGeri Düğmesi
GösterExportControls
ShowFindControls
GösterSayfaNavigationControls
GösterYaz Düğmesi
GösteriRefreshButton
ShowZoomControl
Raporları uzaktan işlem modunda görüntüleyin
Aşağıdaki örnek, rapor sunucusuna dağıtılan bir raporun nasıl oluşturulacağını gösterir. Bu örnek, örnek rapor projesine AdventureWorks2025 dahil edilen Satış Siparişi Detayı raporunu kullanır.
Örnekte entegre Windows Kimlik Doğrulama kullanılıyor, bu yüzden önce taklit etkinleştirmeniz gerekiyor. Bunu yapmak için web.config dosyasına aşağıdaki satırı ekleyin:
<!-- Web.config file. -->
<identity impersonate="true"/>
Uyarı
Taklit varsayılan olarak devre dışı bırakılmıştır.
C#
protected void Page_Init(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// Set the processing mode for the ReportViewer to Remote
reportViewer.ProcessingMode = ProcessingMode.Remote;
ServerReport serverReport = reportViewer.ServerReport;
// Set the report server URL and report path
serverReport.ReportServerUrl =
new Uri("https://<Server Name>/reportserver");
serverReport.ReportPath =
"/AdventureWorks Sample Reports/Sales Order Detail";
// Create the sales order number report parameter
ReportParameter salesOrderNumber = new ReportParameter();
salesOrderNumber.Name = "SalesOrderNumber";
salesOrderNumber.Values.Add("SO43661");
// Set the report parameters for the report
reportViewer.ServerReport.SetParameters(
new ReportParameter[] { salesOrderNumber });
}
}
VB.NET
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("https://<Server Name>/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
Yerel işlem modunda raporları görüntüleyin
Aşağıdaki örnek, Windows uygulamasının bir parçası olan ve rapor sunucusuna dağıtılmamış bir raporun nasıl işleneceğini gösterir.
Satış Siparişi Detayı raporunu bir web sitesine eklemek için
Raporun ekleneceği web sitesini açın.
Web sitesi menüsünden Mevcut Öğeyi Ekle seçeneğini seçin.
AdventureWorks Rapor Örnekleri projesinin kurulduğu yere göz atın.
Varsayılan konum C:\Program Files\Microsoft SQL Server\100\Samples\Reporting Services\Report Samples\AdventureWorks Sample Reports'tur.
Satış Siparişi Detayı.rdl dosyasını seçin ve Ekle butonunu seçin.
Satış Siparişi Detayı.rdl dosyası artık projenin bir parçası olmalı.
Çözüm Rehberi'nde Satış Siparişi Detay.rdl dosyasına sağ tıklayın ve Yeniden Adlandırma seçeneğini seçin. Raporun adını Satış Siparişi Detayı.rdlc olarak değiştirin ve ENTER'e basın.
Çözüm Gözleg'i görünmüyorsa, Çözüm Gezgin menüsünden Çözüm Gezgini seçerek açabilirsiniz.
Aşağıdaki kod örneği, satış siparişi verileri için bir veri seti oluşturur ve ardından Satış Siparişi Detayı raporunu yerel modda oluşturur.
C#
protected void Page_Init(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
// Set the processing mode for the ReportViewer to Local
reportViewer.ProcessingMode = ProcessingMode.Local;
LocalReport localReport = reportViewer.LocalReport;
localReport.ReportPath = "Sales Order Detail.rdlc";
DataSet dataset = new DataSet("Sales Order Detail");
string salesOrderNumber = "SO43661";
GetSalesOrderData(salesOrderNumber, ref dataset);
ReportDataSource dsSalesOrder = new ReportDataSource();
dsSalesOrder.Name = "SalesOrder";
dsSalesOrder.Value = dataset.Tables["SalesOrder"];
localReport.DataSources.Add(dsSalesOrder);
GetSalesOrderDetailData(salesOrderNumber, ref dataset);
ReportDataSource dsSalesOrderDetail = new ReportDataSource();
dsSalesOrderDetail.Name = "SalesOrderDetail";
dsSalesOrderDetail.Value = dataset.Tables["SalesOrderDetail"];
localReport.DataSources.Add(dsSalesOrderDetail);
// Create the sales order number report parameter
ReportParameter rpSalesOrderNumber = new ReportParameter();
rpSalesOrderNumber.Name = "SalesOrderNumber";
rpSalesOrderNumber.Values.Add("SO43661");
// Set the report parameters for the report
localReport.SetParameters(
new ReportParameter[] { rpSalesOrderNumber });
}
}
private void GetSalesOrderData(string salesOrderNumber,
ref DataSet dsSalesOrder)
{
string sqlSalesOrder =
"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)";
SqlConnection connection = new
SqlConnection("Data Source=(local); " +
"Initial Catalog=AdventureWorks; " +
"Integrated Security=SSPI");
SqlCommand command =
new SqlCommand(sqlSalesOrder, connection);
command.Parameters.Add(
new SqlParameter("SalesOrderNumber",
salesOrderNumber));
SqlDataAdapter salesOrderAdapter = new
SqlDataAdapter(command);
salesOrderAdapter.Fill(dsSalesOrder, "SalesOrder");
}
private void GetSalesOrderDetailData(string salesOrderNumber,
ref DataSet dsSalesOrder)
{
string sqlSalesOrderDetail =
"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 (SqlConnection connection = new
SqlConnection("Data Source=(local); " +
"Initial Catalog=AdventureWorks; " +
"Integrated Security=SSPI"))
{
SqlCommand command =
new SqlCommand(sqlSalesOrderDetail, connection);
command.Parameters.Add(
new SqlParameter("SalesOrderNumber",
salesOrderNumber));
SqlDataAdapter salesOrderDetailAdapter = new
SqlDataAdapter(command);
salesOrderDetailAdapter.Fill(dsSalesOrder,
"SalesOrderDetail");
}
}
VB.NET
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