Jump to content
Fórum Script Brasil
  • 0

Crystal Reports 8.5 - Eliminar arquivos temporários


MRMB

Question

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.

Edited by Crispim
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      652k
×
×
  • Create New...