Ajuda - Busca - Membros - Calendário
Versão Completa: Ajuda com Crystal Reports
Fórum Script Brasil > Programação & Desenvolvimento > .NET
rodrigo defende
Pessoal tem como eu fazer toda a parte de conexao com base de dados, atribuir os dados, etc no crystal mas usando tudo via codigo, sem usar nenhum componente já pronto de conexao.

se existe como eu faria isso?

é que eu to usando como base Mysql5 então controlar tudo via codigo acredito que seja mais seguro, por causa de caminho de base de dados entre outras cosias.

grato a todos.
Alessandro Gonzalez
Essa função eu uso com banco SQL Server, adapte ela para o MySql.


CODE
'Função que loga...
    Public Shared Sub LogonToReport(ByVal ds As Object)

        Dim logonInfo As New TableLogOnInfo()
        Dim table As CrystalDecisions.CrystalReports.Engine.Table

        For Each table In ds.ReportDocument.Database.Tables
            logonInfo = table.LogOnInfo
            logonInfo.ConnectionInfo.ServerName = GetVarConnection("Data Source")
            logonInfo.ConnectionInfo.DatabaseName = GetVarConnection("Initial Catalog")
            logonInfo.ConnectionInfo.UserID = GetVarConnection("User ID")
            logonInfo.ConnectionInfo.Password = GetVarConnection("password")
            table.ApplyLogOnInfo(logonInfo)
            table.Location = GetVarConnection("Initial Catalog") + ".dbo." + table.Location.Substring(table.Location.LastIndexOf(".") + 1)
        Next table
    End Sub

CODE
'Função que lê o web.config
    Shared Function GetVarConnection(ByVal var As String)
        Dim strconn As String = ConfigurationSettings.AppSettings("ConnectionString")
        Dim m() As String = strconn.Split(";")
        Try
            For i As Integer = 0 To m.Length - 1
                If m(i).ToLower Like "*" & var.ToLower & "*" Then
                    Dim m1() As String = m(i).Split("=")
                    Return m1(1)
                End If
            Next
        Catch ex As Exception
            Throw
        Finally
            m = Nothing
        End Try
    End Function


Exemplo de chamada, no caso eu passo os valores dos parametros por Session.

CODE
Funcoes.LogonToReport(ds)
        For i As Integer = 0 To UBound(Session("parametros_relatorio")) - 1
            ds.ReportDocument.ParameterFields(i).CurrentValues.AddValue(Session("parametros_relatorio")(i))
        Next



Espero ter ajudado.
rodrigo defende
Muito legal essa funcao sua - vai ajudar bastante.

mas um detalhe eu notei - para incluir os campos no crystal eu TENHO mesmo que criar um datasete e dai sim arrastar eles para o relatorio. ou existe uma outra maneira?

Porque pelo que eu pesquisei eu não achei uma forma de incluir campos no relatorio e dai de alguma maneira atribuir um datasource neles.


Valeu.
fulanoides
QUOTE(rodrigo defende @ 22/08/2008 - 14:42) *
Pessoal tem como eu fazer toda a parte de conexao com base de dados, atribuir os dados, etc no crystal mas usando tudo via codigo, sem usar nenhum componente já pronto de conexao.

se existe como eu faria isso?

é que eu to usando como base Mysql5 então controlar tudo via codigo acredito que seja mais seguro, por causa de caminho de base de dados entre outras cosias.

grato a todos.

Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.