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

(Resolvido) Problemas com Report Builder


Fernando Barreto

Pergunta

Olá pessoal.

O negócio é o seguinte.

Tenho um relatório (RBuilder) que precisava ser armazenado no banco de dados (firebird).

Eu sei que existem vários meios de se fazer isso, mas eu precisava de um jeito que não necessitasse gravar o arquivo em disco para então salvar no banco.

Consegui fazer isso, utilizando TMemoryStream e o referido relatório foi armazenado (compactado) no banco.

Compactado para ocupar menos espaço e tal... Para isso usei um componente da VCLZip.

Bem relatório armazenado, veio o grande problema em que me encontro.

Como recuperar este relatório do banco?

Bem, até o momento consegui fazer os mesmos procedimentos de gravação para efetuar a recuperação.

Explicando melhor:

Para recuperar o relatório, primeiro eu tenho que salvar o valor do campo da tabela em disco (report.zip), depois, armazenar este arquivo em um stream para descompactá-lo. Depois de descompacado, tenho que gravar o arquivo (report.raf) em disco também, para que o ArchiveReader possa lê-lo.

Desta forma, o relatório gravado é gerado.

Mas eu quero (e preciso) fazer com que o ArchiveReader leia o relatório diretamente de um TMemoryStream. Será que existe algum meio, ou terei que criar um componente herdado do ArchiveReader com a propriedade de ler de um stream?

Agradecido.

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

2 respostass a esta questão

Posts Recomendados

  • 0
fazer com que o ArchiveReader leia o relatório diretamente de um TMemoryStream

o ArchiveReader não consegue ler diretamente de um TMemoryStream

creio que não seja possivel, voce terá que salvar num arquivo temporario ( *.raf ) para depois lê-lo com o ArchiveReader.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui resolver o problema!

Como dito acima, o ArchiveReader não possui propriedades nem métodos para ler direto de um TMemoryStream, então, criei um componente derivado dele, nomeando-o StreamArchiveReader que possui a propriedade que eu precisava.

De qualquer forma, obrigado!

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,2k
    • Posts
      652,1k
×
×
  • Criar Novo...