Eu tenho um report que foi feito no Crystal 4.6 que acessa algumas tabelas do meu banco de dados Access. Quando eu fazia o view no VB o report carregava normalmente. Agora que converti o report para a versão XI do crystal report, o relatório parece fazer uma varredura de toda a base de dados antes de exibir o report o que leva minutos dependendo da quantidade de registros que ele busca.
eu criei um modulo para abrir os reports num formulario (frmPreview) que contem o CRViewer
Function AbrirReport(strRel As String, strCaminho As String, strCriterio As String)
Dim crxApp As CRAXDRT.Application
Dim crxReport As CRAXDRT.report
Dim crxDatabaseTable As CRAXDRT.DatabaseTable
Set crxApp = New CRAXDRT.Application
'Abre o relatório indicado
Set crxReport = crxApp.OpenReport(strRel)
With crxReport
'Seta todas as tabelas do relatório para o caminho do banco de dados
For Each crxDatabaseTable In .Database.Tables
crxDatabaseTable.Location = strCaminho
Next crxDatabaseTable
.RecordSelectionFormula = strCriterio
'Descarta os dados
.DiscardSavedData
'Verifica se a definição do banco foi alterada e atualiza o report
.Database.Verify
End With
'Carrega o form com o objeto Crystal Rerport Viewer
With frmPreview
.crvPrinc.ReportSource = crxReport
.crvPrinc.ViewReport
'Exibe o report
.Show 1
End With
'Fecha os Objetos
Set crxReport = Nothing
Set crxApp = Nothing
End Function
no formulario que eu quero carregar o meu report tem um botao que no evento clique eu pus o seguinte codigo:
Private Sub Cmd_Chapas_Click()
'Relatório Base = Fura_Cha.rpt
Cmd_Chapas.Enabled = False
Rel = App.Path & "\Fura_Cha.rpt"
Formula = "{Torre.Id_Torre} = " & Trim$(str$(IdTorre))
AbrirReport Rel, BaseDados, Formula
Cmd_Chapas.Enabled = True
End Sub
alguém saberia explicar porque desse jeito o relatório leva tanto tempo para ser exibido. não fiz nenhuma alteração no report (continua com as mesmas tabelas da base de dados e os mesmos links) mas agora ele leva muito mais tempo para carregar no VB6.
Pergunta
ssalazar
Eu tenho um report que foi feito no Crystal 4.6 que acessa algumas tabelas do meu banco de dados Access. Quando eu fazia o view no VB o report carregava normalmente. Agora que converti o report para a versão XI do crystal report, o relatório parece fazer uma varredura de toda a base de dados antes de exibir o report o que leva minutos dependendo da quantidade de registros que ele busca.
eu criei um modulo para abrir os reports num formulario (frmPreview) que contem o CRViewer
Global Rel As String
Global BaseDados As String
Global Formula As String
'----------------------------------------------------------------------------------
'FUNÇÃO: Abrir relatórios criados no Crystal Reports 11.5
'CRIAÇÃO: 18/12/2006 ATUALIZAÇÃO: 18/12/2006
'AUTOR: Sérgio Ricardo Godinho Salazar
'----------------------------------------------------------------------------------
Function AbrirReport(strRel As String, strCaminho As String, strCriterio As String)
Dim crxApp As CRAXDRT.Application
Dim crxReport As CRAXDRT.report
Dim crxDatabaseTable As CRAXDRT.DatabaseTable
Set crxApp = New CRAXDRT.Application
'Abre o relatório indicado
Set crxReport = crxApp.OpenReport(strRel)
With crxReport
'Seta todas as tabelas do relatório para o caminho do banco de dados
For Each crxDatabaseTable In .Database.Tables
crxDatabaseTable.Location = strCaminho
Next crxDatabaseTable
.RecordSelectionFormula = strCriterio
'Descarta os dados
.DiscardSavedData
'Verifica se a definição do banco foi alterada e atualiza o report
.Database.Verify
End With
'Carrega o form com o objeto Crystal Rerport Viewer
With frmPreview
.crvPrinc.ReportSource = crxReport
.crvPrinc.ViewReport
'Exibe o report
.Show 1
End With
'Fecha os Objetos
Set crxReport = Nothing
Set crxApp = Nothing
End Function
no formulario que eu quero carregar o meu report tem um botao que no evento clique eu pus o seguinte codigo:
Private Sub Cmd_Chapas_Click()
'Relatório Base = Fura_Cha.rpt
Cmd_Chapas.Enabled = False
Rel = App.Path & "\Fura_Cha.rpt"
Formula = "{Torre.Id_Torre} = " & Trim$(str$(IdTorre))
AbrirReport Rel, BaseDados, Formula
Cmd_Chapas.Enabled = True
End Sub
alguém saberia explicar porque desse jeito o relatório leva tanto tempo para ser exibido. não fiz nenhuma alteração no report (continua com as mesmas tabelas da base de dados e os mesmos links) mas agora ele leva muito mais tempo para carregar no VB6.
Agradeço qualquer contribuição
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.