IMPRESSAO DE GRAFICOS

FBUR 07/07/2011 11:21:45
#378645
Bom dia.

Presto serviços para uma empresa que trabalha com um software de processos industriais. Este software gera informações em um banco de dados DBF. A empresa me procurou para desenvolver um programa para gerar relatório + gráfico, pois o sistema não tem esta função.

Até aí tudo bem. Escrevi um programinha que gera o relatório + gráfico. A questão é a impressão destes relatórios.

Tenho duas alternativas para gerar os relatórios:

=== Alternativa 1 - Usando o RMChart ===
Esse componente é simplesmente fantástico. Demorei algumas horas para entendê-lo, mas ele é muito bom mesmo. O problema é: Como imprimir o relatório + gráfico?

Embora trabalhar com o RMChart seja bastante flexível, essa flexibilidade se limita à gerar os gráficos na tela. Quando falamos em impressão, o negócio fica mais complicado.

Quando digo [Ô]relatório + gráfico[Ô] quero dizer que existe uma especie de cabeçalho com informações sobre o gráfico, e logo abaixo vem o gráfico.

Eu costumo trabalhar com o Cristal Reports 11. Para gerar as informações textuais do banco é tranquilo. Mas esbarro em um problema:
- como enviar o gráfico para o Crystal Reports??

=== Alternativa 2 - Usar o Excel ===
Com a dificuldade de imprimir os relatórios gerados pelo RMChart, parti para o Excel.
Desta forma consigo imprimir os relatórios gráficos. O [Ô]problema[Ô] (que nem chega a ser um problema) é a formatação das informações textuais. Na verdade é mais trabalhoso do que um problema.

Ficar formatado bordas, tamanho da fonte, largura das colunas, etc, isso me faz perder muito tempo pois existem vários tipos de relatórios.

O RMChart é uma ferramenta fantástica, mas a impressão se torna um problema.
Com o Excel consigo imprimir facilmente, mas a formatação é trabalhosa.

Pergunto:
- Sei que não preciso do Crystal para gerar relatórios no VB6. Eu mesmo já vi projetos que não usavam componentes nem programas externos para gerar relatórios (somente com texto). Era tudo no VB6. Alguém tem um exemplo desses? Já ajudaria bastante. Não quero mais usar o Crystal.

- Existe alguma alternativa de enviar uma tela do gráfico para um relatório e imprimí-lo? Assim eu poderia usar o próprio RMChart. Prefiro ele do que o Excel. Já fiz um ScreenLogger uma vez, mas gostaria de saber se dá para fazer de outra forma.
Mas não quero nem pensar em enviar uma imagem para o banco de dados, pois o banco já existe (DBF) e eu só o utilizo para leitura.

[]'s
MARCELO.TREZE 07/07/2011 12:31:32
#378650
Resposta escolhida
quer uma sugestão vc pode imprimir o proprio formulário

coloque em um projeto um MDI FORM e um form, como nome frmfolha. com as seguintes propiedades:

mdichild = true
Apparence = 0
BorderStyle = 1
Caption = [Ô][Ô] [ô](em branco)
clipcontrol = False



configure este form para ficar do tamanho de uma folha A4

primeiro faça o seginte converta o tamanho do seu form, que é medido em twips

cada centimetro possui 567 twips.

então uma folha A4 de 21.0X 29.7 cm terá as seguintes mediadas em twips

21.0 * 567 = 11907
29.7 * 567 = 16840

então seu form terá

Form1.Height = 16840
Form1.Width = 11907

agora basta vc ajustar tudo que precisa dentro dele

no mdi coloque um toolbar com botão de impressão etc

no botão de impressão vc imprime o form inteiro com sua formatação

frmfolha.PrinFform

alguns ajuste ficará por sua conta, mas o caminho é este

FBUR 07/07/2011 14:48:30
#378676
Caro Marcelo-Treze,

Testei sua sugestão. A princípio, resolve o problema em parte. Ao imprimir o gráfico gerado pelo RMChart, na tela sai direitinho, mas na imrpessão só sai um retângulo cinza (onde deveria estar o gráfico).

se não fosse isso, os problemas estariam resolvidos...
FBUR 07/07/2011 17:15:07
#378703
Observação: O RMChart oferece uma propriedade chamada [Ô]Draw2Clipboard[Ô]

Ex:

RMChartX1.Draw2Clipboard


Aí é só colar em um controle Picture ou Image:


Picture1 = Clipboard.GetData()
Image1 = Clipboard.GetData()


Aí, usando o conforme o Marcelo-Treze postou, parece ser a melhor solução.

Por enquanto parece ser a melhor solução.
FUTURA 07/07/2011 18:01:19
#378709
tbem vou testar isso....
Tópico encerrado , respostas não são mais permitidas