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

Crystal Reports 8.5 - Eliminar arquivos temporários


MRMB

Pergunta

Caros,

Estou utilizando o Crystal Reports com VB6. Ao executar a aplicação e fazer uso de um relatório ( .rpt ou .dsr) gera automaticamente arquivos temporários no "C:\" com tamanho igual a zero. Gostaria que ao executar o relatório esse arquivos não serem criados.

A geração dos arquivos temporários na raiz ocorre quando instancio ou seto o objeto como exemplo abaixo:

Public Relatorio As Object

Set Relatorio = DsrDireitosUsr

Set Relatorio = New DsrDireitosUsr

Observações DsrDireitosUsr e um ICRDesigner do Crystal Reports.

Se alguém podem me ajudar desde já agradeço.

Editado por Crispim
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Pessoal,

Somente para constar a solução desse problema antigo. Fiz um código para apagar esses arquivos temporários.

' Método que apaga os arquivos temporários do Crystal Reports com tamanho iguam a zero. 
Public Sub EliminaArquivosTmp()

    Const strDir = "c:\"
    Const strArqTipo = "*.tmp"
    
    Dim strArquivo As String
    Dim Tamanho As Long
    Dim Aux As String
    
    strArquivo = Dir(strDir + strArqTipo)
   
    Do While strArquivo <> Empty
        
        Tamanho = FileLen(strDir + strArquivo)
    
        If Not Tamanho > 0 Then
        
            ' recupera o nome do arquivo
            Aux = Replace(strArquivo, ".tmp", "")
            
            ' Quando é menor ou igual a 4 caracteres e corresponde a um valor hexadecimal exclui o arquivo.
            If (Len(Aux) <= 4) And NomeArqHexadecimal(Aux) Then Kill strDir + strArquivo

        End If
        
        ' Verifica próximo arquivo
        strArquivo = Dir

    Loop
    
End Sub

Private Function NomeArqHexadecimal(str As String) As Boolean

    Const CaracteresHexadecimal = "0123456789ABCDEF"
    
    Dim i As Integer
    Dim caracter As String

    str = UCase(str)
    
    NomeArqHexadecimal = True
    
    For i = 1 To Len(str)
    
        caracter = Mid(str, i, 1)
        
        If InStr(CaracteresHexadecimal, caracter) = 0 Then
        
            NomeArqHexadecimal = False
            Exit For
            
        End If
        
    Next
    
End Function

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,4k
×
×
  • Criar Novo...