VB.NET COM CRYSTAL REPORTS

HORICH 30/10/2013 08:46:39
#430520
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

    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:
  • 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.
  • HORICH 31/10/2013 11:53:38
    #430585
    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 é:


      
    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