SUBREPORT DO CRYSTAL 9 NAO CARREGA DADOS

ALVAROVB2009 06/07/2011 20:13:33
#378610
Galera tenho um relatório q possui um subrelatório rodando perfeito fora do vb, porém quando coloco ele para dentro do vb6, o subrelatório não carrega os dados e da a mensagem de erro - this group section cannot be printed because its condition field is nonexistent or invalid - por possuir um group no subrelatório.
Porém quando retiro o group do subrelatório, o sistema puxa apenas os dados do relatório principal e não carrega os dados do subrelatório.
Como comentei, esse relatório funciona perfeito fora do vb6, segue abaixo como estou tentando carregar os dados:

ESSE é PARA CARREGAR OS DADOS PRINCIPAIS
StrSql = [Ô]select c.codconhecimento, if(c.tipomotorista=[ô]A[ô],m.Nome,if(c.TipoMotorista = [ô]F[ô], f.Nome,p.Nome)) nomemotorista , c.enderecocoleta, c.enderecoentrega, c.dataemissao emissaoctrc, c.obs1, c.obs2, vei.Marca, vei.Modelo, vei.Placa,[Ô]
StrSql = StrSql & [Ô]s.ClienteSolicitante, s.CodSolicitacao, s.TipoVeiculo, s.QteVeiculo , s.LocalRetirada , s.LocalEntrega, s.DataEmissao,[Ô]
StrSql = StrSql & [Ô]s.datacoleta , s.dataentrega [Ô]
StrSql = StrSql & [Ô]from solicitacao s [Ô]
StrSql = StrSql & [Ô]left join conhecimento c on c.CodSolicitacao = s.CodSolicitacao [Ô]
StrSql = StrSql & [Ô]left join motoristas m on m.CodMotorista = c.CodMotorista [Ô]
StrSql = StrSql & [Ô]left join funcionarios f on f.CodFunc = c.CodMotorista [Ô]
StrSql = StrSql & [Ô]left join parceiros p on p.CodParceiro = c.CodMotorista [Ô]
StrSql = StrSql & [Ô]left join veiculos vei on vei.CodVeiculo = c.CodVeiculo [Ô]
StrSql = StrSql & [Ô]where s.codsolicitacao = [Ô] & Text1.Text

Dim Relatorio As New CrpProcessoSolicitacao
Relatorio.DiscardSavedData
Set Rs = New ADODB.Recordset
Rs.Open StrSql, Db, adOpenKeyset, adLockPessimistic
Relatorio.Database.SetDataSource Rs


ESSE é PARA CARREGAR OS DADOS DO SUBRELATÓRIO
StrSql = [Ô]select v.nvalefrete, v.saldoatualizado, v.percurso1, v.percurso2, v.percurso3, v.percurso4, v.SaldoInicial , v.dataemissao emissaovalefrete,[Ô]
StrSql = StrSql & [Ô]a.Descricao , lvf.Credito, lvf.Data [Ô]
StrSql = StrSql & [Ô]from solicitacao s [Ô]
StrSql = StrSql & [Ô]left join conhecimento c on c.CodSolicitacao = s.CodSolicitacao left join valefretexconhecimento vc on vc.NConhecimento = c.NConhecimento [Ô]
StrSql = StrSql & [Ô]left join valefrete v on vc.CodValeFrete = v.CodValeFrete [Ô]
StrSql = StrSql & [Ô]left join lancamentovalefrete lvf on lvf.CodValeFrete = v.CodValeFrete [Ô]
StrSql = StrSql & [Ô]left join acertos a on a.CodAcerto = lvf.CodDescrLancamento [Ô]
StrSql = StrSql & [Ô]where lvf.tipo = [ô]C[ô] and lvf.Credito > 0 and s.codsolicitacao = [Ô] & Text1.Text
StrSql = StrSql & [Ô] group by s.CodSolicitacao, v.NValeFrete[Ô]

Set Rs2 = New ADODB.Recordset
Rs2.Open StrSql, Db, adOpenKeyset, adLockPessimistic
Relatorio.Subreport1.OpenSubreport.DiscardSavedData
Relatorio.Subreport1.OpenSubreport.Database.SetDataSource Rs2


AQUI CARREGO O RELATÓRIO
CRViewer91.ReportSource = Relatorio
Me.WindowState = 2
CRViewer91.Visible = True
CRViewer91.ViewReport
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth


O q será q está de errado, pq ele não esta carregando os dados do subrelatório?
Desde já agradeço a todos
ALVAROVB2009 07/07/2011 08:34:07
#378624
Alguém para me ajudar com esse problema ....
ALVAROVB2009 07/07/2011 13:23:28
#378653
Alguém, estou anexando um projeto com esse problema, se alguém puder me ajudar agradeço.
O banco esta no mysql
ALVAROVB2009 07/07/2011 15:40:52
#378682
Alguém ...
ALVAROVB2009 07/07/2011 16:06:37
#378688
Segue a mensagem que da quando coloco o goup no crystal dentro do vb
ALVAROVB2009 08/07/2011 08:39:09
#378739
Alguém ...
ROBIU 08/07/2011 08:48:10
#378740
Resposta escolhida
Estou analisando seu projeto. Não verifiquei o relacionamento entre o report e o subreport. Tenta criar um novo report por dentro do vb6. Outra coisa é o where dentro do command. Deveria tirar já que pode ficar no código que abre o relatorio.
ALVAROVB2009 08/07/2011 08:54:59
#378742
Bom dia Roberto e agradeço a força q vc esta me dando
O Where eu coloquei para poder não exibir os valores que estão zerados, para poder exibir o relatório e enviar para a analise do cliente.
Ontem a noite eu vi que eu não tinha colocado o relacionamento com o subrelatório, porém eu coloquei tanto dentro do vb quanto fora, fora do vb continuou trazendo o mesmo resultado e dentro do vb o mesmo problema
ALVAROVB2009 08/07/2011 16:23:21
#378802
Alguém mais pode me ajudar
ROBIU 09/07/2011 08:04:32
#378840
O Rs está funcionando normalmente, então só vamos tratar do Rs2:

Inclui o campo s.CodSolicitacao no Select e no command do Crystal Reports
Inclui o grupo no subrelatorio pelo campo CodSolicitacao
mudei a forma de carregar o Rs2

Dim Rs2 As New ADODB.Recordset
Dim Cmd As New ADODB.Command

StrSql = [Ô]select s.CodSolicitacao,v.nvalefrete, v.saldoatualizado, v.percurso1, v.percurso2, v.percurso3, v.percurso4, v.SaldoInicial , v.dataemissao emissaovalefrete,[Ô]
StrSql = StrSql & [Ô]a.Descricao , lvf.Credito, lvf.Data [Ô]
StrSql = StrSql & [Ô]from solicitacao s [Ô]
StrSql = StrSql & [Ô]left join conhecimento c on c.CodSolicitacao = s.CodSolicitacao left join valefretexconhecimento vc on vc.NConhecimento = c.NConhecimento [Ô]
StrSql = StrSql & [Ô]left join valefrete v on vc.CodValeFrete = v.CodValeFrete [Ô]
StrSql = StrSql & [Ô]left join lancamentovalefrete lvf on lvf.CodValeFrete = v.CodValeFrete [Ô]
StrSql = StrSql & [Ô]left join acertos a on a.CodAcerto = lvf.CodDescrLancamento [Ô]
StrSql = StrSql & [Ô]where lvf.tipo = [ô]C[ô] and lvf.Credito > 0 and s.codsolicitacao = 1[Ô]
StrSql = StrSql & [Ô] group by s.CodSolicitacao, v.NValeFrete[Ô]


Cmd.ActiveConnection = Db
Cmd.CommandType = adCmdText
Cmd.CommandText = StrSql
Set Rs2 = Cmd.Execute

Relatorio.Subreport1.OpenSubreport.DiscardSavedData
Relatorio.Subreport1.OpenSubreport.Database.SetDataSource Rs2


Aqui funcionou. Segue o projeto anexo. Vai precisar ajustar a conexão. Coloque a senha do seu root

ALVAROVB2009 09/07/2011 10:31:51
#378846
Roberto vlw pela ajuda, vi o q estava de diferente ajustei e funcionou.
Tópico encerrado , respostas não são mais permitidas