Clipper On Line • Ver Tópico - Word application
Mudar para estilo Clássico
Projeto Harbour - Compilador de código aberto compatível com o Clipper.
Postar uma resposta

Word application

23 Set 2017 15:33

Um exemplo usando pdfclass.

Teria que fazer igual fiz pra NFE, calculando pela largura do PDF e não pela largura do fonte, pra poder usar qualquer fonte. Na falta disso, pra ajustar automático, a courier que tem tamanho fixo.

O texto poderia ficar armazenado, talvez com [ b ]texto[ /b ] pra indicar aonde vai ser bold, e desse jeito não precisaria ficar fixo no programa.

test.prg
(11.41 KiB) Baixado 158 vezes


Pra compilar, usei: hbmk2 test josequintas.hbc

contrato.png

Word application

23 Set 2017 15:46

Ou alterando a rotina do "bold"

Código:
      oPDF:DrawZebrado(1)
      oPDF:DrawText( oPDF:nRow, 0, TrechoJust( @oElement, oPDF:MaxCol() ), , , "Courier-Bold" )


contrato2.png

Word application

23 Set 2017 18:03

Muito interessante, Quintas!

Poderia ser usados varios tipos e tamanhos de fontes no mesmo relatório?

Poderia tbm ser usado fonte negrito em apenas uma parte da linha e não somente apenas na linha inteira?

Janio

Word application

23 Set 2017 18:14

A propósito,

Em qual lib consta a função GetHbVar() ?

Janio

Word application

23 Set 2017 18:29

O que entra nisso de letras diferentes é que precisa calcular em "tamanho PDF" e não em colunas de texto.
Para a classe é só passar o nome do fonte e tamanho, mas sem o cálculo, não vai sair na coluna correta.

O método que escreve:

Código:
   METHOD DrawText( nTop, nLeft, xValue, cPicture, nFontSize, cFontName, nAngle, anRGB )


só que precisaria alterar esta parte pra considerar o tamanho PDF e não tamanho do texto:
Código:
   ::nCol  := nLeft + Len( cTexto )


De um modo geral, seria usar a mesma conversão usada em outras partes.
Colunas usadas = Tamanho utilizado em pixels / tamanho padrão de uma coluna em pixels

O que vai complicar vai ser a divisão de texto, contendo caracteres diferentes.
De repente a palavra atual cabe, mas a próxima não, e se for a última palavra da linha, lá se foi a formatação.

É pra pensar, porque pode eliminar uso extra de Word pra determinadas coisas...

Já pensando nas possibilidades... rs... por exemplo um array com as palavras e tamanhos, pra poder fazer o ajuste justificado.

Word application

23 Set 2017 19:22

A bola ta com vc, mestre kkkkkkkkk

os relatórios poderiam todos serem feitos em pdf, que eliminaria a necessidade de um preview, o usuário poderia escolher qual página deseja imprimir e em qualquer impressora que esteja instalada! MARAVILHA!

Ocorre que agora me ocorreu o seguinte: Cada relatório será um arquivo pdf. Em que momento eu APAGO esse arquivo? Logo após a geração do relatório pode não funcionar, ja que o arquivo pode estar aberto no leitor de pdf.

Outra coisa:

1-)
Eh possível tbm controlar o salto de página? Aí entra tbm tamanho da fonte... rsrsrs

Costume sempre repetir o cabeçalho em todas as páginas, so que para isso eu precisar saber quando devo dar um "NewPage"

2-)
Onde encontro a função GetHbVar() ?

Word application

24 Set 2017 00:28

os relatórios poderiam todos serem feitos em pdf, que eliminaria a necessidade de um preview, o usuário poderia escolher qual página deseja imprimir e em qualquer impressora que esteja instalada! MARAVILHA!


Não entendi. Tudo que já tem?

Ocorre que agora me ocorreu o seguinte: Cada relatório será um arquivo pdf. Em que momento eu APAGO esse arquivo? Logo após a geração do relatório pode não funcionar, ja que o arquivo pode estar aberto no leitor de pdf.


Pra isso que serve a pasta temporária do Windows. Se não der pra apagar, fica lá pra quando der.... rs

Eh possível tbm controlar o salto de página? Aí entra tbm tamanho da fonte... rsrsrs


Tirando o tamanho do fonte, MaxRowTest( nLinhas )

Word application

24 Set 2017 10:07

Bom dia..

2-)
Onde encontro a função GetHbVar() ?


Jânio é uma função do FastReport e não da PDFClass do Quintas...

Word application

24 Set 2017 11:14

Jânio é uma função do FastReport e não da PDFClass do Quintas...


Pensei que era função do aplicativo.

O Fastreport não poderia acessar diretamente, então deve ter sido uma função compatível com Fastreport pra acessar o Harbour.

Dá pra criar uma equivalente então.

cText := "empresa [nome] no endereço [endereço] na cidade [cidade]"

Pesquisa o que está entre [] e substitui, ou direto ou usando macro.
Por exemplo o [nome], substitui por cadastro->nome, ou &( [nome] ).

A função do fastreport deve fazer algo deste tipo:

Código:
FUNCTION GetHbVar( cTexto )
   RETURN &( cTexto )

Word application

24 Set 2017 14:27

Blz,

Onde encontro a PDFClass atualizada?

Janio

Word application

24 Set 2017 15:54

Direto do meu aplicativo, só retirar saídas de tela e chamada de preview, pra ficar independente.

https://github.com/JoseQuintas/JoseQuintas/blob/master/source/ze_pdfclass.prg

Word application

24 Set 2017 15:55

Quintas...

O FastReport acessa diretametne o aplicativo... é "integrado".

Existe função no FastReport quando você está criando o relatório que pode buscar uma variável, uma função e diversas outros itens do seu programa.
Lista das funções que você pode interagir com o seu programa pelo FastReport
Funcoes Harbour no FastReport .png
Funcoes Harbour no FastReport .png (11.08 KiB) Visualizado 2626 vezes

A IDE do FastReport é carregada diretamente no programa no desenvolvimento.
FastReport.png

Acima está sendo gerado um relatório simples, usando a a função GetHbVar('cEmpresa') para buscar o conteúdo da variável cEmpresa
e a instrução [CallHbFunc('Achaforn',[<COM."CODFOR_">])] executa a função Achaforn enviando o parametro código do fornecedor (COM."CODFOR_")
O FastReport é muito bom para gerar relatórios trabalhando diretamente com o Harbour e as tabelas que você enviar.
Só para esclarecer...
Foram postadas várias soluções para o problema do Jânio.

Rubens

Word application

24 Set 2017 20:27

Até que ta ficando marromeno kkkkkkkkk
Anexos
REL.png

Word application

25 Set 2017 10:36

Rubens,

1-) Quanto custa o FastReport para Harbour?

2-) Qual o site?

3-) Há algum demo?

4-) Pra funcionar no cliente precisa ser instalado alguma coisa? Acompanha alguma dll, por exemplo?

5-) As adaptações são trabalhosoas?

6-) Quais suas impressões pessoais sobre a ferramenta?

Janio

Word application

25 Set 2017 15:18

Nesses exemplos tem uma chamada para uma função TrechoJust onde ela está ? pra ficar completo o exemplo.
Postar uma resposta