CRYSTAL X SQL X ACCESS

USUARIO.EXCLUIDOS 19/12/2006 09:44:17
#190807
Gostaria de saber se posso trocar a conexão de banco de dados para o crystal em tempo real. Ex

if sql then
conexão sql
else
conexão Access
endif

No mesmo relatorio
USUARIO.EXCLUIDOS 19/12/2006 11:23:51
#190840
Resposta escolhida
O que sei que dá para fazer é passar para o relatório os recordsets que estão em memória, dessa maneira o Crystal não faz o acesso ao banco utilizando os dados que vc passa via código. Assim vc tem o que precisa...
Mas para isso vc tem que criar o relatório com fonte de dados do tipo ADO.
Por exemplo:
Quando for criar o relatório na escolha da fonte de dados selecione
no Data Explorer : More Data Sources -> Active Data -> Active Data(ADO) . No select Data Source escolha ADO end OLE DB e faça a conexão. Monte o relatório e no vb faça a chamado do relatório da seguinte maneira:


Fazer as seguintes referências no projeto
Crystal Report X Active Designer Run Time Library
Crystal Report X Active Designer Design Time Library
Crystal Report View Control



Dim CrystalAPP As New CRAXDRT.Application
Dim rptRelatorio As New CRAXDRT.Report

Set rptRelatorio = CrystalAPP.OpenReport("C:\Temp|Relatorio.rpt")

' Passe aqui os recordeset's que vc deve ter aberto para o relatório
' Lembre de passar na ordem em que as tabelas foram adcionadas ao relatório
' Especificando essa ordem no último parà¢metro da linha abaixo
rptRelatorio.Database.SetDataSource SeuRecordset, , 1 ' 1Âê Tabela
rptRelatorio.Database.SetDataSource SeuRecordset, , 2 ' 2Âê Tabela

' Caso o relatório tenha subreport
rptRelatorio.subreport2.OpenSubreport.Database.SetDataSource SeuRecordset, , 1

' Esse é um View do Crystal para exibir o relatório
' Mas vc pode mandar imprimir diretamente
CRVTeste.ReportSource = rptRelatorio
CRVTeste.Zoom 100
CRVTeste.ViewReport

' Impressão direta
rptRelatorio.PrintOut False, 1

Espero que ajude.




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