VB.NET COM CRYSTAL REPORTS
Pessoal, estou migrando um sistema de Visual Basic 6 para a plataforma Visual Studio (VB.Net).
Porem o sistema em VB6 tem 50 relatórios feitos no Crystal Reports.
Dentro do sistema em VB6 eles são chamados assim
O cr_relat é um objeto do Crystal Reportes. Semelhante ao Print Dialog
Onde eu passo para esse objeto os detalhes como:
Titulo
Paramêtros de Procedure
Caminho do RPT
Nome do RPT
e etc.
E no final mando executar o complemento, e ele abre o relatório no visualizador do próprio Crystal.
Porem no VB.Net eu não estou conseguindo fazer isto. Sei que tem outras formas de usar o Crystal, porem os relatórios já estão feitos não seria uma opção viável refazer dentro do Visual Studio.
Se alguém tiver como me ajudar a achar algum meio de chamar os relatórios desta forma eu agradeço.
Obs. Sei que para funcionar desta forma todas as maquinas que utilizam o projeto precisam ter o Crystal Instalado.
Porem o sistema em VB6 tem 50 relatórios feitos no Crystal Reports.
Dentro do sistema em VB6 eles são chamados assim
cr_relat.Connect = Connect
cr_relat.ReportFileName = CaminhoRelatorio & [Ô]RELSERV.RPT[Ô]
cr_relat.Destination = crptToWindow
cr_relat.WindowTitle = [Ô]Recibo de Serviços Prestados[Ô]
cr_relat.StoredProcParam(0) = NumServ
cr_relat.StoredProcParam(1) = CodRepresentada
cr_relat.Action = 1
O cr_relat é um objeto do Crystal Reportes. Semelhante ao Print Dialog
Onde eu passo para esse objeto os detalhes como:
e etc.
E no final mando executar o complemento, e ele abre o relatório no visualizador do próprio Crystal.
Porem no VB.Net eu não estou conseguindo fazer isto. Sei que tem outras formas de usar o Crystal, porem os relatórios já estão feitos não seria uma opção viável refazer dentro do Visual Studio.
Se alguém tiver como me ajudar a achar algum meio de chamar os relatórios desta forma eu agradeço.
Obs. Sei que para funcionar desta forma todas as maquinas que utilizam o projeto precisam ter o Crystal Instalado.
Bom creio que muitos aqui podem vim ter a mesma duvida... Eu continuei pesquisando e achei como fazer essa ligação bem semelhante ao que eu queria..
Ai vai os passos:
1º - Ter o Visual Studio 2010 ou Superior instalado na maquina
2º - Ter a ferramenta Crystal Reports 10 ou Superior
3º - Baixar o Complemento de Ligação do Crystal Reports com o Visual Studio da SAP (Extensão gratuita fornecida pela própria SAP) Clique Aqui Para Baixar
4º - Trocar o FrameWork do projeto de .NET Framework 4 Client Profile para .NET Framework 4
Pronto, sua aplicação vai ficar com os componentes do Crystal
CrystalReportViewer1
CrystalReportDocument1
Ai para fazer o código para impressão dos documentos é:
Espero que isso ajude, pois, fiquei semanas para achar essa solução.
Ai vai os passos:
1º - Ter o Visual Studio 2010 ou Superior instalado na maquina
2º - Ter a ferramenta Crystal Reports 10 ou Superior
3º - Baixar o Complemento de Ligação do Crystal Reports com o Visual Studio da SAP (Extensão gratuita fornecida pela própria SAP) Clique Aqui Para Baixar
4º - Trocar o FrameWork do projeto de .NET Framework 4 Client Profile para .NET Framework 4
Pronto, sua aplicação vai ficar com os componentes do Crystal
CrystalReportViewer1
CrystalReportDocument1
Ai para fazer o código para impressão dos documentos é:
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports CrystalDecisions.ReportSource
Imports CrystalDecisions.CrystalReports
[ô]Cria um Novo ReportDocument
Dim rptCount_IMPR As New ReportDocument
[ô]sp_rel_hist
rptCount_IMPR.Load(CaminhoRelatorio & [Ô]RELHST.RPT[Ô]) [ô]Carrega Relatório
rptCount_IMPR.SetDatabaseLogon(sbUser, GlSenha, Server, sbDataBase) [ô]Conecta No Banco de Dados
[ô]Passa os parametros da procedure
If Trim(cbo_cli.Text) <> [Ô][Ô] And CType(cbo_cli.SelectedItem, MeuItemData).Valor <> -1 Then
rptCount_IMPR.SetParameterValue([Ô]@u_codcli[Ô], CType(cbo_cli.SelectedItem, MeuItemData).Valor) [ô]Codigo do Cliente
Else
rptCount_IMPR.SetParameterValue([Ô]@u_codcli[Ô], -1) [ô]Codigo do Cliente
End If
rptCount_IMPR.SetParameterValue([Ô]@DatIni[Ô], FU_TIRA_MASCARA(txt_dat_ini.Text, 3, 0)) [ô]Data Inicial
rptCount_IMPR.SetParameterValue([Ô]@DatFim[Ô], FU_TIRA_MASCARA(txt_dat_fim.Text, 3, 0)) [ô]Data Final
rptCount_IMPR.SetParameterValue([Ô]@u_cod_rep[Ô], CodRepresentada)
[ô]Passa os Parametros das formulas
rptCount_IMPR.DataDefinition.FormulaFields([Ô]NomeCliente[Ô]).Text = [Ô][ô][Ô] & Trim(NomeCliente) & [Ô][ô][Ô]
Espero que isso ajude, pois, fiquei semanas para achar essa solução.
Faça seu login para responder