Boa noite a todos Estou desenvolvendo um programa em Progress que lê um modelo de documento (Word) com marcadores e (usando dados do EMS) gera um documento .DOCX para o cliente. O programa já está quase pronto, porem ainda há alguns problemas: 1 – Para os marcadores que estão no corpo do documento, a substituição do marcador por dados lidos do EMS ocorre sem problemas. Porem o cliente deseja incluir dados (não fixos) no rodapé do documento gerado. Segui a mesma lógica que usei no corpo do programa porem a substituição não funcionou. Alguma ideia de como fazer isto? 2 – Preciso escrever número por extenso, exemplo “30 (trinta) dias”. Há alguma função no ambiente Progress que faça isto? 3 – Preciso escrever uma data por extenso, exemplo: 29/11/2024 ficaria “29 de novembro de 2024”. Há alguma função no ambiente Progress que faça isto? Qualquer ajuda será bem vinda. Sds
A parte da data por extenso ficou assim: Código: def var c-mes as char no-undo extent 12 initial ["Janeiro", "Fevereiro", "Mar o", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"]. def var c-data-por-extenso as char no-undo. if month(nota-fiscal.dt-emis-nota < 01 or month(nota-fiscal.dt-emis-nota > 12 then do: assign assign c-data-por-extenso = "***ERRO***". end. else do: assign c-data-por-extenso = string(day(nota-fiscal.dt-emis-nota),'99') + ' de ' + c-mes[month(nota-fiscal.dt-emis-nota)] + ' de ' + string(year(nota-fiscal.dt-emis-nota),'9999'). end.
A questão do número por extenso eu resolvi partindo de (bons) exemplos que encontrei aqui no fórum. Só esta pendente o item abaixo: 1 – Para os marcadores que estão no corpo do documento, a substituição do marcador por dados lidos do EMS ocorre sem problemas. Porem o cliente deseja incluir dados (não fixos) no rodapé do documento gerado. Segui a mesma lógica que usei no corpo do programa porem a substituição não funcionou. Alguma ideia de como fazer isto?
Solução define variable chwordapplication as com-handle no-undo. create "Word.application" chWordApplication. chWordApplicationocuments:Open("c:\tmp\Arq-Tz.docx"). chWordApplication:Selection:find:text = "Old". chWordApplication:Selection:find:replacement:text = "New". chWordApplication:ActiveDocument:ActiveWindow:ActivePane:View:SeekView = 9. /* Select header */ chWordApplication:Selection:find:Execute(,,,,,,,,,,2). /* replace */ chWordApplication:ActiveDocument:ActiveWindow:ActivePane:View:SeekView = 10. /* Select footer */ chWordApplication:Selection:find:Execute(,,,,,,,,,,2). /* replace */ chWordApplication:ActiveDocument:ActiveWindow:ActivePane:View:SeekView = 0. /* Select main */ chWordApplication:Selection:find:Execute(,,,,,,,,,,2). /* replace */ chWordApplication:ActiveDocument:SaveAs("c:\tmp\Arq-Mod.docx "). chWordApplication:Quit().