VB6 X CRYSTAL 9

ALVAROVB2009 04/07/2011 16:20:08
#378449
Galera não sei o que pode estar acontecendo, pois os dados do meu crystal não estão sendo atualizados como devem ser, simplesmente o crystal esta ignorando o comando que estou mandando e esta exibindo todos os dados.
Montei o relatório no crystal através do command do crystal 9, rodou perfeito com o group e td. Joguei esse relatório para dentro o vb6, roda perfeito, porém qdo coloco alguma condição, ele simplesmente ignora e exibe todos os dados.
Segue abaixo o comando do botão imprimir

Private Sub CmdImprimir_Click()
Dim strSQL As String
Dim Condicao As String

If Option1.value = True Then
Condicao = [Ô]Where cp.pago = 0 [Ô]
Else
Condicao = [Ô]Where cp.pago = 1 [Ô]
End If

If txtDtInicio.Text <> [Ô]__/__/____[Ô] And txtDtFim.Text <> [Ô]__/__/____[Ô] Then Condicao = Condicao & [Ô] and dtvencimento between [ô][Ô] & Format(txtDtInicio.Text, [Ô]YYYY-MM-DD[Ô]) & [Ô][ô] and [ô][Ô] & Format(txtDtFim.Text, [Ô]YYYY-MM-DD[Ô]) & [Ô][ô] [Ô]
If Trim(CboPlanoContas.Text) <> [Ô][Ô] Then Condicao = Condicao & [Ô] and descricao = [ô][Ô] & CboPlanoContas.Text & [Ô][ô] [Ô]
If Trim(CboLocalPagamento.Text) <> [Ô][Ô] Then Condicao = Condicao & [Ô] and localpagamento = [ô][Ô] & CboLocalPagamento.Text & [Ô][ô] [Ô]

strSQL = [Ô]select cp.codlancamento,descricao, referente, valortotal, dtvencimento, dtpagamento, localpagamento, formapagamento [Ô]
strSQL = strSQL & [Ô]from contaspagar c [Ô]
strSQL = strSQL & [Ô]left join contaspagarxparcelas cp on c.codlancamento = cp.codcontaspagar [Ô]
strSQL = strSQL & Condicao
strSQL = strSQL & [Ô]group by cp.codlancamento, descricao, dtvencimento [Ô]

Dim Relatorio As New CrpContasPagar
If txtDtInicio.Text <> [Ô]__/__/____[Ô] And txtDtFim.Text <> [Ô]__/__/____[Ô] Then Relatorio.TxtTitulo.SetText ([Ô]Período de [Ô] & txtDtInicio.Text & [Ô] à [Ô] & txtDtFim.Text)
If Trim(CboPlanoContas.Text) <> [Ô][Ô] Then Relatorio.TxtTitulo.SetText ([Ô]Relatório por Plano de Contas[Ô])
If Trim(CboLocalPagamento.Text) <> [Ô][Ô] Then Relatorio.TxtTitulo.SetText ([Ô]Relatório por Local de Pagamento[Ô])

Relatorio.DiscardSavedData
Relatorio.SQLQueryString = strSQL
CRViewer91.ReportSource = Relatorio
Me.WindowState = 2
CRViewer91.Refresh
CRViewer91.Visible = True
CRViewer91.ViewReport
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth
End Sub

Agradeço desde já pela ajuda
ROBIU 04/07/2011 17:35:05
#378461
Resposta escolhida
Falta criar uma instância do seu relatório
Dim Report As New NomeDoRelatorio


Atualizar o relatório com o Rs

Report.Database.SetDataSource Rs


Segue exemplo anexo:
ALVAROVB2009 04/07/2011 17:56:49
#378464
Robiu obrigado pelo retorno e consegui resolver o problema com a sua ajuda

Robiu acho q vc não viu más eu ja tinha criado a instancia sim
Dim Relatorio As New CrpContasPagar

O problema estava no momento de executar a query, eu estava jogando a query pronta para o Crystal
Relatorio.SQLQueryString = strSQL

E com isso ele não estava executando, criei um recordset e atualzei o crystal conforme a sua idéia, e funcionou tranquilo, agora sinceramente não sei pq a query não tinha rodado no crystal, pq estava td certo, acho q deve ser algum problema no crystal 9.

Meu código ficou assim:
Dim Rs As ADODB.Recordset
Set Rs = New ADODB.Recordset
Rs.Open strSQL, Db, adOpenKeyset, adLockPessimistic
Relatorio.DiscardSavedData
Relatorio.Database.SetDataSource Rs

Vlw pela ajuda
Tópico encerrado , respostas não são mais permitidas