Pular para o conteúdo principal

Crystal Reports XI - VB6 - Permission Denied - Ou: Carregando imagens dinamicamente no Crystal Reports

(Trying) English version:
Category: Tools
__________________________
If you are trying to dinamically set an image into the control Picture (ICROleObject) and you are getting the error "Permission Denied" when you are using SetOleLocation method, I suggest you try this following code instead of SetOleLocation method:

Private Sub Section1_Format(ByVal pFormattingInfo As Object)
    Dim logofile As String
    logofile = app.Path & "\logo.jpg"

    If Dir$(file) <> "" Then     'File exists...
        Set Picture2.FormattedPicture = LoadPicture(logofile)

        'FormattedPicture method used instead of SetOleLocation...
    Else
        Picture2.Suppress = True 'If does not exist, suppress that control.
    End If
End Sub


That error happens because your code is probably located on wrong event.
It must be placed exactly on "SectionXXX_Format" event where picture object is.

Português:
Categoria: Ferramentas
__________________________


Se você está recebendo a mensagem de erro: "Permission Denied" ao tentar carregar uma imagem dinamicamente usando o método SetOleLocation, certamente está chamando no evento indevido do seu código, no VB6.


A chamada a esse método deve ser feita a partir do evento _Format da seção onde o controle Picture se encontra. Adicionalmente, tente usar o método FormattedPicture ao invés de SetOleLocation, conforme segue:

Private Sub Section1_Format(ByVal pFormattingInfo As Object)
    Dim arquivo As String
    arquivo = app.Path & "\logo.jpg"

    If Dir$(file) <> "" Then     'O arquivo exite...
        Set Picture2.FormattedPicture = LoadPicture(arquivo)

        'FormattedPicture ao invés de SetOleLocation...
    Else
        Picture2.Suppress = True 'Se não existe o arquivo, suprime o controle.
    End If
End Sub




Question: Why VB6?
Answer: just legacy code

See ya!

Até mais!

Diego Sayron
PE, Brasil

Comentários

Postagens mais visitadas deste blog

Passando parâmetros para o Crystal Reports 8.5/11.5. Estrelando: O VB6.

Num cenário onde já se possui o relatório criado no Crystal e é necessário passar parâmetros via código pelo VB sem apresentar a tela de valores do CR e sem muita conversa, segue a solução minerada: Adicionar componentes: Crystal Report Viewer Control Crystal Activex Report Viewer Library 11.5 No Project Explorer, -Add -> Crystal Report Component (Relatório Existente) -Indique seu relatório previamente criado no Crystal -Informe "sim" para as opções de criar/inserir form com visualizador do relatório e alterar opção de start do projeto.(opcional) Não precisa criar fórmula ou parâmetro, basta passar o valor para o campo da tabela, conforme abaixo: Opção 1 de código: Simplesmente definir: Private Sub Form_Load()  CrystalReport1.EnableParameterPrompting = False  'Passando o parâmetro p/ "tabela.campo" - Inclua as chaves{}!  'Se preferir, concatene a uma textbox.text, por exemplo.  CrystalReport1.RecordSelectionFormula = "{compras.nCo

Ransomware WannaCry - Backups e mudança de hábitos

O Ransomwhare WannaCry é um vírus que criptografa e inutiliza os arquivos de uma empresa ou usuário comum e deixa as instruções de como proceder para restabelecer o acesso a estes arquivos, sempre cobrando valores que geralmente são relacionados com a importância e tamanho dos arquivos do usuário. Ele não sequestra absolutamente nenhum arquivo, os dados continuam no computador do usuário, mas criptografados... "embaralhados". O vírus  faz isso não somente com os arquivos que tem acesso no computador, mas em todos os outros computadores e dispositivos que tiverem COMPARTILHAMENTO aberto na rede (se o computador não tem compartilhamento ou se o compartilhamento é restrito (a usuário que não faz login no domínio), é impossível o vírus se instalar por manifestação própria ) .  É importante ressaltar que até mesmo as cópias de segurança armazenadas em HDs externos, pendrives E NUVEM (neste caso, por sincronização) serão afetados. Não é saudável, mas é importante im