Ir para conteúdo
Fórum Script Brasil
  • 0

Problemas Em Mudar Do Crystal 4.6 Para Crystal Xi


ssalazar

Pergunta

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

  • 0
Guest Cristiam Afonso Rossi

Para evitar este problema eu utilizo uma base TEMPORÁRIA que crio em ACCESS no drive C: do cliente, sendo assim, só coloco nesta pequena base o que é pertinente ao relatório.

Desta forma não preciso instalar drivers ODBC no micro cliente.

O que demora na verdade são os filtros. Pois se você fazer uma QUERY bem "arrumadinha" (enxuta), você não precisará trazer muitos dados para serem filtrados :-)

Espero ter ajudado

Forte abraço

Aprendiz_cris

Cristiam

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...