Você está na página 1de 25

14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

Voc pode exibir o texto em ingls em uma janela popup movendo o ponteiro do
Habilitar
mouse sobre o texto.

Usando o controle ReportViewer do


WinForms
2016-9-6 13 mnimo a ler Colaboradores

Neste artigo

Para adicionar o controle ReportViewer a um aplicativo do WindowsTo add the ReportViewer Control to a
Windows application
Exibindo relatrios em modo de processamento remotoViewing Reports in Remote Processing Mode
Exibindo relatrios em modo de processamento localViewing Reports in Local Processing Mode
Consulte tambmSee Also

Para exibir relatrios que foram implantados em um servidor de relatrio ou relatrios


existentes no sistema de arquivos local, voc pode usar o controle ReportViewer do
WinForms para renderiz-los em um aplicativo do Windows.

Para adicionar o controle ReportViewer a um aplicativo


do Windows
1. Criar um novo aplicativo do Windows usando o Microsoft Visual C# ou Microsoft
Visual Basic.

-Ou -

Abra um projeto existente do aplicativo do Windows e adicione um novo formulrio.

2. Localize o controle ReportViewer no caixa de ferramentas. Se o caixa de


ferramentas no visvel, voc pode acess-lo do exibio menu selecionando
caixa de ferramentas.

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 1/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

3. Arraste o controle ReportViewer para a superfcie de design do Windows Form.

Um controle ReportViewer nomeado reportViewer1 ser adicionado ao formulrio.

Depois que o controle adicionado ao formulrio, o tarefas do ReportViewer


marca inteligente exibida e solicita que voc selecione um relatrio.

Se o relatrio que voc deseja exibir tiver sido implantado para um servidor de
relatrio, selecione o <relatrio do servidor > opo o escolher relatrio lista
suspensa. Aps o <relatrio do servidor > opo selecionada, exibidas duas
propriedades adicionais: Url do servidor de relatrio e caminho do relatrio. O
Url do servidor de relatrio o endereo para o servidor de relatrio e o caminho
do relatrio o caminho completo para o renderizao do relatrio.

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 2/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

Se o relatrio que voc deseja exibir um relatrio em modo local, selecione o criar
um novo relatrio para iniciar o designer de relatrios ou selecione um relatrio
que j faa parte de um projeto existente.

Exibindo relatrios em modo de processamento


remoto
O exemplo a seguir demonstra como renderizar um relatrio que foi implantado para um
servidor de relatrio usando o controle ReportViewer do WinForms. Este exemplo usa o
relatrio Detalhes do Pedido de Vendas includo no projeto de relatrios de exemplo
AdventureWorks2012.

C#

C# Copiar

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 3/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

public partial class Form1 : Form


{
private void Form1_Load(object sender, EventArgs e)
{
// Set the processing mode for the ReportViewer to Remote
reportViewer1.ProcessingMode = ProcessingMode.Remote;

ServerReport serverReport = reportViewer1.ServerReport;

// Get a reference to the default credentials


System.Net.ICredentials credentials =
System.Net.CredentialCache.DefaultCredentials;

// Get a reference to the report server credentials


ReportServerCredentials rsCredentials =
serverReport.ReportServerCredentials;

// Set the credentials for the server report


rsCredentials.NetworkCredentials = credentials;

// Set the report server URL and report path


serverReport.ReportServerUrl =
new Uri("http:// <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


reportViewer1.ServerReport.SetParameters(
new ReportParameter[] { salesOrderNumber });

// Refresh the report


reportViewer1.RefreshReport();
}
}

VB.NET

VB Copiar

Imports Microsoft.Reporting.WinForms

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, _


ByVal e As System.EventArgs) _
Handles MyBase.Load

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 4/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

'Set the processing mode for the ReportViewer to Remote


reportViewer1.ProcessingMode = ProcessingMode.Remote

Dim serverReport As ServerReport


serverReport = reportViewer1.ServerReport

'Get a reference to the default credentials


Dim credentials As System.Net.ICredentials
credentials = System.Net.CredentialCache.DefaultCredentials

'Get a reference to the report server credentials


Dim rsCredentials As ReportServerCredentials
rsCredentials = serverReport.ReportServerCredentials

'Set the credentials for the server report


rsCredentials.NetworkCredentials = credentials

'Set the report server URL and report path


serverReport.ReportServerUrl = _
New Uri("http://<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)

'Refresh the report


reportViewer1.RefreshReport()
End Sub

End Class

Exibindo relatrios em modo de processamento local


O exemplo a seguir demonstra como renderizar um relatrio que faz parte do aplicativo do
Windows e que no foi implantado em um servidor de relatrio.

Para adicionar o relatrio Detalhes do Pedido de Vendas a um aplicativo do


Windows

1. Abra o projeto do Windows ao qual o relatrio ser adicionado.

2. Do projeto menu, selecione Add Existing Item.

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 5/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

3. Navegue at o local em que instalou o projeto Exemplos de Relatrios do


AdventureWorks2012.

O download de exemplos de relatrios, v para exemplos de relatrios do


AdventureWorks 2012

4. Selecione o arquivo Sales Order Detail.rdl e clique no adicionar boto.

O arquivo Sales Order Detail.rdl agora deve fazer parte do projeto.

5. Clique no arquivo Sales Order Detail.rdl no Gerenciador de solues e selecione


Renomear. Renomeie o relatrio para rdlc de ordem de vendas e pressione
ENTER.

Se o Gerenciador de solues no estiver visvel, voc pode abri-lo no exibio


menu selecionando Gerenciador de solues.

Observao

Renomear a extenso de arquivo de rdl para rdlc lhe permitir editar o relatrio usando o
designer de relatrios para Microsoft Visual Studio 2005.

6. Depois que o relatrio for renomeado, selecione o arquivo e localize a janela


Propriedades. Alterar o copiar para diretrio de sada propriedade Copy if Newer.

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 6/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

Se o propriedades janela no estiver visvel, voc pode abri-lo no exibio menu


selecionando janela propriedades.

O exemplo de cdigo a seguir criar um conjunto de dados para os dados do


pedido de vendas e, depois, renderizar o relatrio de detalhes do pedido de
vendas em modo local.

C#

C# Copiar

public partial class Form1 : Form


{
private void Form1_Load(object sender, EventArgs e)
{
// Set the processing mode for the ReportViewer to Local
reportViewer1.ProcessingMode = ProcessingMode.Local;

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 7/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

LocalReport localReport = reportViewer1.LocalReport;

localReport.ReportPath = "Sales Order Detail.rdlc";

DataSet dataset = new DataSet("Sales Order Detail");

string salesOrderNumber = "SO43661";

// Get the sales order data


GetSalesOrderData(salesOrderNumber, ref dataset);

// Create a report data source for the sales order data


ReportDataSource dsSalesOrder = new ReportDataSource();
dsSalesOrder.Name = "SalesOrder";
dsSalesOrder.Value = dataset.Tables["SalesOrder"];

localReport.DataSources.Add(dsSalesOrder);

// Get the sales order detail data


GetSalesOrderDetailData(salesOrderNumber, ref dataset);

// Create a report data source for the sales order detail


// data
ReportDataSource dsSalesOrderDetail =
new ReportDataSource();
dsSalesOrderDetail.Name = "SalesOrderDetail";
dsSalesOrderDetail.Value =
dataset.Tables["SalesOrderDetail"];

localReport.DataSources.Add(dsSalesOrderDetail);

// Create a report parameter for the sales order number


ReportParameter rpSalesOrderNumber = new ReportParameter();
rpSalesOrderNumber.Name = "SalesOrderNumber";
rpSalesOrderNumber.Values.Add("SO43661");

// Set the report parameters for the report


localReport.SetParameters(
new ReportParameter[] { rpSalesOrderNumber });

// Refresh the report


reportViewer1.RefreshReport();
}

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 " +
https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 8/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

" 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,


https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 9/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

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

VB Copiar

Imports System.Data.SqlClient
Imports Microsoft.Reporting.WinForms

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, _


ByVal e As System.EventArgs) _
Handles MyBase.Load

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 10/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

'Set the processing mode for the ReportViewer to Local


reportViewer1.ProcessingMode = ProcessingMode.Local

Dim localReport As LocalReport


localReport = reportViewer1.LocalReport

localReport.ReportEmbeddedResource = _
"ReportViewerIntro.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)

'Refresh the report


reportViewer1.RefreshReport()

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, " & _
https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 11/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

" 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")

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 12/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

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

Consulte tambm
Integrando o Reporting Services usando os controles ReportViewer

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 13/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 14/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 15/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 16/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 17/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 18/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 19/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 20/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 21/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 22/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 23/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 24/25
14/08/2017 Usando o controle ReportViewer do WinForms | Microsoft Docs

https://docs.microsoft.com/pt-br/sql/reporting-services/application-integration/using-the-winforms-reportviewer-control 25/25

Você também pode gostar