Tecnologia, programação e muito Visual FoxPro.

sexta-feira, 24 de fevereiro de 2012

Re: [usuarios_fox] Re: Pueden ayudarme a usar el Append from type xls

 

Excelente, muchas gracias ahora me cuesta estudiarlo, pero una pregunta yo debo declarar primero todos los campos de mi archivo en excel?

     D. Arias.


________________________________
De: Hernán Delgado <hernan@quakerchem.com>
Para: "usuarios_fox@yahoogrupos.com.mx" <usuarios_fox@yahoogrupos.com.mx>
Enviado: Viernes, febrero 24, 2012 3:16 P.M.
Asunto: Re: [usuarios_fox] Re: Pueden ayudarme a usar el Append from type xls

Demetrio,

A ver si este ejemplo es lo que buscas. Hay que definir la tabla de lo
que vas a recibir.

Saludos desde Mexico

Hernan E. Delgado

xArchivo="g:\Cot15Feb2010.xls"
xTabla="Hoja1"
*!*    IF USED("&xTabla")
*!*      SELECT("&xTabla")
*!*      USE
*!*    ENDIF
*!*    USE &xTabla IN 0
CREATE CURSOR (xTabla) ;
      (codigo_cli c(6), ;
      clinombre c(40), ;
      NoFormula c(10), ;
      Producto c(40), ;
      Presentacion c(15), ;
      capacidad N(6,0), ;
      unidad c(2), ;
      Fecha D, ;
      Flete c(30), ;
      Moneda c(8), ;
      precio N(15,4), ;
      Cotizacion c(6), ;
      NewPrice N(15,4), ;
      Inc N(15,4))

loExcel = CREATEOBJECT("Excel.Application")
WITH loExcel.Application
  .Visible = .T.
  .Workbooks.Open("&xArchivo")
  * Cantidad de columnas o campos
  lnCol = .ActiveSheet.UsedRange.Columns.Count
  * Se resta la cantidad de filas donde estan los campos
  lnFil = .ActiveSheet.UsedRange.Rows.Count - 1
  FOR lnJ = 2 TO lnFil
      SELECT("&xTabla")
      APPEND BLANK
      FOR lnI = 1 TO lnCol
        xCampo = .ActiveSheet.Cells(1,lnI).value    &&Nombre del
campo destino
        xTipoCampo = TYPE((FIELD(lnI)))    && Se obtiene el tipo de
campo
        xValor = .ActiveSheet.Cells(lnJ,lnI).value    && Se obtiene
el valor del campo
*!*            xTipoCampo = varTYPE(xValor)    && Se obtiene el tipo
de campo
*!*            ?? varTYPE(xvalor)
*!*            ?? xCampo + ": "    &&Muestra el nombre del campo
*!*            ?? xValor          &&Muestra el valor del campo
        DO CASE
            CASE xTipoCampo = "D"
                IF ISNULL(xValor)
                    REPLACE (FIELD(lnI)) WITH CTOD("  /  /  ")
                ELSE
                    *REPLACE (FIELD(lnI)) WITH TTOD(xvalor) IN &xTabla
                    REPLACE (FIELD(lnI)) WITH Car2Fecha(xvalor) IN
&xTabla
                ENDIF
            CASE xTipoCampo = "C"
                IF VARTYPE(xValor) = "N"
                    REPLACE (FIELD(lnI)) WITH
ALLTRIM(UPPER(STR(xvalor))) IN &xTabla
                ELSE
                    REPLACE (FIELD(lnI)) WITH xValor IN &xTabla
                ENDIF
            CASE xTipoCampo = "N"
                IF ISNULL(xValor)
                    REPLACE (FIELD(lnI)) WITH 0 IN &xTabla
                ELSE
                    REPLACE (FIELD(lnI)) WITH xValor IN &xTabla
                ENDIF
               
        ENDCASE
      ENDFOR
  ENDFOR
 
  *Cierro plantilla
  .Workbooks.Close
  *Salgo de Excel
  .Quit
ENDWITH
RELEASE loExcel
SELECT("&xTabla")
BROWSE

*!*    xx = "07-Jun-94"
*!*    ? Car2Fecha(xx)
Function Car2Fecha (cFecha as Character)
LOCAL cDia,cMes,cAno
cDia = SUBSTR(cFecha,1,2)
cMes = SUBSTR(cFecha,4,3)
cAno = SUBSTR(cfecha,8,2)
DO CASE
  CASE cMes = "Jan"
        nMes = 1
  CASE cMes = "Feb"
        nMes = 2
  CASE cMes = "Mar"
        nMes = 3
  CASE cMes = "Apr"
        nMes = 4
  CASE cMes = "May"
        nMes = 5
  CASE cMes = "Jun"
        nMes = 6
  CASE cMes = "Jul"
        nMes = 7
  CASE cMes = "Aug"
        nMes = 8
  CASE cMes = "Sep"
        nMes = 9
  CASE cMes = "Oct"
        nMes = 10
  CASE cMes = "Nov"
        nMes = 11
  CASE cMes = "Dec"
        nMes = 12
ENDCASE
dFecha =
DATE(IIF(VAL(cAno)>50,1900+VAL(cAno),2000+VAL(cAno)),nMes,VAL(cDia))
RETURN dFecha

>>> Demetrio Arias <artesisa@yahoo.com> jueves, 23 de febrero de 2012
11:19:34 a.m. >>>
Hola!
Gracias por tú cooperación, soy de República Dominicana.
Esta fuente trabaja excelente, pero lo que yo quiero es el caso
alrevez, que desde un Archivo Excel 2007, llevar los datos a una Tabla
de Foxpro Versión 6.0

Si puede seguier ayudandome te lo agradesco.

Muchas Gracias,

    D. Arias.

________________________________
De: Alceu <alceu11@yahoo.com.br>
Para: usuarios_fox@yahoogrupos.com.mx
Enviado: Jueves, febrero 23, 2012 6:44 A.M.
Asunto: [usuarios_fox] Re: Pueden ayudarme a usar el Append from type
xls
 

 

Hola
Soy del Brazil
Saludos
**- Aki uno exemplo
CLOSE DATABASES
IF !FILE('CLIENTE.DBF')
CREATE TABLE CLIENTE (NUMERO N(4,0),NOME_CLI C(30), ENDERECO C(40),
BAIRRO C(20), CIDADE C(30), UF C(2))
SELECT CLIENTE
INDEX on nome_cli TAG cliente
set orde to cliente
FOR I=1 TO 20
INSERT INTO CLIENTE (NUMERO,noME_CLI,ENDERECO) VALUES (I,"CLIENTE
"+STR(I), 'RUA ')
ENDFOR
ENDIF
IF !USED("CLIENTE")
USE CLIENTE IN 0 ALIAS CLIENTE SHARED
ENDIF
SELECT CLIENTE

xFinal = RECCOUNT("cliente")
xInicio = 1
WAIT windows "Aguarde, abrindo o excel e montando a Planilia..." NOWAIT
NOCLEAR
Oexcel=createobject("Excel.application")
Oexcel.workbooks.add
Oexcel.visible=.t.
x = 1
SELECT cliente
GO TOP
DO WHILE x <= xFinal
IF X = 1
Oexcel.cells(x,1).font.size=10
Oexcel.cells(x,1).font.color=rgb(180,0,0)
Oexcel.cells(x,1).font.bold=.t.
OExcel.Range("B1").Value = 500
Oexcel.cells(x,1).value='Tabela de precos' &&xPedidos
ELSE
Oexcel.cells(x,1).font.size=12
Oexcel.cells(x,1).font.color=rgb(0,0,255)
Oexcel.cells(x,1).font.bold=.f.
Oexcel.cells(x,1).value=cliente.NUMERO

Oexcel.cells(x,2).font.size=12
Oexcel.cells(x,2).font.color=rgb(0,0,255)
Oexcel.cells(x,2).font.bold=.f.

Oexcel.cells(x,2).value=cliente.noME_CLI

Oexcel.cells(x,3).font.size=12
Oexcel.cells(x,3).font.color=rgb(0,0,255)
Oexcel.cells(x,3).font.bold=.f.
Oexcel.cells(x,3).value=cliente.endERECO
ENDIF
SELECT cliente
SKIP
x=x+1
ENDDO
WAIT CLEAR

 
     

[Se han eliminado los trozos de este mensaje que no contenían texto]

------------------------------------

Comentarios, observaciones o si deseas darte de baja avísame a:
jamorquecho@hotmail.com

Enlaces a Yahoo! Grupos

------------------------------------

Comentarios, observaciones o si deseas darte de baja avísame a: jamorquecho@hotmail.com

Enlaces a Yahoo! Grupos

[Se han eliminado los trozos de este mensaje que no contenían texto]

__._,_.___
Actividad reciente:
Comentarios, observaciones o si deseas darte de baja avísame a: jamorquecho@hotmail.com

.

__,_._,___

Nenhum comentário:

Arquivo do blog