Portada
Banner
Portada Foros Manuales Enlaces Email
clear1x1.gif clear1x1.gif clear1x1.gif
clear1x1.gif
clear1x1.gif

Portada
Foros
Manuales
Enlaces
Distribuidores
Precios
Sugerencias

Contacto

 

clear1x1.gif clear1x1.gif
 Guía rápida de inicio al GUI de Visual Pro/5 (Parte 62/68)
Primero Previo Próximo Último

...
0170 leer:
0180 READ RECORD(cli,END=final)cli$
0190 LET lin=lin+1
0200 WRITE (xls,KEY="F"+STR(lin)+"C1")cli.codigo$
0210 WRITE (xls,KEY="F"+STR(lin)+"C2")cli.nombre$
0220 WRITE (xls,KEY="F"+STR(lin)+"C3")STR(cli.region)
0230 GOTO leer
0240 REM
0250 xls_no_abierto:
0260 INPUT (0,SIZ=1)"Favor de abrir Excel antes de continuar ",*; GOTO 0030
0270 REM
0280 arch_no_abierto:
0290 RETRY
0300 REM
0310 final:
0320 END

Un poco similar al anterior, el siguiente programa nos enseña como podemos leer los datos en las celdas de una hoja electrónica que necesariamente primero debe ser abierta (cargada en memoria) por Excel. Igualmente al programa anterior, hay que tomar la previsión para los casos en Excel esté en inglés o en español.

0010 REM "Muestra como LEER un archivo de Excel
0020 REM "Se requiere que el archivo Excel exista y que Excel lo tenga abierto
0030 BEGIN
0040 REM "La siguiente linea comprueba que Excel este abierto
0050 LET xls=UNT; OPEN (xls,MODE="DDECLIENT",ERR=xls_no_abierto)"EXCEL:SYSTEM"
0060 INPUT "Dar nombre del archivo de Excel (ENTER=Ninguno): ",arch$:(""=final
0060:,LEN=1,18); IF POS(".xls"=CVS(arch$,8))=0 THEN LET arch$=arch$+".xls"
0070 LET cmd$="[OPEN(""C:\My document1\"+arch$+""")]"+$00$
0080 REM "La siguiente linea carga el archivo indicado en memoria
0090 WRITE RECORD(xls,KEY="DDE_EXECUTE",ERR=arch_no_existe)cmd$
0100 CLOSE (1); REM "Despues de ponerlo en memoria hay que cerrar el canal
0110 REM "La siguiente linea abre el acceso hacia el Excel en memoria
0120 OPEN (1,MODE="DDECLIENT")"EXCEL:c:\My document1\"+arch$
0130 REM "Abajo, para Excel en Ingles debe usar RxCx y para Espanol FxCx
0140 REM
0150 leer:
0160 LET lin=lin+1
0170 READ RECORD(xls,KEY="F"+STR(lin)+"C1")a$
0180 READ RECORD(xls,KEY="F"+STR(lin)+"C2",ERR=final)b$
0190 READ RECORD(xls,KEY="F"+STR(lin)+"C3",ERR=final)c$
0200 PRINT a$,"-",b$,"-",c$
0210 INPUT ":",*
0220 GOTO leer
0230 REM
0240 xls_no_abierto:
0250 INPUT (0,SIZ=1)"Favor de abrir Excel antes de continuar ",*; GOTO 0030
0260 REM
0270 arch_no_existe:
0280 RETRY
0290 REM
0300 final:
0310 END

Para pasar datos desde Pro/5 o Visual Pro/5 hacia Excel también existen otras buenas formas de lograrlo:

1.  Por medio de un archivo de texto en el que se utiliza $09$ como separador de campos. Ese hexadecimal le es más natural a Excel, ya que por 'default' ese es el separador que internamente utiliza.

2.  Por medio de un archivo de texto en el que se utilizan comas como separador de campos y luego 'pegarlo' por medio de los verbos y funciones CLIP...... que ofrece el Visual PRO/5. Funciona muy bien pero tiene el inconveniente de dar problema si existen comas dentro de los datos a ser enviados (como a veces ocurre en las direcciones). Lo que hace Visual Pro/5 con esos mnemónicos es colocarlo en el portapapeles de Windows, y después en Excel se le da clic al botón pegar y listo. Como dije, con anticipación se necesita crear un archivo de texto (String), y enviar el reporte a este archivo con los campos separados por comas. Luego, al finalizar el reporte se cierra el canal del archivo de texto y se le da las siguientes instrucciones, donde Clip$ es igual al nombre del archivo de texto

csv=clipregformat("CSV")
cliplock
clipfromfile csv,clip$
clipunlock

Primero Previo Próximo Último

Portada -- Foros -- Manuales -- Enlaces-- Sugerencias
Para comentarios: webmaster@essnet.com

clear1x1.gif
clear1x1.gif
clear1x1.gif
Portada Email Foros