Clipper On Line • Ver Tópico - juntar arquivos do word
Mudar para estilo Clássico
Discussão sobre a biblioteca Fivewin - O Clipper para Windows.
Postar uma resposta

juntar arquivos do word

20 Jun 2018 12:52

Boa tarde eu uso TWord() pra gerar uma ficha de cliente e está funcionando blz,só que preciso juntar todas as fichas dos clientes em um só arquivo, tem como fazer isso ?

desde já obrigado pela atenção de todos

juntar arquivos do word

20 Jun 2018 19:04

Amiguinhos,

Olha este código e assimile o conceito:
Código:
outdocname     := "_CONCATENATED.doc"
wdPasteDefault := 0
wdPageBreak    := 7
cPath          := ".\"

function MAIN // Processo
word := win_CreateObject("Word.Application")
DeleteOldOutput( outdocname )
first := .t.
cExtensao := "DOC"
CONTADOR  := ADIR( cPath + "\*." + cExtensao )
IF CONTADOR != 0
    DECLARE TXT_NOMES[ CONTADOR ]
    ADIR( cPath + "\*." + cExtensao, TXT_NOMES )
    FOR CONTADOR := 1 TO LEN( TXT_NOMES )
        cfpath := MemoRead( cPath + "\" + TXT_NOMES[CONTADOR] )
        if first
           outdoc := word:Documents:Add()
           outdoc:SaveAs( outdocname )
           Processa( cfpath, .t. )
           first = .f.
        else
           Processa( cfpath, .t. )
        end if
    NEXT
    If .Not. first
       outdoc:Save()
       outdoc:Close()
    EndIf
ENDIF
word:Quit()
return nil

function DeleteOldOutput( outdocname )
If File( outdocname )
    fErase( outdocname )
EndIf
return nil

function Processa( filename, insertBreak )
doc := word:Documents:Open( filename )
word:Selection:WholeStory()
word:Selection:Copy()
outdoc:Activate()
if insertBreak
    word:Selection:InsertBreak( wdPageBreak )
endif
word:Selection:Paste()
doc:Close()
return nil


Não testei.

juntar arquivos do word

22 Jun 2018 12:33

Fiz algumas alterações e funcionou blz, só que está inserindo uma página em branco no final,já tentei de tudo mas não consegui retirar.kkkkk, quem consegui me avisa ai por favor, mas ja resolveu meu problema.

Código:
function juntadoc()
outdocname     := '\rhino\concatenated.doc'
wdPasteDefault := 0
wdPageBreak    := 5
cPath          := '\rhino\wordtmp'
TXT_NOMES := {}
word := CreateObject("Word.Application")

if file( outdocname )
        fErase( outdocname )
endif
first := .t.
cExtensao := 'doc'
CONTADOR  := ADIR( cPath + '\*.' + cExtensao )

IF CONTADOR != 0

        TXT_NOMES := directory( cPath + '\*.' + cExtensao )

        for contador := 1 to len( txt_nomes )

                cFile  := cPath + '\' + TXT_NOMES[CONTADOR,1]
                ctexto := MemoRead( cPath + '\' + TXT_NOMES[CONTADOR,1] )
                if first
                        outdoc := word:Documents:Add()
                        outdoc:SaveAs( outdocname )
                        Processa( cFile,.t.,contador )
                        first = .f.
                else
                        Processa( cFile,.t.,contador )
                endif
        next
        if .not. first
                outdoc:Save()
                outdoc:Close()
        endif
endif
word:quit()
return .t.
 
///////////////////////////////////////////////
//
///////////////////////////////////////////////
function Processa( cFile,insertBreak,contador )

doc := word:Documents:Open( cFile )

word:Selection:WholeStory()
word:Selection:Copy()
outdoc:Activate()
 
if insertBreak
        //word:Selection:InsertBreak( wdPageBreak )
endif
word:Selection:Paste()
doc:Close()
return .t.
Editado pela última vez por Toledo em 22 Jun 2018 13:24, num total de 1 vezes
Razão: Mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: Clique aqui

juntar arquivos do word

22 Jun 2018 13:36

:xau :)Pos

juntar arquivos do word

22 Jun 2018 14:09

Rochinha fiquei tão empolgado com o resultado que acabei me esquecendo de te agradecer, rapaz resolveu os meus problemas, agora posso gerar todos os relatorios do meu sistema em word e depois exporta pra pdf.obrigado,obrigado

juntar arquivos do word

22 Jun 2018 22:56

Amiguinhos,

carlos moc
acabei me esquecendo de te agradecer


Que é isso. Aqui somos uma comunidade. É ela quem nos agradece em buscar soluções e avolumar conhecimento.

Com certeza a sua dúvida também pode ser a de outro colega e a solução está aí, para todos. E na verdade foi você quem deu a solução.
Postar uma resposta