Foxpro 6.0

La pregunta es esta como llamar desde un menu o un sud menu a una hoja de word y en otro sud menu a execel espero una pronta respuesta gracias

1 Respuesta

Respuesta
1
La llamada a excel o word se limita a abrir un archivo ya sea nuevo o existente, de tal forma que lo más sencillo es que desde un menú o submenú definir la opción como un procedimiento y en este colocar el fuente del llamado a excel o wrod.
Ej.
FUNCTION LLAMARWORD
...
Endfunc
Y en el código del menú o del submenú colocar
LLAMARWORD()
gracias por tu respuesta pero yo he tratado de esa forma
te escribo de la forma que yo lo he echo la cual no me funciona si podrias aclararme
loshell=createobject("shell.application")
loschell.shellexecute("winword.exe")
release loshell
De esta forma he tratado pero solo me funciona desde un command
he tratado con rum pero no lo he logrado espero que me puedas sacas de este problema gracias.
Este es para pasar información de un cursor o tabla a excel
*********************************************************************************************************
FUNCTION rep_excel(lcursor AS STRING, lnombre AS STRING, lDescripcion AS STRING, LDescripcion1 AS String)
*********************************************************************************************************
  *!*       Parametros:
  *!*      lcursor: Nombre del Cursor o Tabla que se va a llevar a excel
  *!*      lnombre: El titulo de la pagina
  *!*
  ************************************
  *!* Program:Rep_excel
  *!* Author: José G. Samper
  *!* Date: 10/09/03 04:08:04 PM
  *!* Copyright: NetBuzo's
  *!* Description: Esta función lleva a una hoja excel el contenido de un cursor
  *! * Colocando un Nombre pasado como parámetro y los nombres de los campos del cursor como encabezado
  *!* Revision Information:1.0
  *!* Ejemplo de Uso: =rep_excel('mitabla','Listado de Artículos con sus Precios')
  *!* Enviar Bugs o sugerencias para mejoras a j_samper(sin)@cantv.net
  *************************************
LOCAL R, lcampo, lpag, lReg AS INTEGER &&&&variable para determinar la página a ingresar los datos por si hay más de 60 mil registros
    IF TYPE('lcursor')#'C' OR !USED(lcursor)
        =MESSAGEBOX("Parametros Invalidos",16,'De VFP a Excel')
        RETURN .F.
    ENDIF
    IF TYPE('lnombre')#'C'
        lnombre=''
    ENDIF
    lpag=1
    *** Creación del Objeto Excel
    WAIT WINDOW 'Abriendo aplicación Excel.' NOWAIT
    Oexcel = CREATEOBJECT("Excel.Application")
    IF TYPE('Oexcel')#'O'
        =MESSAGEBOX("No se puede procesar el archivo porque no tiene la aplicación"+CHR(13)+;
            "Microsoft Excel instalada en su computador.",16,'De VFP a Excel')
        RETURN .F.
    ENDIF
    WAIT WINDOWS 'Procesando Tabla...'+LOWER(lcursor) nowait
    XLApp = Oexcel
    XLApp.workbooks.ADD()
    XLSheet = XLApp.ActiveSheet
    XLSheet.NAME = lnombre + "_" + ALLTR(STR(lpag))
    SELECT(lcursor)
    lcuantos=AFIELDS(lcampos,lcursor)
    lReg = ReCcount()
    GO TOP IN (lcursor)
    R=6
    SCAN
        WAIT WINDOWS STR(RECNO()*100/lReg,5,2) + '% Procesado de la Información' NOCLEAR NOWAIT
        IF R = 65500
            FOR I = 1 TO lcuantos
                lcname=lcampos(I,1)    
                XLSheet.Cells(5,I).VALUE=lcname
                 XLSheet.Cells(5,I).FONT.NAME = "Arial"
                 XLSheet.Cells(5,I).FONT.SIZE = 10
                 XLSheet.Cells(5,I).FONT.bold = .T.
               NEXT
               XLSheet.COLUMNS.AUTOFIT
               XLSheet.Cells(1,1).VALUE= UPPER(lDescripcion)
               XLSheet.Cells(1,1).FONT.bold = .T.
               XLSheet.Cells(2,1).VALUE = FtoL(S_Fecsis)
               XLSheet.Cells(2,1).FONT.bold = .T.
            XLSheet.Cells(3,1).VALUE= lDescripcion1
               XLSheet.COLUMNS.AUTOFIT
               R=6
               lpag=lpag+1
               XLApp.Sheets(lpag).SELECT
               XLSheet = XLApp.ActiveSheet
               XLSheet.NAME=lnombre+"_"+ALLTR(STR(lpag))
         ENDIF
         FOR I=1 TO lcuantos
             lcampo=ALLTRIM(lcursor)+'.'+lcampos(I,1)
              IF TYPE('&lcampo')#'G'
                IF TYPE('&lcampo')='C'
                      XLSheet.Cells(R,I).VALUE=ALLTRIM(&lcampo)
                      XLSheet.Cells(R,I).FONT.NAME = "Arial"
                      XLSheet.Cells(R,I).FONT.SIZE = 10
                ELSE
                      IF TYPE('&lcampo')='T'
                        XLSheet.Cells(R,I).VALUE=TTOC(&lcampo)
                      ELSE
                             IF TYPE('&lcampo')='D'
                            XLSheet.Cells(R,I).VALUE=DTOC(&lcampo)
                        else
                            XLSheet.Cells(R,I).VALUE= &lcampo
                        endif
                      ENDIF
                      XLSheet.Cells(R,I).FONT.NAME = "Arial"
                      XLSheet.Cells(R,I).FONT.SIZE = 10
                ENDIF
              ENDIF
        NEXT
        R=R+1
    ENDSCAN
    FOR I = 1 TO lcuantos
        lcname=lcampos(I,1)
        XLSheet.Cells(5,I).VALUE=lcname    
        XLSheet.Cells(5,I).FONT.NAME = "Arial"
        XLSheet.Cells(5,I).FONT.SIZE = 10
        XLSheet.Cells(5,I).FONT.bold = .T.
    NEXT
    XLSheet.COLUMNS.AUTOFIT
    XLSheet.Cells(1,1).VALUE= UPPER(lDescripcion)
    XLSheet.Cells(1,1).FONT.bold = .T.
    *XLSheet.Cells(1,IIF((lcuantos-1)>0,lcuantos-1,lcuantos)).VALUE=ALLTRIM(DTOC(DATE()))
    XLSheet.Cells(2,1).VALUE=FtoL(S_Fecsis)
    XLSheet.Cells(2,1).FONT.bold = .T.
    XLSheet.Cells(3,1).VALUE = lDescripcion1
    XLSheet.COLUMNS.AUTOFIT
    WAIT WINDOWS 'Listo....' NOWAIT
    Oexcel.VISIBLE=.T.
    RETURN .T.
ENDFUNC
Y este espara abrir un archivo en word
************************************************************************************
FUNCTION word(LcFile)
************************************************************************************
private LoWord
loWord = CREATEOBJECT("Word.Application")
loWord.Documents.Open(lcFile)
loWord.Application.Visible = .T.
RELEASE loWord
RETURN

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas