Amigos
Muy buen dia.
Amigos, Necesito si alguien dispone de la Clase Tword, que funciones con WIndows 10, que me la pueda compartir por favor.
Muchos Saludos.
Antonio
Numero RUT <<RUT>> // puedes encerrarlos entre [ ], < >, << >>, o como quieras
Nombre <<NOMBRE>>
Pais <<PAIS>>
Function ReplTextOnWord_2()
LOCAL cText, oWord, oDoc
local cDocPath := CurDrive() + ":\" + curdir() + "\"
local cDoc := "DocuDos.rtf"
local cDocSaveAs := "DocuDos_TMP.rtf"
if !file( cDocPath + cDoc )
MsgStop("No existe el fichero de plantilla " + cDocPath + cDoc,"Alto")
return nil
endif
if (oWord := WinWordObj() ) == nil
MsgStop( "MS Word no instalado" ,"Alto" )
return nil
endif
cText := MemoRead( cDocPath + cDoc )
ReplaceText(@cText)
MemoWrit( cDocPath + cDocSaveAs, cText )
oDoc = oWord:Documents:Open( cDocPath + cDocSaveAs)
if oDoc == nil
MsgInfo("Error de creación del documento " +cDocSaveAs +". Asegúrese que no esté abierto." )
endif
oDoc:Application:Visible := .t.
Return nil
//------------------------------------------------------//
static function ReplaceText(cText)
cText := StrTran(ctext,"<<RUT>>" , Alltrim(" 12345678910 ") )
cText := StrTran(ctext,"<<NOMBRE>>" , Alltrim(" DONALDO TROMPETA ") )
cText := StrTran(ctext,"<<PAIS>>" , Alltrim(" PAIS DE LAS MARAVILLAS ") )
//Para reemplazar con datos de una DBF, puedes hacer:
//cText := StrTran(ctext,"<<NOMBRE>>" , Alltrim ( (cAlias)->Nombre) )
//etc, etc...
return nil
Function G_Altura_W()
Local cTxtFile, oWord, oSel, oDoc,cOrigen,cDestino,cFile,cSave
cOrigen:= "C:\Desa\FichasWin\Doc\Doc_Bases\"
cDestino:="C:\Desa\FichasWin\Doc\Doc_Bases\"
cFile:= "Alturapru6.rtf"
cSave:= "Alturapru11.doc"
Nom1=" PACIENTE DE PRUEBA INFORME"
rut1=" 11.111.111-1"
naci1="Chilena"
oWord:=TOleAuto():New( "Word.Application" )
TRY
oDoc := oWord:Documents:Open(cOrigen + cFile)
CATCH
MsgInfo("Error: No Puedo Abrir Archivo Plantilla --> "+cFile)
oWord:Quit()
Return NIL
END
oDoc:Select()
oSel = oWord:Selection
Reemplaza_Text( oSel, "[nombrepaciente]",AllTrim(Nom1))
Reemplaza_Text( oSel, "[rut]",AllTrim(rut1))
Reemplaza_Text( oSel, "[naciona]",AllTrim(naci1))
oDoc:Invoke( "SaveAs", cDestino + cSave )
//oWord:Visible:= .T.//;oWnd:Minimize()
//oDoc:PrintOut()
oDoc:Invoke('Close',0)
oWord:Quit()
Return
Static Function Reemplaza_Text( oSel, cSrc, cRpl)
oSel:Start = 0
oSel:End = -1
WHILE oSel:Find:Execute( cSrc )
oSel:Range:Text = cRpl
ENDDO
Return nil
//---------------------------------------------------//
Function G_Altura_W()
Local oWord, oSel, oDoc,cOrigen,cDestino,cFile,cSave, Nom1,rut1,naci1
local oActiveDoc,aArrReplace, n
cOrigen := "C:\Desa\FichasWin\Doc\Doc_Bases\"
cDestino := "C:\Desa\FichasWin\Doc\Doc_Bases\"
cFile := "Alturapru6.rtf"
cSave := "Alturapru11.doc"
Nom1 := "PACIENTE DE PRUEBA INFORME"
rut1 := "11.111.111-1"
naci1 := "Chilena"
TRY
oWord := CreateObject("Word.Application")
CATCH
MsgInfo("Word no está instalado en esta PC. No se puede continuar")
Return NIL
END
TRY
oDoc := oWord:Documents:Open(cOrigen + cFile)
CATCH
MsgInfo("No se puede abrir el archivo plantilla " + cOrigen + cFile)
oWord:Quit()
Return NIL
END
oWord:Visible:=.T.
oDoc:Select()
oSel = oWord:Selection
// Crear Matriz de reemplazos
aArrReplace := { { "[nombrepaciente]", AllTrim(Nom1) } ,;
{ "[rut]" , AllTrim(rut1) } ,;
{ "[naciona]" , AllTrim(naci1) } }
For n:=1 to Len(aArrReplace)
Reemplaza_Text( oSel, aArrReplace[n][1], aArrReplace[n][2] )
Next n
oActiveDoc := oWord:Get("ActiveDocument")
oActiveDoc:SaveAs(cDestino + cSave)
* oActiveDoc:PrintOut()
* oWord:Documents:Close()
* oWord:Quit()
SysRefresh()
Return nil
//---------------------------------------------------//
Static Function Reemplaza_Text( oSel, cSrc, cRpl)
oSel:Start = 0
oSel:End = -1
WHILE oSel:Find:Execute( cSrc )
oSel:Range:Text = cRpl
ENDDO
Return nil
//---------------------------------------------------//
Static Function Reemplaza_Text( oSel, cSrc, cRpl)
Local wdCollapseEnd:=0
LOCAL oRng := oSel:Document:Content
IF AT( cSrc, oRng:Text ) = 0
RETURN .F.
ENDIF
WHILE oRng:Find:Execute( cSrc )
oRng:Text = cRpl
oRng:Collapse( wdCollapseEnd )
ENDDO
RETURN .T.
Function G_Francisco2()
Local oWord, oSel, oDoc,cOrigen,cDestino,cFile,cSave, Nom1,rut1,naci1
local oActiveDoc,aArrReplace, n
cOrigen := "C:\Desa\FichasWin\Doc\Doc_Bases\"
cDestino := "C:\Desa\FichasWin\Doc\Doc_Bases\"
cFile := "Alturapru6.rtf"
cSave := "Alturapru12.doc"
Nom1 := "PACIENTE DE PRUEBA INFORME"
rut1 := "11.111.111-1"
naci1 := "Chilena"
TRY
oWord := CreateObject("Word.Application")
CATCH
MsgInfo("Word no está instalado en esta PC. No se puede continuar")
Return NIL
END
TRY
oDoc := oWord:Documents:Open(cOrigen + cFile)
CATCH
MsgInfo("No se puede abrir el archivo plantilla " + cOrigen + cFile)
oWord:Quit()
Return NIL
END
oWord:Visible:=.T.
oDoc:Select()
oSel = oWord:Selection
// Crear Matriz de reemplazos
aArrReplace := { { "[nombrepaciente]", AllTrim(Nom1) } ,;
{ "[rut]" , AllTrim(rut1) } ,;
{ "[naciona]" , AllTrim(naci1) } }
For n:=1 to Len(aArrReplace)
Reemplaza_Text_F2( oSel, aArrReplace[n][1], aArrReplace[n][2] )
Next n
oActiveDoc := oWord:Get("ActiveDocument")
oActiveDoc:SaveAs(cDestino + cSave)
oActiveDoc:PrintOut()
* oWord:Documents:Close()
* oWord:Quit()
SysRefresh()
Return nil
//---------------------------------------------------//
Static Function Reemplaza_Text_F2( oSel, cSrc, cRpl)
Local wdCollapseEnd:=0
LOCAL oRng := oSel:Document:Content
IF AT( cSrc, oRng:Text ) = 0
RETURN .F.
ENDIF
WHILE oRng:Find:Execute( cSrc )
oRng:Text = cRpl
oRng:Collapse( wdCollapseEnd )
ENDDO
RETURN .T.
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 18 guests