FoxPro/Visual FoxPro - word con vfp solo funciona cor word 2010

 
Vista:
sin imagen de perfil
Val: 29
Ha aumentado su posición en 2 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

word con vfp solo funciona cor word 2010

Publicado por RICHARD ANTONIO (197 intervenciones) el 09/06/2019 14:58:15
Hola amigos del foro hace unos meses pedí su ayuda para utilizar vfp con word esto por que un cliente me pidió que quería mandar cartas con datos directamente de la aplicación y hacer facil este proceso de hacer cartas y buscar el cliente tomar los datos que necesita y era una demora.

con el codigo que me mandaron hice las modificación en código que era llamar la tabla y los campos de remplazo aqui esta el codigo:

Pero el problema que solo funciona con word 97 y 2010 perfectamente

Cuando utilizo word 2013 me sale error

solicito su ayuda para poder utilizarlo con los word mas reciente


error

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
*************
lCcarta = ALLTRIM(thisform.sqleditbox1.Value)
 
 
#DEFINE _DOCUMENTO lCcarta 
LOCAL loWord, loDocument
 
*- Crea referencia a Word
TRY
  loWord = GETOBJECT(,'Word.Application')
CATCH
  loWord = CREATEOBJECT('Word.Application')
ENDTRY
 
IF VARTYPE(loWord) <> 'O'
  ERROR 'No se ha podido crear una referencia a WORD'
  RETURN .F.
ENDIF
 
*---------------------------------
* Abre el documento como ReadOnly
*---------------------------------
 
*USE c:\rh2\func_contrato.dbf SHARED && IN 0 ALIAS func_contrato
*SELECT ccabos
****
LCcu1 = "SELECT inup,nomcliente,nomcontra,nomjuzgado,nradica,nomciudad,nitcontra,nomproceso from tdata_t001"
        * and codabop = ?m.PvNitCC"
 lcrdo1 = SQLEXEC (gn1,lcCu1,"cur_dt001")
  if lcrdo1 < 0
     Aerror(verror)
   * wait window 'Error '+
   mMens2 = verror(2)
    =SQLRollback(gn1)
	 mMens1="No se Puede completar la Operación "
	 mOpc = messagebox(mMens1 + mMens2,0+32,"Atencion")
     return
  ENDIF
**************
******  
SCAN FOR !EMPTY(cur_t001.inup) AND RECNO() < 20
    TRY
          loDocument = loWord.Documents.Open(_DOCUMENTO,,.T.)
    CATCH
    *- Cierra instancia de Word
    IF VARTYPE(loWord) = 'O'
         loWord.Application.Quit(0) && Sale sin salvar y sin preguntar
         loWord = .NULL.
    ENDIF
          ERROR 'No se ha podido abrir el documento "' + _DOCUMENTO + '".'
    ENDTRY
*******************
	lfBuscaReplaCadena(loWord.Selection, "<<juzgado>>", cur_dt001.nomjuzgado )
    lfBuscaReplaCadena(loWord.Selection, "<<ciudad>>",	cur_dt001.nomciudad )
    lfBuscaReplaCadena(loWord.Selection, "<<proceso>>",	cur_dt001.nomproceso )
    lfBuscaReplaCadena(loWord.Selection, "<<cliente>>",	ALLTRIM(cur_dt001.nomcliente ))
    lfBuscaReplaCadena(loWord.Selection, "<<ctparte>>",	ALLTRIM(cur_dt001.nomcontra ))
    lfBuscaReplaCadena(loWord.Selection, "<<nit>>",		cur_dt001.nitcontra )
    lfBuscaReplaCadena(loWord.Selection, "<<radicado>>",cur_dt001.nradica )
 
    *****
	* Buscar texto o imagen y reemplazar por otra imagen
	*******
    loWord.Visible = .t.
    loWord.printout()
    wait "Imprimiendo..." window at 15,40 timeout 5
    loWord.documents().close(.f.)
ENDSCAN
loWord.quit(.f.)
RETURN
 
 *********************
esta es la funcion de remplazo
**************************
FUNCTION lfBuscaReplaCadena
LPARAMETERS poSelection, pcValueToFind, pcValueToReplace
*--------------------------------------------------------
*- Busca una cadena y la reemplaza por otra
*-
*- Parametros:
*- poSelection Referencia a la selección a buscar.
*- Ej. oWord.Selection
*- pcValueToFind Valor a buscar
*- pcValueToReplace Valor a reemplazar
*-
*- Devuelve:
*- .t. Si ha podido reemplazar todo
*- .f. Si NO ha podido reemplazar
*-
*--------------------------------------------------------
 
LOCAL llReturn
 
llReturn = .t.
TRY
WITH poSelection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = pcValueToFind
.Replacement.Text = pcValueToReplace
.Forward = .T.
.Wrap= 1
.Execute(,,,,,,,,,,2)
ENDWITH
************
CATCH TO nError
llReturn = .f.
THIS.cDescUltError = 'Ha ocurrido un error en el proceso de reemplazo de texto'
ENDTRY
 
RETURN (llReturn)
 
***********************************
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

word con vfp solo funciona cor word 2010

Publicado por jose camilo (805 intervenciones) el 11/06/2019 05:06:37
debes crear tus plantillas modelos con el formato viejo (.doc) no con el formato nuevo y veras que te funciona en cualquier word,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar