Jump to content
Fivewin Brasil

tWord Cabecalho e Rodape oWord:Replace("@Nome_Imobiliaria", Nome_Imobiliaria )


marcioe

Recommended Posts

Olá amigos,

Estou usando a seguinte Rotina, que peguei aqui mesmo no Forum, funciona bem, mas porem no Cabecalho e Rodapé não aceita fazer o oWord:Replace("@Nome_Imobiliaria", Nome_Imobiliaria )

Por Exemplo.

 

FUNCTION GERA_CONTRATO_FORMATO_WORD( v_Numero_contrato )
	local oWord
	oWord := TWord():New()
	oWord:OpenDoc( (CurDrive() +":\"+ CurDir() + '\RELS\'+'Contrato.DOC') )
	PT_DRV_EXP := DRIVE_TR+"\"+CURDIR()+"\CONTRATOS"
	IF !lIsDir( (PT_DRV_EXP) )
	   If MsgYesNo("A Pasta "+PT_DRV_EXP +" Não Existe !" + chr(13) +;
	   	  			" " + chr(13) +;
	   	  	   	" Deseja Criá-la ",SISTEMA)
			lMkDir( (PT_DRV_EXP) )
			MsgAlert("A Pasta "+PT_DRV_EXP +" Foi Criada !" ,SISTEMA)
		ELSE
	      MsgStop( "Sem que a Pasta Seja Criada o Sistema Nao Pode Continuar ! ",SISTEMA)
	      RETURN .F.
		ENDIF
	ENDIF
	*----------------------------------------------------------------------------	
	* Locadores
	*----------------------------------------------------------------------------	
	oWord:Replace("@Nome_locador", Nome_locador  )
	oWord:Replace("@Nacionalidade_Locador", Nacionalidade_Locador  )
	oWord:Replace("@Tipo_Inscricao_Locador", Tipo_Inscricao_Locador  )
	oWord:Replace("@Cpf_Cnpj_Locador", Cpf_Cnpj_Locador  )
	oWord:Replace("@Tipo_Inscricao_rg_Locador", Tipo_Inscricao_rg_Locador )
	oWord:Replace("@Rg_Inscricao_Estadual_Locador", Rg_Inscricao_Estadual_Locador )
	oWord:Replace("@Orgao_Emissor_Rg_Locador", Orgao_Emissor_Rg_Locador   )
	oWord:Replace("@Endereco_Locador", Endereco_Locador  )
	oWord:Replace("@Complemento_Endereco_Locador", Complemento_Endereco_Locador  )
	oWord:Replace("@Numero_Endereco_Locador", Numero_Endereco_Locador  )
	oWord:Replace("@Nome_Bairro_Locador", Nome_Bairro_Locador  )
	oWord:Replace("@Cep_Locador", Cep_Locador  )
	oWord:Replace("@Cidade_Locador", Cidade_Locador )
	oWord:Replace("@Estado_Locador", Estado_Locador   )
	oWord:Replace("@Profissao_Locador", Profissao_Locador  )
	oWord:Replace("@Estado_Civil_Locador", Estado_Civil_Locador  )
	oWord:Replace("@Representante_Locador", Representante_Locador  )
	oWord:Replace("@Locadores_Extras", Locadores_Extras  )
	*----------------------------------------------------------------------------	
	* Locatarios
	*----------------------------------------------------------------------------	
	oWord:Replace("@Nome_locatario",Nome_locatario )
	oWord:Replace("@Nacionalidade_Locatario",Nacionalidade_Locatario )
	oWord:Replace("@Tipo_Inscricao_Locatario",Tipo_Inscricao_Locatario )
	oWord:Replace("@Cpf_Cnpj_Locatario",Cpf_Cnpj_Locatario )
	oWord:Replace("@Tipo_Inscricao_rg_Locatario", Tipo_Inscricao_rg_Locatario )
	oWord:Replace("@Rg_Inscricao_Estadual_Locatario",Rg_Inscricao_Estadual_Locatario )
	oWord:Replace("@Orgao_Emissor_Rg_Locatario",Orgao_Emissor_Rg_Locatario )
	oWord:Replace("@Endereco_Locatario",Endereco_Locatario )
	oWord:Replace("@Numero_Endereco_Locatario",Numero_Endereco_Locatario )
	oWord:Replace("@Complemento_Endereco_Locatario",Complemento_Endereco_Locatario )
	oWord:Replace("@Nome_Bairro_Locatario",Nome_Bairro_Locatario )
	oWord:Replace("@Cep_Locatario",Cep_Locatario )
	oWord:Replace("@Cidade_Locatario",Cidade_Locatario )
	oWord:Replace("@Estado_Locatario",Estado_Locatario )
	oWord:Replace("@Profissao_Locatario",Profissao_Locatario )
	oWord:Replace("@Estado_Civil_Locatario",Estado_Civil_Locatario )
	oWord:Replace("@Representante_Locatario",Representante_Locatario )
	oWord:Replace("@Locatarios_Extras",Locatarios_Extras )
	oWord:Replace("@Assinatura_Extra_Locatario",Assinatura_Extra_Locatario )
	*----------------------------------------------------------------------------	
	* Dados do Fiador
	*----------------------------------------------------------------------------	
	oWord:Replace("@Assina_Fiadores", Assina_Fiadores )
	oWord:Replace("@Primeiro_Fiador",Primeiro_Fiador )
	oWord:Replace("@Segundo_Fiador",Segundo_Fiador )
	*----------------------------------------------------------------------------
	* Dados da Imobiliaria
	*----------------------------------------------------------------------------
   oWord:Replace("@Nome_Imobiliaria", Nome_Imobiliaria )
   oWord:Replace("@Endereco_Imobiliaria", Endereco_Imobiliaria )
   oWord:Replace("@Numero_Endereco_Imobiliaria", Numero_Endereco_Imobiliaria )
   oWord:Replace("@Bairro_imobiliaria", Bairro_imobiliaria )
	oWord:Replace("@Cep_Imobiliaria", Cep_Imobiliaria )
   oWord:Replace("@Cidade_Imobiliaria", Cidade_Imobiliaria )
	oWord:Replace("@Estado_Imobiliaria", Estado_Imobiliaria )
	oWord:Replace("@Telefone_Imobiliaria", Telefone_Imobiliaria )
	oWord:Replace("@Cpf_Cnpj_Imobiliaria",  Cpf_Cnpj_Imobiliaria)
	oWord:Replace("@Registro_Creci_imobiliaria", Registro_Creci_imobiliaria )
   oWord:Replace("@Primeiro_Responsavel_Imobiliaria", Primeiro_Responsavel_Imobiliaria )
   oWord:Replace("@Registro_Creci_Primeiro_Responsavel_imobiliaria", Registro_Creci_Primeiro_Responsavel_imobiliaria )
   oWord:Replace("@Cpf_Primeiro_Responsavel_imobiliaria", Cpf_Primeiro_Responsavel_imobiliaria )
	oWord:Replace("@Segundo_Responsavel_Imobiliaria", Segundo_Responsavel_Imobiliaria )
   oWord:Replace("@Registro_Creci_Segundo_Responsavel_imobiliaria", Registro_Creci_Segundo_Responsavel_imobiliaria )
   oWord:Replace("@Cpf_Segundo_Responsavel_imobiliaria", Cpf_Segundo_Responsavel_imobiliaria )
	*----------------------------------------------------------------------------
	* Dados do Imovel
	*----------------------------------------------------------------------------
   oWord:Replace("@Identificacao_Imovel", Identificacao_Imovel )
	oWord:Replace("@Endereco_Imovel",  Endereco_Imovel )
	oWord:Replace("@Numero_Endereco_Imovel", Numero_Endereco_Imovel )
	oWord:Replace("@Complemento_Endereco_Imovel", Complemento_Endereco_Imovel )
	oWord:Replace("@Bairro_Imovel", Bairro_Imovel )
	oWord:Replace("@Cidade_Imovel", Cidade_Imovel )
	oWord:Replace("@Estado_Imovel", Estado_Imovel )
	oWord:Replace("@Cep_Imovel",  Cep_Imovel )
	oWord:Replace("@Tipo_de_Imovel",  Tipo_de_Imovel )
	oWord:Replace("@Finalidade_Uso_Imovel",  Finalidade_Uso_Imovel )
	*----------------------------------------------------------------------------
	* Dados do Contrato
	*----------------------------------------------------------------------------
	oWord:Replace("@Prazo_em_Meses_Contrato", Prazo_em_Meses_Contrato )
	oWord:Replace("@Inicio_Contrato", Inicio_Contrato )
	oWord:Replace("@Termino_Contrato", Termino_Contrato )
	oWord:Replace("@Dia_Vencimento_Aluguel", Dia_Vencimento_Aluguel )
	oWord:Replace("@Valor_Contrato", Valor_Contrato )
	oWord:Replace("@Valor_Caucao", Valor_Caucao )
	oWord:Replace("@Multa_por_Atraso", Multa_por_Atraso )
	oWord:Replace("@Juros_por_Atraso", Juros_por_Atraso )
	*----------------------------------------------------------------------------
	oWord:Preview()
	oWord:Visualizar()
	*oWord:PrintDoc()
	oWord:Save( ( (PT_DRV_EXP)+'\'+'Contrato_'+strzero(v_Numero_contrato,06,0)+'.DOC') ) // ASSIM PARA VISUALIZAR
	oWord:Close()
	*oWord:Visualizar( (CurDrive() +":\"+ CurDir() + '\RELS\'+'Contrato_NEW.DOC') )
	oWord:End()
	ShellExecuteEx("winword.exe", ( (PT_DRV_EXP)+'\'+'Contrato_'+strzero(v_Numero_contrato,06,0)+'.DOC') )
RETURN Nil

 

Link to comment
Share on other sites

Marcio

Segue a classe:

METHOD RepHeader(cOld, cNew) CLASS TWord
       Local oTexto2, oFind2
       local oWindow := ::oActiveDoc:Get( "ActiveWindow" )
       local oView   := oWindow:Get( "View")
       oView:Set( "SeekView" , 9 )         // 9 Header 10 Footer
       ::oSelection := ::oTexto:Get( "HeaderFooter")

       oTexto2 := ::oSelection:Range()
       oFind2  := oTexto2:Get( "Find" )

       oFind2:Set( "Text", cOld )
       oFind2:Set( "Forward", .T. )
       oFind2:Set( "Wrap", INT(1) )
       oFind2:Set( "Format", .f.            )
       oFind2:Set( "MatchCase", .f.         )
       oFind2:Set( "MatchWholeWord", .f.    )
       oFind2:Set( "MatchWildcards", .f.    )
       oFind2:Set( "MatchSoundsLike", .f.   )
       oFind2:Set( "MatchAllWordForms", .f. )

       oFind2:Invoke( "Execute")

       DO WHILE oFind2:Get( "Found" )    // Reemplaza todas las ocurrencias que coincidan

          oTexto2:Set( "Text", cNew )
          oFind2:Invoke( "Execute")
       Enddo

       ::oWord:Get( "Selection" )
       release oWindow, oView
       release otexto2, ofind2
       RETURN nil

 

Link to comment
Share on other sites

 

Marcio

Segue a classe:


METHOD RepHeader(cOld, cNew) CLASS TWord
       Local oTexto2, oFind2
       local oWindow := ::oActiveDoc:Get( "ActiveWindow" )
       local oView   := oWindow:Get( "View")
       oView:Set( "SeekView" , 9 )         // 9 Header 10 Footer
       ::oSelection := ::oTexto:Get( "HeaderFooter")

       oTexto2 := ::oSelection:Range()
       oFind2  := oTexto2:Get( "Find" )

       oFind2:Set( "Text", cOld )
       oFind2:Set( "Forward", .T. )
       oFind2:Set( "Wrap", INT(1) )
       oFind2:Set( "Format", .f.            )
       oFind2:Set( "MatchCase", .f.         )
       oFind2:Set( "MatchWholeWord", .f.    )
       oFind2:Set( "MatchWildcards", .f.    )
       oFind2:Set( "MatchSoundsLike", .f.   )
       oFind2:Set( "MatchAllWordForms", .f. )

       oFind2:Invoke( "Execute")

       DO WHILE oFind2:Get( "Found" )    // Reemplaza todas las ocurrencias que coincidan

          oTexto2:Set( "Text", cNew )
          oFind2:Invoke( "Execute")
       Enddo

       ::oWord:Get( "Selection" )
       release oWindow, oView
       release otexto2, ofind2
       RETURN nil

 

Obrigado amigo pela dica ficou Top de demais, perfeito...

 

 

Aproveitando quem sabe tem como, eu faço esse contrato, dando os replaces, porem tem uma outra coisa que estava querendo fazer, importar o corpo de um outro arquivo Word, 

Por exemplo, tem o Contrato, e tem, o laudo que é gerado pelo sistema, em .DOC   exemplo

Iria fazer o troca dos dados com o

oWord:Replace("@Old", New )

Porem em determinado local queria colocar o texto de um outro arquivo Word, como se fosse um Ctr+v  e um Crt+v, 

XXXXXXXXX.png?1548974544

Espero ter explicado

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...