O Controle Processador de Texto integrado apartir do WinDev22 vem revolucionando a Ferramenta.
Apresenta conceitos interessantes e é possível através dele Criar e Editar documentos com extenção .Docx.
Apresenta uma Tools Barr similar a Barra de Ferramentas do MS Word, mas ainda com recursos limitados.
Quem deseja utilizá-la como fazia com os Controles RTF, precisará observar alguns pontos:
1) Não dá pra vincular diretamente o Controle a um Campo Memo (Binário) de uma Tabela .FIC;
2) Não foi possível vincular um Menu PopUp (Menu de Contexto);
3) As Funções de Tratamento de Textos e Strings não funcionam sobre este Controle.
● Mas há muita coisa boa e já adianto que os pontos de 1 e 3 são superados via Programação.
4) Para receber o conteúdo de um Campo Binário com um Texto Formatado, devemos fazer vis Código;
5) Para atuar nos Caracteres do WP devemos usar Funções Própria DOC... (veremos mais adiante)
6) Imprimir e/ou Exportar um WP ficou mais seguro que fazê-lo com RTF, que apresentava alguns BUGs.
I - Como atribuir um WP Control a um Campo Binário?
WP_Editor..Value = Contrato.Contrato
<NameControl>..Value = <Tabela>.<Campo>
Claro que o desenvolvedor deve se preoculpar em Localizar na Tabela o Registro específico que deseja,
observe a sequência de códigos:
HReadSeekFirst(Contrato,ContratoID,EDT_Id_Contrato)
HReadSeekFirst(Cliente,ClienteID,1)
WP_Editor..Value = Contrato.Contrato
DocReplace(WP_Editor,"wladi","Wlady",IgnoreCase)
DocReplace(WP_Editor,"@Nome_Cliente",Cliente.Cli_Nome)
DocReplace(WP_Editor,"@RG_cliente",Cliente.RG,IgnoreCase)
DocReplace(WP_Editor,"@CPF_CLIENTE",Cliente.CPF,IgnoreCase)
II - Salvando um WP Control em um Campo Binário
DocSave(WP_Editor,"temp.doc")
HReset(Contrato)
Contrato.Contrato_Titulo = EDT_Contrato_Titulo
Contrato.Contrato = fLoadBuffer("temp.doc")
HSave(Contrato)
III - Criando um Documento em Branco
WP_Editor = ""
IV - Algumas Semelhanças com Funções Strings e Funções WP
Você já deve ter percebido no código acima que:
Replace() foi subistituído por DocReplace()
● Inserindo um Texto no WP
sInitialText is string = [
Visão Geral
O WINDEV é um ambiente de desenvolvimento que opera em um ambiente Windows.
]
TextFragment is a docFragment(WP_Editor,WP_Editor..Cursor,0)
TextFragment..Text += sInitialText
● Selecionando um Texto no WP
arrFragments is array of docFragment = DocSeek(WP_Editor, "Visão Geral")
IF arrFragments..Occurrence = 1 THEN
WP_Editor..Cursor = arrFragments[1].StartPosition
WP_Editor..SelectionLength = arrFragments[1].EndPosition-arrFragments[1].StartPosition+1
END
● Alterando um Texto no WP com a Função: DocReplace()
DocReplace(WP_Editor,"Visão Geral","VISÃO GERAL",WholeWord)
● Alterando a Cor do Texto Selecionado
TextFragment is a docFragment(WP_Editor,WP_Editor..Cursor, WP_Editor..SelectionLength)
TextFragment..MiseEnForme..TextColor = LightRed
● Alterando a Fonte do Texto Selecionado
...
TextFragment..MiseEnForme..FontName = "Arial"
● Alterando o Tamanho da Fonte do Texto Selecionado
...
TextFragment..MiseEnForme..FontSize += 2
● Alterando para Negrito, Itálico e Sublinhado o Texto Selecionado
...
TextFragment..MiseEnForme..FontBold = True
TextFragment..MiseEnForme..FontItalic = True
TextFragment..MiseEnForme..FontUnderlined = True
● Centralizar um Texto Selecionado
TextFragment is a docFragment(WP_Editor,WP_Editor..Cursor, WP_Editor..SelectionLength)
FOR EACH MyCurrentElement OF TextFragment.Element
MyParagraph is a docParagraph = MyCurrentElement.Paragraphe
MyParagraph..PageLayout..Alignment = haCenter
END
Amigos, espero que tenham apreciado o Texto.
--