Hola amigos del Foro,
Tengo una aplicacion que emite un contrato de servicios para ello utilizo una plantilla de word y reemplazo los campos desde codigo pero el problema a que me enfrento es que cada vez que se ejecuta la accion de apertura de plantilla el word me la abre en modo de solo lectura y espera confirmacion del usuario y lo que es logico el programa se cuelga hasta que desde el administrador de tareas le indico que abra un copia de solo lectura y se ejecuta lo demas sin problemas, dentro del codigo al final lo salvo con otro nombre, no se que me falta para evitar esto, el codigo es el siguiente :
oWord:= Tword():New
DEFINE FONT oFont1 NAME "Arial" SIZE 0,-12 BOLD ITALIC UNDERLINE of oWord
DEFINE FONT oFont2 NAME "Tahoma" SIZE 0,-12 ITALIC of oWord
oWord:OpenDoc("C:\SISTEMAS\MONGALO2\CONTRATO.DOC")
oWord:SetMainDoc()
oWord:SetCm()
mNombre := ALLTRIM(E->SUSCRIBE)
mCedula := ALLTRIM(E->CEDULA)
mEmpresa := ALLTRIM(E->Nom_Cli)
mUbica1 := ALLTRIM(E->UBICA1)+" "+ALLTRIM(E->UBICA2)+" "+ALLTRIM(E->DESCRIP)
MPLAZO3 := E->PLAZO
mPlazo := E->PLAZO
mFecha := DTOC(E->FEC_INI)
mFecha1 := DTOC(E->FEC_FIN)
// mFecha3 := E->FEC_INI
// mFecha4 := E->FEC_FIN
MMONTO3 := E->MONTO
mPrecio := TRANSFORM(E->MONTO,"999,999.99")
mdetpla := CONVERTIR(MPLAZO3,"Meses ")
mPrecio2 := "("+CONVERTIR(MMONTO3,"Dólares ")+")"
mEcivil := E->E_CIVIL
SYSREFRESH()
oWord:Replace([xNombre],mNombre)
oWord:Replace([xEcivil],mEcivil)
oWord:Replace([xCedula],mCedula)
oWord:Replace([xEmpresa],mEmpresa)
oWord:Replace([xUbica1],mUbica1)
oWord:Replace([xPlazo],mPlazo)
oWord:Replace([xDetplazo],mdetpla)
oWord:Replace([xFecha],mFecha)
oWord:Replace([xFec],mFecha1)
oWord:Replace([xPrecMes],mPrecio)
oWord:Replace([xPrec],mPrecio2)
oWord:GoTop()
oWord:Replace("["," ")
oWord:Replace("]"," ")
oWord:Save("C:\DATA1\PRUEBA.DOC")
oWord:Preview()
oWord:PrintDoc(,,,,,,,,,)
oFont1:End()
oFont2:End()
CLOSE LISTA1
SELECT A
RETURN NIL
agradeceria de sobremanera cualquier ayuda al respecto
Saludos desde Managua, Nicaragua
Ramon Paredes