CRYSTAL REPORT COM BANCO COM SENHA

 Tópico anterior Próximo tópico Novo tópico

CRYSTAL REPORT COM BANCO COM SENHA

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#371375 - 14/04/2011 22:12:14

SHADOM
SOROCABA
Cadast. em:Junho/2005


Boa noite Amigos do Vbmania...

estou precisando carregar um relatório do crystal report mas tá cada vez mais dificil.. Preciso carregar apenas 1 registro mas o banco tem senha.

Segue o código que eu estou usando

im strSql As String = "SELECT protocolo.codigo, protocolo.codcli, protocolo.status,protocolo.data, Clientes.nome FROM Clientes INNER JOIN protocolo ON Clientes.codcli = protocolo.codcli where codigo='00003'"
    

        Dim ds As New DataSet()
        Dim cmd As New OleDb.OleDbCommand(strSql, CON)
        Dim adaptor As New OleDb.OleDbDataAdapter(cmd)
        Dim crpt As New Protocolo
        Dim strReportPath As String
        adaptor.Fill(ds)
        strReportPath = String.Concat(Replace(My.Application.Info.DirectoryPath(), "\bin\Debug", ""), "\CrystalReport1.rpt")
        crpt.Load(strReportPath)
        'CON.Open()
        crpt.SetDataSource(ds)

        CrystalReportViewer1.ReportSource = crpt

é um banco Access mas não to conseguindo de jeito algum.

Desde jah agradeço a atenção

Fábio Luiz Zanardo de Oliveira
Zanardo Consultoria em TI
Sorocaba/SP
(15) 3231-8520
Email: shadomhp@gmail.com
msn: shadom_hp@hotmail.com


Resposta escolhida #371380 - 14/04/2011 22:54:32



Cadast. em:


Amigo,
Qual sua String de conexão com o banco, basta informar ela a senha.
O crystal só depende disso.



#371381 - 14/04/2011 23:16:21

SHADOM
SOROCABA
Cadast. em:Junho/2005


Obrigado pela resposta..

acontece que a conexão tem a passagem da senha.. segue

Public Function CON() As OleDb.OleDbConnection
        Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\banco.mdb;Persist Security Info=True;Jet OLEDB:Database Password=123456")
        Try
            If conn.State = ConnectionState.Closed Then conn.Open()
        Catch ex As OleDb.OleDbException
            MsgBox(ex.ErrorCode & " - " & ex.Message)
        End Try
        Return conn
    End Function

eu consegui utilizando este comando:

crpt.SetDatabaseLogon("admin", "123456")

mas naum sei se isso eh o certo

Fábio Luiz Zanardo de Oliveira
Zanardo Consultoria em TI
Sorocaba/SP
(15) 3231-8520
Email: shadomhp@gmail.com
msn: shadom_hp@hotmail.com


#371383 - 15/04/2011 00:51:30



Cadast. em:


Dim RSDES As New ADODB.Recordset
        Dim oCn_ADO As New ADODB.Connection
        oCn_ADO.Open(ConectaBancoMYSQL_ADO)
        RSDES.Open("SELECT DISTINCT(XPROD),SUM(QCOM) AS QCOM FROM NF_ITENS WHERE dEmi >= '" & Format(DTPI_R.Value, "yyyy-MM-dd") & "' AND dEmi <= '" & Format(DTPF_R.Value, "yyyy-MM-dd") & "'   GROUP BY XPROD ORDER BY xprod", oCn_ADO, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockOptimistic)

        If RSDES.EOF Then
            MsgBox("NÃO ENCONTRADO", MsgBoxStyle.Critical, "AVISO")
            RSDES.Close()
            RSDES = Nothing
            oCn_ADO.Close()
            oCn_ADO = Nothing
            Exit Sub
        End If

        Dim rpt As New RPT_QTD2
        rpt.SetDataSource(RSDES)
        Dim oPageMargins = rpt.PrintOptions.PageMargins
        oPageMargins.bottomMargin = 250
        oPageMargins.leftMargin = 250
        oPageMargins.rightMargin = 250
        oPageMargins.topMargin = 250
        rpt.PrintOptions.ApplyPageMargins(oPageMargins)
        Dim VTTILE As CrystalDecisions.CrystalReports.Engine.TextObject
        VTTILE = rpt.ReportDefinition.ReportObjects("TXT_TITULO")
        VTTILE.Text = "QUANTIDADES VENDIDAS: " & DTPI_R.Value & "  -  A - " & DTPF_R.Value
        FRM_VIEW.CrystalReportViewer1.Zoom(100)
        FRM_VIEW.CrystalReportViewer1.ReportSource = rpt
        FRM_VIEW.Show()
        RSDES.Close()
        RSDES = Nothing
        oCn_ADO.Close()
        oCn_ADO = Nothing

Sinceramente, eu passei tanta raiva ja com esse crystal report, que só não desisti porque é o melhor gerador de relatorios que ja vi, mas para conectar ele
haja saco .
Então o que eu faço agora para não ter mais dor de cabeça.
Eu utilizo ADO mesmo, e crio um dataset totalmente desvinculado, crio os campos nele iguais ao da tabela do meu banco, e chamo o relatorio assim como esta no no codigo acima, minhas dores de cabeça acabaram, e a manutenção esta mais facil.
Não foi bem isso que você perguntou, mas vai a dica



#371419 - 15/04/2011 09:44:08

SHADOM
SOROCABA
Cadast. em:Junho/2005


Obrigado pela resposta... O detalhe é que essa codificação é pra VB6... e eu preciso pra VB.net... Mas acredito que resolvi o problema...

Obrigado pela atenção de todos..

Fábio Luiz Zanardo de Oliveira
Zanardo Consultoria em TI
Sorocaba/SP
(15) 3231-8520
Email: shadomhp@gmail.com
msn: shadom_hp@hotmail.com


#371488 - 15/04/2011 16:49:15



Cadast. em:


SHADOM,
ISSO É PARA VB.NET TAMBÉM, SÓ É ADO, E NÃO ADO.NET, MAS EU UTILIZO NO .NET.

ABRAÇO



#371508 - 15/04/2011 21:50:44

TECLA
SAO PAULO
Cadast. em:Janeiro/2001


Membro da equipe
O arquivo .RPT está dentro da solução .NET?




#371513 - 15/04/2011 22:47:17

SHADOM
SOROCABA
Cadast. em:Junho/2005


Sim... Ele está integrado no Vb.net.. eu usei o seguintes comandos e "aparentemente" tá dando certo:

Dim strSql As String = "SELECT protocolo.codigo, protocolo.codcli, protocolo.status,protocolo.data, Clientes.nome FROM Clientes INNER JOIN protocolo ON Clientes.codcli = protocolo.codcli where codigo='00003'"
    
    Private Sub frmProtocoloRel_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ds As New DataSet()
        Dim cmd As New OleDb.OleDbCommand(strSql, CON)
        Dim adaptor As New OleDb.OleDbDataAdapter(cmd)
        Dim crpt As New Protocolo
        adaptor.Fill(ds)
        crpt.SetDataSource(ds)
        crpt.SetDatabaseLogon(BancoUser, BancoSenha)
        crpt.RecordSelectionFormula = "{protocolo.codigo} = '" & RelatSQL & "'"
        CrystalReportViewer1.ReportSource = crpt
     end sub

Deu certo pelo menos...

Não seria um tanto estranho adotar ado ao invés de ADO.net no VB.Net?? Não tem nada a ver com minha pergunta, mas acho que se for utilizar Plataforma.Net, o mais correto seria adotar o conceito .Net..  Nada contra NILSON2, mas achei meio sem sentido... Lembrando que é apenas minha opinião.. posso muito bem estar errado.

Fábio Luiz Zanardo de Oliveira
Zanardo Consultoria em TI
Sorocaba/SP
(15) 3231-8520
Email: shadomhp@gmail.com
msn: shadom_hp@hotmail.com


#371548 - 16/04/2011 12:08:31



Cadast. em:


SHADOM,
Você tem razão, eu utilizo em todo o projeto,ADO.NET, apenas na chamada a esses relatórios é, que uso ADO, o que não comprometi em nada o desempenho, e o mais importatnte, pelo menos no meu caso, facilita demais a manutenção, tive serios problemas, um exemplo, insira um novo campo em sua tabela, depois tente atualizar o dataset, muitos não atualizavam, e esse problema vi muito neguinho na net e sem solução.
Bom, essas foram as minhas experiencias, pode ser que eu bobiei em alguma coisa.



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por SHADOM em 02/07/2011 15:23:34