DIFICULDADE CRYSTAL REPORT
Pessoal boa noite.
Venho hoje com um novo desafio, criei um relatório no Crystal Report.
A Informação que quero q que quando digitar na textbox uma data e clicar no botão Pesquisar ele informe para mim todos os Clientes que tenho naquele dia, estes clientes estão cadastrados em um banco de dados do access, o relatório carrega bem o problema é que ele não busca os dados do banco de dados fica em branco, sei que esta faltando uma comunicação entre eles mas não consigo entender onde. vou passar o código vamos ver oque conseguimos.
segue...
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If Not TxtVencimento.Text = String.Empty Then
[ô]
Dim strReportName As String = [Ô]RelatorioVenc[Ô]
[ô]
[ô]
Dim strReportPath As String = [Ô]|LOCAL DO RELATÓRIO|[Ô] & [Ô]\[Ô] & strReportName & [Ô].rpt[Ô]
[ô]
[ô]
If Not IO.File.Exists(strReportPath) Then
Throw (New Exception([Ô]Relatorio não localizado:[Ô] & vbCrLf & strReportPath))
End If
[ô]
[ô]
Dim CR As New ReportDocument
CR.Load(strReportPath)
[ô]
[ô]
Dim crParameterDiscreteValue As ParameterDiscreteValue
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldLocation As ParameterFieldDefinition
Dim crParameterValues As ParameterValues
[ô]
[ô]
crParameterFieldDefinitions = CR.DataDefinition.ParameterFields
[ô]
[ô]
[ô]
crParameterFieldLocation = crParameterFieldDefinitions.Item([Ô]Vencimento[Ô])
crParameterValues = crParameterFieldLocation.CurrentValues
crParameterDiscreteValue = New CrystalDecisions.Shared.ParameterDiscreteValue
[ô]
[ô]
crParameterDiscreteValue.Value = TxtVencimento.Text
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldLocation.ApplyCurrentValues(crParameterValues)
[ô]
CrystalReportViewer1.ReportSource = CR
Else
MsgBox([Ô]Informe o a data desejada.[Ô], MsgBoxStyle.Information, [Ô]Uma data valida[Ô])
End If
End Sub
Venho hoje com um novo desafio, criei um relatório no Crystal Report.
A Informação que quero q que quando digitar na textbox uma data e clicar no botão Pesquisar ele informe para mim todos os Clientes que tenho naquele dia, estes clientes estão cadastrados em um banco de dados do access, o relatório carrega bem o problema é que ele não busca os dados do banco de dados fica em branco, sei que esta faltando uma comunicação entre eles mas não consigo entender onde. vou passar o código vamos ver oque conseguimos.
segue...
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If Not TxtVencimento.Text = String.Empty Then
[ô]
Dim strReportName As String = [Ô]RelatorioVenc[Ô]
[ô]
[ô]
Dim strReportPath As String = [Ô]|LOCAL DO RELATÓRIO|[Ô] & [Ô]\[Ô] & strReportName & [Ô].rpt[Ô]
[ô]
[ô]
If Not IO.File.Exists(strReportPath) Then
Throw (New Exception([Ô]Relatorio não localizado:[Ô] & vbCrLf & strReportPath))
End If
[ô]
[ô]
Dim CR As New ReportDocument
CR.Load(strReportPath)
[ô]
[ô]
Dim crParameterDiscreteValue As ParameterDiscreteValue
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldLocation As ParameterFieldDefinition
Dim crParameterValues As ParameterValues
[ô]
[ô]
crParameterFieldDefinitions = CR.DataDefinition.ParameterFields
[ô]
[ô]
[ô]
crParameterFieldLocation = crParameterFieldDefinitions.Item([Ô]Vencimento[Ô])
crParameterValues = crParameterFieldLocation.CurrentValues
crParameterDiscreteValue = New CrystalDecisions.Shared.ParameterDiscreteValue
[ô]
[ô]
crParameterDiscreteValue.Value = TxtVencimento.Text
crParameterValues.Add(crParameterDiscreteValue)
crParameterFieldLocation.ApplyCurrentValues(crParameterValues)
[ô]
CrystalReportViewer1.ReportSource = CR
Else
MsgBox([Ô]Informe o a data desejada.[Ô], MsgBoxStyle.Information, [Ô]Uma data valida[Ô])
End If
End Sub
Ainda não trabalhei com o Crystal Report, nem sei o que me aguarda, mas achei isso estranho:
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldLocation As ParameterFieldDefinition
Os 2 tipos são esses mesmo? O segundo não seria algo tipo Location? Não sei nem o que são essas variáveis, mas se não for isso desculpe.
Dim crParameterFieldDefinitions As ParameterFieldDefinitions
Dim crParameterFieldLocation As ParameterFieldDefinition
Os 2 tipos são esses mesmo? O segundo não seria algo tipo Location? Não sei nem o que são essas variáveis, mas se não for isso desculpe.
Acho melhor você fazer desse jeito
SeuRelatorio cr = new SeuRelatorio ();
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables ;
Caminho = System.Windows.Forms.Application.StartupPath + [Ô]\\SeuRelatorio .rpt[Ô];
cr.Load(Caminho);
crConnectionInfo.ServerName = [Ô]NomeDoServidor[Ô];
crConnectionInfo.DatabaseName = [Ô]SeuBancoDeDados[Ô];
crConnectionInfo.UserID = [Ô]Usuario[Ô];
crConnectionInfo.Password = [Ô]Senha[Ô];
CrTables = cr.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
cr.SetDataSource(Relatorio.GeraConsuta(Campos, Condicao, Tipo).Tables[0]);
this.Report.ReportSource = cr;
SeuRelatorio cr = new SeuRelatorio ();
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
Tables CrTables ;
Caminho = System.Windows.Forms.Application.StartupPath + [Ô]\\SeuRelatorio .rpt[Ô];
cr.Load(Caminho);
crConnectionInfo.ServerName = [Ô]NomeDoServidor[Ô];
crConnectionInfo.DatabaseName = [Ô]SeuBancoDeDados[Ô];
crConnectionInfo.UserID = [Ô]Usuario[Ô];
crConnectionInfo.Password = [Ô]Senha[Ô];
CrTables = cr.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
{
crtableLogoninfo = CrTable.LogOnInfo;
crtableLogoninfo.ConnectionInfo = crConnectionInfo;
CrTable.ApplyLogOnInfo(crtableLogoninfo);
}
cr.SetDataSource(Relatorio.GeraConsuta(Campos, Condicao, Tipo).Tables[0]);
this.Report.ReportSource = cr;
ops..foi mau...é em VB...
Dim cr As New SeuRelatorio()
Dim crtableLogoninfos As New TableLogOnInfos()
Dim crtableLogoninfo As New TableLogOnInfo()
Dim crConnectionInfo As New ConnectionInfo()
Dim CrTables As Tables
Caminho = System.Windows.Forms.Application.StartupPath & [Ô]\SeuRelatorio .rpt[Ô]
cr.Load(Caminho)
crConnectionInfo.ServerName = [Ô]NomeDoServidor[Ô]
crConnectionInfo.DatabaseName = [Ô]SeuBancoDeDados[Ô]
crConnectionInfo.UserID = [Ô]Usuario[Ô]
crConnectionInfo.Password = [Ô]Senha[Ô]
CrTables = cr.Database.Tables
For Each CrTable As CrystalDecisions.CrystalReports.Engine.Table In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
cr.SetDataSource(Relatorio.GeraConsuta(Campos, Condicao, Tipo).Tables(0))
Me.Report.ReportSource = cr
Dim cr As New SeuRelatorio()
Dim crtableLogoninfos As New TableLogOnInfos()
Dim crtableLogoninfo As New TableLogOnInfo()
Dim crConnectionInfo As New ConnectionInfo()
Dim CrTables As Tables
Caminho = System.Windows.Forms.Application.StartupPath & [Ô]\SeuRelatorio .rpt[Ô]
cr.Load(Caminho)
crConnectionInfo.ServerName = [Ô]NomeDoServidor[Ô]
crConnectionInfo.DatabaseName = [Ô]SeuBancoDeDados[Ô]
crConnectionInfo.UserID = [Ô]Usuario[Ô]
crConnectionInfo.Password = [Ô]Senha[Ô]
CrTables = cr.Database.Tables
For Each CrTable As CrystalDecisions.CrystalReports.Engine.Table In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo = crConnectionInfo
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
cr.SetDataSource(Relatorio.GeraConsuta(Campos, Condicao, Tipo).Tables(0))
Me.Report.ReportSource = cr
Luiz o parâmetro ta correto é isso mesmo, o relatório até carrega mas o resultado dos campos não vem, fica em branco, e se digito um parâmetro diferente da data na TextBox, como um nome ele da erro e diz que é diferente do campo solicitado, já li e reli esta porcaria de código e não acho o problema.
F001E o seu código não funfou...
Dor de cabeça...
F001E o seu código não funfou...
Dor de cabeça...
Boa tarde galera.
O problema foi resolvido, tinha que chamar o novo parâmetro para dentro do relatórioVenc.rpt, mas ai surgiu um novo pra variar, quando adiciono a data que ele deve me informar ele pede para adicionar o loguin e senha, mas meus BD não tem senha
O problema foi resolvido, tinha que chamar o novo parâmetro para dentro do relatórioVenc.rpt, mas ai surgiu um novo pra variar, quando adiciono a data que ele deve me informar ele pede para adicionar o loguin e senha, mas meus BD não tem senha
Problema resolvido, na verdade o que estava acontecendo é que ao invés de eu criar uma nova conexão, estava usando a mesma, que eu uso no BD então ela estava vindo vazia, mas ai refiz e criei uma nova conexão, mas ligando ao banco de dados, resultado tudo funfando.
Acho que esta informação é valida já que muitas vezes travamos, ai a dica é pare e refaça tudo do zero tantas vezes quanto necessárias e vc vai achar o erro...
Bora lá...
Acho que esta informação é valida já que muitas vezes travamos, ai a dica é pare e refaça tudo do zero tantas vezes quanto necessárias e vc vai achar o erro...
Bora lá...
Tópico encerrado , respostas não são mais permitidas