FoxPro/Visual FoxPro - Contenido de Memo a Word

 
Vista:
sin imagen de perfil

Contenido de Memo a Word

Publicado por Diana Said (2 intervenciones) el 25/10/2015 13:28:09
Hola a todos!
Necesito pasar el contenido de un campo memo a un archivo de Word. Yo se que eso se hace con instrucciones de bajo nivel, pero no tengo claro el procedimiento. Agradezco de antemano la ayuda que puedan brindarme al respecto.
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
sin imagen de perfil
Val: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Contenido de Memo a Word

Publicado por Fidel José (657 intervenciones) el 25/10/2015 17:06:50
Diana
Con bajo nivel o con strtofile() no vas a conseguir demasiado.
Necesitas estudiar Automatización a Word. Te dejo un ejemplo, muy elemental por cierto:

Si la tabla se llama "myTable" y el campo memo se llama "comenta"

Copy_To_Word(myTable.Comenta)

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
PROCEDURE COPY_TO_WORD
LPARAMETERS tcString
LOCAL loWord as Object , loDoc as Object,lError
TRY
	LOCAL LOEX AS Exception
	lOWord = CREATEOBJECT("Word.Application")
CATCH TO loEx
	lError = .t.
	=MESSAGEBOX("No se puede procesar el archivo porque no tiene la aplicación"+CHR(13)+;
	      "Microsoft Word instalada en su computador.",0,tH_mensaje)
FINALLY
ENDTRY
IF lError
	RETURN
ENDIF
 
* ? " Agregando un Documento..."
TRY
	loWord.Documents.ADD()
	loDoc = loWord.ActiveDocument
 
	* ? " Configurando Hoja..."
	npar=0
	cmLm=3
	cmRM=3
	nFactor=28.35
	nleftMargin=Int(nFActor*cmLM)
	nTopMargin=int(nFActor*2.6)
 
	with loDoc.PageSetup
		.PaperSize=7
		.topMargin=nTopMargin
		.BottomMargin=int(nFactor*2.5)
		.LeftMargin=nLeftMargin
		.RightMargin=Int(nFactor*cmRm)
		.FooterDistance = int(nFactor*1.5)
		.HeaderDistance = nFActor
	endwith
	with loDoc.Content
   		.InsertAfter(tcString)  && aquí se inserta el texto del parámetro.
    		.InsertParagraphAfter
   	ENDWITH
 
CATCH TO loEx
	*ShowError(loEx)   Rutina de muesta de errores capturados.
FINALLY
	* Ver Garbage
	loWord.visible = .t.
	loWord = null
ENDTRY

En http://comunidadvfp.blogspot.com/ podés encontrar varios artículos que te pueden ayudar. (Buscar "Word" )

Word tiene un manejo por automatización muy complejo pero permite un montón de soluciones, tan elegantes como el esmero y el conocmiento que un le pueda aportar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar