PASSANDO UM RS PARA O CRYSTAL 9.2
salvei todos os meus rpts que eram no crystal 8.5, para o 9.2, pois vi em alguns tópicos que nesta versão seria possÃÂÂvel passar um recordset para o relatório, em substituição ao selectionformula que é lento, agilizando o mesmo. Agora como seria um exemplo prático desta execução ?, no 8.5 não uso o crviewer e sim a crystl32.ocx. o que muda ?, quais as vantagens ? e ainda, mesmo os relatórios mais complexos, com grupos rodam normal, ou seja só a forma de filtrar é afetada ?, também tenho duvidas se preciso passar a usar o crviewer ou não ?
Se eu entendi bem vc deseja passar uma Query do Vb para o Crystal. Faça assim:
dim sSql as string
sSql="SELECT * FROM NOMETABELA"
With Rpt
.Reset
.ReportFileName = App.Path & "\NomeDoRPT.rpt"
.Destination = crptToWindow
.Connect = "DSN=SeuDSN;"
.SQLQuery = sSql '<--- Aqui é passado a query(RecordSet)
.WindowState = crptMaximized
.Action = 1
End With
E se vc desejar alterar só as condições da query vc carrega a query do Crystal atraves do (REtrieveSQLQuery) da seguinte forma:
ssql="WHERE NOMEALUNO='" & txtNomeAluno.Text & "'"
.RetrieveSQLQuery
.SQLQuery = .SQLQuery & sSql
dim sSql as string
sSql="SELECT * FROM NOMETABELA"
With Rpt
.Reset
.ReportFileName = App.Path & "\NomeDoRPT.rpt"
.Destination = crptToWindow
.Connect = "DSN=SeuDSN;"
.SQLQuery = sSql '<--- Aqui é passado a query(RecordSet)
.WindowState = crptMaximized
.Action = 1
End With
E se vc desejar alterar só as condições da query vc carrega a query do Crystal atraves do (REtrieveSQLQuery) da seguinte forma:
ssql="WHERE NOMEALUNO='" & txtNomeAluno.Text & "'"
.RetrieveSQLQuery
.SQLQuery = .SQLQuery & sSql
mas neste caso, preciso criar uma query no crystal ? , o que eu quero é passar direto, ou seja criar um rs e passar como filtro para o rpt.
Eu uso o Crystal Reports 9.2 hoje. Antes usava a versão 8.
Troquei do .ocx para o RDC ou seja, tenho um form nos meus projetos que imprimem todos os relatórios.
Passo os dados para esse form.
No caso de seleções, filtros, pode ser passado um .selectionformula para o RPT ou mesmo um comando SQL com a seleção desejada.
Tenho um exemplo aqui no VB Mania de Cadastro de clientes, criado com o CR8 que mostra como funciona.
Veja se ajuda:
http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=5853
Qualquer dúvida sobre o projeto manda uma MI pra mim.
At,
Troquei do .ocx para o RDC ou seja, tenho um form nos meus projetos que imprimem todos os relatórios.
Passo os dados para esse form.
No caso de seleções, filtros, pode ser passado um .selectionformula para o RPT ou mesmo um comando SQL com a seleção desejada.
Tenho um exemplo aqui no VB Mania de Cadastro de clientes, criado com o CR8 que mostra como funciona.
Veja se ajuda:
http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=5853
Qualquer dúvida sobre o projeto manda uma MI pra mim.
At,
Tem outros exemplos de VB6 com Crystal no site da Crystal Reports que mostram bem o uso do RDC.
Ou seja, esquece o .OCX e passe para o RDC que é o que é usado até hoje na versão 11.
http://support.businessobjects.com/communityCS/TechnicalPapers/apps_rdc.pdf.asp
Ou seja, esquece o .OCX e passe para o RDC que é o que é usado até hoje na versão 11.
http://support.businessobjects.com/communityCS/TechnicalPapers/apps_rdc.pdf.asp
ok, mas o rdc é pra uso com o crviewer certo ?, notei que ele não tem o botão de selção de impressora como tem na ocx,ÂÂ'seria alguma configuração ?
No meu projeto sempre mostro o Relatorio na Tela, dai o usuário aperta o icone da impressora se quiser imprimir.
Se houver mais de uma impressora no micro ou na rede é possÃÂÂvel selecionar a impressora antes da impressão usando o ÃÂÂcone da impressora.
Se houver mais de uma impressora no micro ou na rede é possÃÂÂvel selecionar a impressora antes da impressão usando o ÃÂÂcone da impressora.
Edson, vc não precisa criar uma query no Crystal porque o mesmo cria automaticamente a query para qualquer relatório que utilize uma base de dados...Verifique qual é a query do seu relatório entrando no Crystal no menu DataBase/Show SQL Query...
Depois de uma nova lida na minha primeira resposta...
Qualquer dúvida poste.
Depois de uma nova lida na minha primeira resposta...
Qualquer dúvida poste.
ABRI UM RPT NO CRYSTAL E O MENU SHOW SQL QUERY ESTA DESABILITADO.
Ok, mas neste rpt (que vc abriu) ele tem algum banco de dados conectado e seus respectivos campos?
sim, todos os meus rpts, conecto sempre pelo menu database, e informo o banco e as tabelas, etc. depois uso a opção same as report, pois como o banco é access, deixo os rpts juntos pra facilicar, e não ter que ficar configurado caminhos de pastas no clientes.
Tópico encerrado , respostas não são mais permitidas