FoxPro/Visual FoxPro - Creat macro VFP

 
Vista:

Creat macro VFP

Publicado por Henry (31 intervenciones) el 19/01/2012 17:03:12
Hola, agradezco la ayuda o links que me puedan dar.

Deseo lo siguiente:

1. Se como crear una hoja de Excel desde VFP.

Pero no se como crear una hoja de excel e insertarle un txt que tiene el codigo de una macro.

Es lo que busco crear una hoja de excel y salvarla con un macro.

O bien como abrir una hoja de excel y editar y salvar la macro que contiene.

O correr una macro desde un TXT (Macro.txt)

Agradezco la ayuda al respecto.


Saludos,
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

Creat macro VFP

Publicado por Saul (728 intervenciones) el 23/01/2012 19:59:49
HOLA... NO TENGO idea que quieres hacer con el macro, si desde Visual fox lo puedes hacer todo.. revisa este codigo lo que hago es hacer una plantilla en Excel y luego editarla y modificarla desde visual fox..
No se si con esto te ayude.. pero cualquier cosa ala orden..


PRIVATE lcTextFile
lcTextFile = ''
xD = SYS(5)
_Archivo = 'Plantilla_Poliza'

lcTextFile = xd+"\Aperson\Amory\SistemaNew\Excel\"+ _Archivo +".xls"

crutinaerroractual = ON("Error")
lhuboerror = .F.
ON ERROR LHUBOERROR = .T.
oexcel = CREATEOBJECT("Excel.Application")
ON Error &cRutinaErrorActual
IF lhuboerror
nresp = MESSAGEBOX("¿Desea generar una lista sin formato?", 35,"Excel NO esta instalado en esta computadora.")
IF nresp = 6
generacsv()
ENDIF
ELSE
generahojaelectronica()
ENDIF
RETURN
ENDPROC

** Si no Existe excel Quiere mandar a un Archivo
PROCEDURE GeneraCSV
carchivo = GETFILE("Hoja excel:XLS", ;
"Archivo Excel", ;
"Grabar", 0)
IF EMPTY(carchivo)
= MESSAGEBOX("Debe seleccionar un nombre de archivo.",64, "Error")
ELSE
COPY TO (carchivo) TYPE XLS
= MESSAGEBOX("El archivo fue grabado satisfactoriamente",0, "")
ENDIF
ENDPROC

**Cominesa a Generar la Hoja
PROCEDURE GeneraHojaElectronica
*WAIT WINDOW NOCLEAR NOWAIT "Generando la hoja, espere un momento por favor."

oexcel.DisplayAlerts = .F. && Algo asi como SET SAFETY OFF
oexcel.workbooks.Open(lcTextFile)

WITH oexcel.worksheets(1)

** Barre la tabla en el Excel
SELECT CuRepPoliza
GOTO TOP

.range("B1").value = xEmpresa
.range("C4").value = CuRepPoliza.numero_cpc
.range("F4").value = CuRepPoliza.fecha_cpc
.range("C6").value = CuRepPoliza.grupol_cpc+" "+CuRepPoliza.Nombre_Cg

j = 9
jj = 8
jjj = 8

nExplica = ALLTRIM(cuRepPoliza.razon_epl)
nTotCar = 0.00
nTotAbo = 0.00

SCAN ALL

cj = ALLTRIM(STR(j, 10,0))

.range("B" + cj).value = "'" +TRANSFORM(CuRepPoliza.Codcue_dpc, "@R " + _cmascara)
.range("D" + cj).value = ALLTRIM(CuRepPoliza.nombre_cta)
.range("G" + cj).value = CuRepPoliza.codcdc_dpc

IF CuRepPoliza.cargos > 0
.range("E" + cj).value = CuRepPoliza.cargos
ENDIF
IF CuRepPoliza.abonos > 0
.range("F" + cj).value = CuRepPoliza.abonos
ENDIF

nTotCar = CuRepPoliza.cargos + nTotCar
nTotAbo = CuRepPoliza.abonos + nTotAbo

j = j + 1

**- Se Agranda el Formato inserta una linea
IF j > 12
oexcel.Rows(j).Insert
ENDIF

ENDSCAN

IF j < 13
j = 14
ELSE
oexcel.Rows(j).delete
j = j + 1
ENDIF

*-Totales
cj = ALLTRIM(STR(j, 10,0))
.range("E" + cj).value = nTotCar
.range("F" + cj).value = nTotAbo

j = j + 2
cj = ALLTRIM(STR(j, 10,0))

*- Explicacion
.range("C"+cj).value = nExplica

ENDWITH

*-Impresion
oexcel.visible = .t.

*!* oexcel.activeworkbook.printout()
*!* oexcel.application.quit

*-Desconectar
RELEASE oexcel
ENDPROC
**
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