CRYSTAL REPORTS ZERANDO CAMPOS
Estou com um problema aqui tentando a geração de relatórios com Crystal 8.
Em determinada linha(aleatoriamente) o valor do produto esta ficando zerado. E quando abro o rpt eponho no preview, lá estão todos os produtos certinho como gravado no banco. E quando chamo pelo vb6 nao aparece, fica zerado [Ô]0,00[Ô]
Nao sao todas as linhas, até agr vi apenas uma em várias. Mas toda venda acontece isso.
Estou chamando o relatorio assim
Set dscont = New ADODB.Recordset
dscont.Open [Ô]select count(codorc) as total from detorcamentos where codorc = [Ô] & varNumeroOrc, con, adOpenKeyset, adLockOptimistic
If dscont!total < 10 Then
Report1.ReportFileName = App.Path & [Ô]\Orcamento.rpt[Ô]
Else
Report1.ReportFileName = App.Path & [Ô]\OrcamentoMeiaFolha.rpt[Ô]
End If
[ô]sleep (1000)
Report1.SelectionFormula = [Ô]{orcamento.codorc} = [Ô] & Val(varNumeroOrc)
Report1.WindowShowProgressCtls = True
Report1.WindowShowExportBtn = True
Report1.WindowShowPrintBtn = True
Report1.WindowShowPrintSetupBtn = True
Report1.WindowShowRefreshBtn = True
Report1.WindowShowRefreshBtn = True
Report1.WindowShowZoomCtl = True
Report1.WindowShowSearchBtn = True
Report1.WindowState = crptMaximized
Report1.Action = 1
Alguem sabe me explicar o porque disso? Estou usando Mysql
Em determinada linha(aleatoriamente) o valor do produto esta ficando zerado. E quando abro o rpt eponho no preview, lá estão todos os produtos certinho como gravado no banco. E quando chamo pelo vb6 nao aparece, fica zerado [Ô]0,00[Ô]
Nao sao todas as linhas, até agr vi apenas uma em várias. Mas toda venda acontece isso.
Estou chamando o relatorio assim
Set dscont = New ADODB.Recordset
dscont.Open [Ô]select count(codorc) as total from detorcamentos where codorc = [Ô] & varNumeroOrc, con, adOpenKeyset, adLockOptimistic
If dscont!total < 10 Then
Report1.ReportFileName = App.Path & [Ô]\Orcamento.rpt[Ô]
Else
Report1.ReportFileName = App.Path & [Ô]\OrcamentoMeiaFolha.rpt[Ô]
End If
[ô]sleep (1000)
Report1.SelectionFormula = [Ô]{orcamento.codorc} = [Ô] & Val(varNumeroOrc)
Report1.WindowShowProgressCtls = True
Report1.WindowShowExportBtn = True
Report1.WindowShowPrintBtn = True
Report1.WindowShowPrintSetupBtn = True
Report1.WindowShowRefreshBtn = True
Report1.WindowShowRefreshBtn = True
Report1.WindowShowZoomCtl = True
Report1.WindowShowSearchBtn = True
Report1.WindowState = crptMaximized
Report1.Action = 1
Alguem sabe me explicar o porque disso? Estou usando Mysql
Alguem?
JOWALDNER realmente é meio complicado, más faz assim, não mande o sql para o crystal executar, pois ele pode apresentar mesmo esses problemas. O q vc pode fazer é mandar os dados já executados, pega um exemplo na minha dúvida - http://www.vbmania.com.br/pages/index.php?varModulo=Forum&varMethod=abrir&varID=382454&varWorld= - e veja que eu passo o recordset com os dados prontos para o crystal e nisso ele apenas tem o trabalho de exibir.
Eu uso o crystal 9, e o jeito q estou mandando é pelo command do crystal, más tem a opção do recordset, acho q vc pode ver se consegue alguma coisa.
Qqer coisa posta ai, blz ?!
Eu uso o crystal 9, e o jeito q estou mandando é pelo command do crystal, más tem a opção do recordset, acho q vc pode ver se consegue alguma coisa.
Qqer coisa posta ai, blz ?!
ALVAROVB2009, obrigado pelo retorno. Mas seguinte, nao entendi como faz isso. Como eu monto o arquivo rpt assim?
Não sei se vc usa ado
O código ficaria assim
Dim Rs as adodb.recordset
Set Rs = New ADODB.Recordset
Rs.Open [Ô]seu comando sql[Ô], conexao com o seu banco , adOpenKeyset, adLockReadOnly
Ai procure no report1, uma opção de discardsavedata e outra opção Database.SetDataSource ou algo assim e achando passa o rs para ela, senão procure uma opção SQLQueryString e coloque o comando do sql, acho que isso pode te ajudar
O código ficaria assim
Dim Rs as adodb.recordset
Set Rs = New ADODB.Recordset
Rs.Open [Ô]seu comando sql[Ô], conexao com o seu banco , adOpenKeyset, adLockReadOnly
Ai procure no report1, uma opção de discardsavedata e outra opção Database.SetDataSource ou algo assim e achando passa o rs para ela, senão procure uma opção SQLQueryString e coloque o comando do sql, acho que isso pode te ajudar
Pode me dar um exemplo de como faço isso?
Ajudo sim, vc usa DAO ou ADO na sua codificação?
Tópico encerrado , respostas não são mais permitidas