Clipper On Line • Ver Tópico - Word application

Word application

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Word application

Mensagempor leandrolinauer » 20 Set 2017 16:59

Boa tarde a todos.
Verifiquei no fórum sobre editar dados de um arquivo word trocando por variáveis, e apliquei em um documento que foi necessário agora.
Até feito já está, mas não consigo é o seguinte:
1- Chamar o print dialog do word para o usuário imprimir.
2- Abrir o documento trocar todos os dados mas bloquear alteração por parte do usuário.
3- Sair do word sem salvar, para não modificar as variáveis trocadas.
Segue o código abaixo.
If ( oWord := Win_olecreateobject("Word.Application") ) != nil   
      oWord:Visible := .T. //para visualizar na tela
      oWord:WindowState := 0  ///para ?? 0 normal, 1 maxmize, 2 minimize

      oDoc  := oWord:Documents:Open(carq) 
      oText := oWord:Selection()
      oFind := oText:Find()
      oFind:MatchWholeWord:=.T. //somente a palavra inteira
      oFind:Wrap:=1 //sempre no inicio
      ///busca e troca a variavel
      oFind:Text:="@COMARCA"
      oFind:Execute()
      oText:Typetext(oCOMARCA) //ocomarca é a variavel ja preenchida antes
     //.... varias trocas
     //agora a parte que não funciona.
     //COPIEI DO FORUM
     //oWord:preview()    //NAO FUNCIONA                 // visualiza o documento no preview do Word
     //oWord:Visualizar()  //NAO FUNCIONA
     //oDoc:Close(False) //NAO FUNCIONA
     //oWord:PrintOut()  //NAO FUNCIONA
     //oWord:PrintDoc(.t.)   //NAO FUNCIONA
     //oWord:PrintPreview(.T.) //NAO FUNCIONA
     //oWord:PrintPreview:=.T. //FUNCIONA, ABRE O PREVIEW DO WORD
     //oWord:Invoke("Quit",0) //NAO FUNCIONA
     //oWord:Quit(0)  //NAO FUNCIONA
      //TENTEI DE TUDO PARA:
      //ABRIR O PRINT DIALOG DO WORD para selecionar a impressora que quero enviar, tipo PDF ou uma impressora do windows
      //FECHAR O WORD logo após imprimido.
EndIf     


Fico no aguardo se alguem souber como fazer isto com o word, lembrando que as variáveis no word está alterando certinho, posso chamar manualmente a imrpressora e fechar o documento, mas pede pra salvar, isto não pode.
Grato
:xau
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Word application

Mensagempor janio » 21 Set 2017 17:22

Eu sempre gero um NOVO documento a partir do original, deixando este último sempre intacto.

Tipo...
Original : contrato.doc

aí gero contrato001.doc, contrato002.doc,...contrato100.doc

janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Word application

Mensagempor fladimir » 21 Set 2017 18:23

Eu fazia assim tb, depois migrei pro FastReport achei melhor, mas o q o FAST Faz é manter um modelo interno e fazer a partir dele, acaba dando na mesma.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Word application

Mensagempor JoséQuintas » 21 Set 2017 18:56

Ou se é fixo, então mais prático gerar em PDF.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Word application

Mensagempor Eolo » 21 Set 2017 21:42

Usando o Word, o cliente TEM que ter o Word instalado. E se não tiver?

E, se tiver, qual a garantia que tudo vai funcionar sempre em todas as versões do Word? Amanhã, o cliente instala uma versão nova do Word e pode melar a coisa. E, se isso acontecer, toca você a mexer nos fontes de novo.

Eu uso o Win32Prn() do xHarbour (sim, ainda o xHarbour, console). Abro os gets pro usuário digitar o que for preciso, monto o job no Win32Prn(), escolho fontes, cores e o tudo o que for preciso, incluo imagens com o Win32Bmp(), imprimo contratos e o que for em qualquer impressora instalada e fim de papo. Simples, sem depender do Word nem de outros.

Tenho coisa rodando sem problemas há anos.

O único problema é se o Harbour não tiver um Win32prn() nem um Win32Bmp() similares ao do xHarbour...
Avatar de usuário

Eolo
Colaborador

Colaborador
 
Mensagens: 1134
Data de registro: 08 Dez 2005 17:24
Cidade/Estado: São Paulo - SP
Curtiu: 0 vez
Mens.Curtidas: 41 vezes

Word application

Mensagempor fladimir » 21 Set 2017 22:37

Grande Eolo!!!!! q bom ve-lo por aqui...

Complementando sua resposta o Harbour tem as funções equivalentes
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Word application

Mensagempor JoséQuintas » 21 Set 2017 23:10

O único problema é se o Harbour não tiver um Win32prn() nem um Win32Bmp() similares ao do xHarbour...


Se não tiver a gente inventa.... rs.... mas tem.

Mas pode nem precisar disso, pode ser genérico:

teste1.png


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

Ou algo mais trabalhado:

teste2.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Word application

Mensagempor Toledo » 21 Set 2017 23:47

leandrolinauer escreveu:3- Sair do word sem salvar, para não modificar as variáveis trocadas.

O que você poderia tentar fazer é salvar o documento com outro nome.

oDoc:SaveAs( "c:\temp\nomedoarquivo.doc")


Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar de usuário

Toledo
Administrador

Administrador
 
Mensagens: 3038
Data de registro: 22 Jul 2003 18:39
Cidade/Estado: Araçatuba - SP
Curtiu: 263 vezes
Mens.Curtidas: 258 vezes

Word application

Mensagempor janio » 22 Set 2017 08:16

Eolo,

A Win32Prn tem preview?

Fladimir,

Poderia demonstrar como seria um código de relatório com FAST e postar a imagem do relatorio pra gente ter idéia de como ficou?

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

Word application

Mensagempor leandrolinauer » 22 Set 2017 08:59

Bom dia a todos.
Grato pelo retorno, pelo que li nos retornos, então não há nenhuma possibilidade de fazer da forma como eu estava imaginando, mas tudo bem.
Quanto a gerar um arquivo diferente, na verdade é o que eu estou fazendo agora ele gera outro arquivo com o nome do cliente. exemplo:
ORIGINAL: Cobrança Judicial.docx
MODELO ALTERADO: Cobrança Judicial fulano de tal.docx (copiado do original e alterado as variáveis, ficando salvo)
o que eu não necessito é deixar salvo, o que vai inflando o diretório talvez, de lixo que não seria necessário guardar.

Quanto a problemas do word não funcionar em outras versões, terei que testar, mas como é software da empresa, e é eu que cuido, não me daria problemas visto que só geraria aonde tem o office instalado.

Pensei tbem em gerar em PDF, deixando o texto preso no sistema, mas aí se tiver que fazer uma alteração no texto do documento, terei que alterar o sistema, aí pensei, em fazer um documento TXT original com o texto que pode ser alterado a qualquer momento, e o sistema pega deste arquivo o texto para gerar em pdf trocando as variáveis de dados que são preenchidas pelo usuário, aí sim ficaria show, mas por enquanto isto daria trabalho demais e estou sem tempo para brincar com esta parte.

Então vou ficar com o modelo que faço agora, jogando no word e em outro arquivo copiado e deixando gravado, bom, tbem eu poderia apagar o arquivo no final da impressão, tbem é válido.
Valeu pela ajuda.
Um Harbraço a todos.
:xau
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
leandrolinauer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 373
Data de registro: 16 Out 2006 10:59
Cidade/Estado: Paranaíba-MS
Curtiu: 0 vez
Mens.Curtidas: 12 vezes

Word application

Mensagempor fladimir » 22 Set 2017 09:47

      cParagrafoUnico  := 'O PRIMEIRO VENCIMENTO FICA PARA ' + dt2dig(dDtPrimeiroVcto) 
      if nPercentualDesc>0 .and. nQtdMesesDesc > 0
         cParagrafoUnico += ', SENDO QUE NOS PRIMEIROS ' + STRZERO( nQtdMesesDesc,2)
         cParagrafoUnico += '(' + Extenso2(nQtdMesesDesc, .F.) + ') ' + if( nQtdMesesDesc > 1,'MESES','MES')
         cParagrafoUnico += ' SERA CONCEDIDO UM DESCONTO DE '
         cParagrafoUnico += allstr(nPercentualDesc) + '% (' + Extenso2(nPercentualDesc, .F.) + ') POR'
         cParagrafoUnico += 'CENTO A TITULO DE PROMOCAO, RETORNANDO AO VALOR ACIMA ESTIPULADO NO '
         cParagrafoUnico += 'MES SUBSEQUENTE AO PRIMEIRO VENCIMENTO AQUI ACORDADO, OU SEJA, RETORNARA '
         cParagrafoUnico += 'AO VALOR DE R$ ' + trim(TRANSF(nValor, '@E 999,999.99')) + '(' + Extenso2(nValor)
         cParagrafoUnico += ').'    
      endif
      cMesesContrato := Extenso2(nQtdMesesContrato, .F.)

      cDtExtenso := DataExtenso(dDtContrato)
      cDtExtenso := substr(cDtExtenso,2)

      cRazao     := alltrim(cRazao)     
      cDoc1      := alltrim(transf(cDoc1, if( cTipo=='J', "@R 99.999.999/9999-99", "@R 999.999.999-99")))
      cDoc2      := if(empty(cDoc2) .and. cTipo == 'J', 'ISENTO',;
                        if(empty(cDoc2) .and. cTipo == 'F', '------', alltrim(cDoc2)))
      cEnd       := alltrim(cEnd)       
      cNumEnd    := alltrim(cNumEnd)   
      cBairro    := alltrim(cBairro)   
      cCidade    := alltrim(cCidade)   
      cEstado    := alltrim(cEstado)   
      cCEP       := alltrim(cCEP)       
   
      cNome   := 'Contrato' + AbreviarNome(cRazao) + GeraNome('PDF',.F.)
      cNome   := strtran(cNome, ' ','.')
      cZip    := strtran(cNome, 'PDF', 'ZIP')      
      cTitulo := 'Contrato Cliente ' + cRazao

      *-- Gera no FAST
      oFR := frReportManager():new(NIL, cTitulo)
      oFR:PreviewOptions:SetZoomMode(2) 
      oFR:LoadFromResource( cNomeFR )
      oFR:PrepareReport()
      oFR:ShowReport()   
      oFR:DestroyFR()
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Word application

Mensagempor Paredes01 » 22 Set 2017 10:29

hola
Puede por favor compartir su archivo *.fr3 (cNomeFR)
Saludos
Paredes01
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 38
Data de registro: 20 Mai 2012 11:22
Cidade/Estado: Mérida, Yucatán, México
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Word application

Mensagempor fladimir » 22 Set 2017 11:26

Devido a questões internas removi alguns trechos e alterei alguns nomes, mas em suma segue pra ter ideia.

contratosistema.fr3.txt
Relatorio Fast FR3 (renomear a extensao)
(31.25 KiB) Baixado 93 vezes


contratosistema.rtf
Relatorio RTF q compoe o FR3
(81.29 KiB) Baixado 98 vezes


Atenção, o RTF (q seria o DOC com as variaveis) compõe o FR3 q após compilado fica tudo dentro do EXE não precisando nem o FR3 nem do RTF
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Word application

Mensagempor Paredes01 » 22 Set 2017 20:23

wow, fladimir

cómo agregar mi fr3 al EXE ?
cómo lo llamo o (lo cargo) desde mi programa ?

Saludos
Paredes01
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 38
Data de registro: 20 Mai 2012 11:22
Cidade/Estado: Mérida, Yucatán, México
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Word application

Mensagempor fladimir » 22 Set 2017 22:50

tenho um arquivo .RC exemplo MeuApp.RC

Dentro dele referencio os FR3 com um ALIAS para chamar na rotina, exemplo:

Conteudo do MeuApp.RC
AppIcon                      ICON         "Resources\\Icon_04.ico"
ContratoSistema          RCDATA    "C:\Projetos\Sistema\Relatorios\ContratoSistema.FR3"


Ai na rotina faço conforme postei o código:

oFR:LoadFromResource( cNomeFR )  //------> onde cNomeFR aki seria    "ContratoSistema" que defini no MeuApp.RC


Ai com isto, mando somente o EXE pro cliente, no EXE tem o FR3 q por sua vez tem embutido o RTF
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro