none
Ajuda Crystal Reports com MySQL RRS feed

  • Pergunta

  • Pessoal consegui achar na net um exemplo para usar o crystal reports.. Eu tentei usar e consegui colocar os dados de uma tabela no relatorio, ficou certo!..  O problema eh q estou tentando usa-lo tbm com chave estrangeiras para mostrar um cadastro de cliente, mas n estou conseguindo..
    Vou postar o codigo:
    Obs: rptClientes eh o item do crystal reports do relatorio do cliente...

    Esse codigo esta dentro de um modulo:
    Imports MySql.Data.MySqlClient
    
    Public Class ClsGerarRelatorio
        Dim con As New MySqlConnection("server=localhost; user id=root; password=admin; database=workshopmanager")
    
        Public Function GeraConsuta(Optional ByVal Campos As String = Nothing, Optional ByVal Condicao As String = Nothing) As DataSet
            Try
                Dim ds As New DataSet()
                If IsNothing(Campos) Then
                    Campos = "*"
                End If
                Dim instrucaoSQL As String = "Select " & Campos & " from cliente " & Condicao
                Dim objCommand = New MySqlCommand(instrucaoSQL, con)
                Dim objDataSet As New DataSet
                Dim objSqlDataAdapter As MySqlDataAdapter = New MySqlDataAdapter(objCommand)
                objSqlDataAdapter.Fill(objDataSet)
                objCommand = Nothing
                Return objDataSet
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            Return Nothing
        End Function
    
        Public Function GeraRelatorio(Optional ByVal Campos As String = Nothing, Optional ByVal Condicao As String = Nothing)
            Dim cr As New rptClientes
            cr.SetDataSource(GeraConsuta(Campos, Condicao).Tables(0))
            frm_RelatorioClientes.CrystalReportViewer1.ReportSource = cr
            frm_RelatorioClientes.Show()
        End Function
    
    End Class

    Agora aqui eh no botao do form de cadastro q serve para mostrar o relatorio do cadastro q esta no form..
    Dim ClsGeraRelatorio As New ClsGerarRelatorio
    
        Private Sub btn_Relatorio_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Relatorio.Click
            ClsGeraRelatorio.GeraRelatorio("cod_Cliente, nome_Cliente, contato_Cliente, tipo_Cliente, horadata_Cliente", "WHERE cod_Cliente = " & lbl_cod.Text & "")
        End Sub

    No item do crystal reports eu adicionei as outras tabelas e jah vieram relacionadas pelo cod... E coloquei nos boxs, o problema eh chamar isso, q n estou conseguindo..

    Aqui o banco de dados:
    Create table Cliente (
    cod_Cliente integer unsigned primary key not null auto_increment,
    nome_Cliente varchar(160) not null,
    contato_Cliente varchar(20),
    observacoes_Cliente varchar(100),
    horadata_Cliente varchar(30),
    tipo_Cliente varchar(10),
    cod_PF integer unsigned not null,
    Foreign key (cod_PF) references PF (cod_PF) ON DELETE CASCADE,
    cod_Telefone integer unsigned not null,
    Foreign Key (cod_Telefone) references Telefone (cod_Telefone) ON DELETE CASCADE,
    cod_Endereco integer unsigned not null,
    Foreign Key (cod_Endereco) references Endereco (cod_Endereco) ON DELETE CASCADE) ENGINE=INNODB;
    
    Create table PF (
    cod_PF integer unsigned primary key not null auto_increment,
    rg_PF varchar(30),
    cpf_PF varchar(30),
    dataNascimento_PF varchar(15),
    sexo_PF varchar(10),
    email_PF varchar(150)) ENGINE=INNODB;
    
    Create table Telefone (
    cod_Telefone integer unsigned primary key not null auto_increment,
    residencial_Telefone varchar(15),
    celular_Telefone varchar(15),
    fax_Telefone varchar(15)) ENGINE=INNODB;
    
    Create table Endereco (
    cod_Endereco integer unsigned primary key not null auto_increment,
    nome_Endereco varchar(160),
    numero_Endereco varchar(8),
    complemento_Endereco varchar(20),
    cep_Endereco varchar(10),
    bairro_Endereco varchar(30),
    cidade_Endereco varchar(30),
    uf_Endereco char(2),
    pais_Endereco varchar(20)) ENGINE=INNODB;
    segunda-feira, 5 de novembro de 2012 00:35

Respostas

Todas as Respostas