Está en la página 1de 18

TRUCOS EN VFP

1 Imprimir por rangos de paginas y preview


REPORT FORM REPPROP TO PRINT PROMPT PREVIEW NOCONSOLE
Impresión de frente sin imprimir en pantalla
REPO FORM RFACTURA NOCONSOLE TO PRINTER
Impresión de frente pero escogiendo impresora
REPO FORM RFACTURA NOCONSOLE TO PRINT PROMPT

2 Pintar toda una fila en Grid


GRID1 - AfterRowColChange

Thisform.nrecno=recno()
Thisform.Setall('DynamicBackColor','iif(recno()=Thisform.nrecno,rgb(170,226,253),rg
b(255,255,255))','Column')
Thisform.refresh()

PDTA: crear en el FORM propiedad NRECNO

3 Para declarar en VFP9 los F1, en cada caja de texto según el requerimiento de
adicionar.
Text1 - Gotfocus
ON KEY LABEL F1 DO FORM WADICLI1

Text1 – Lostfocus
On Key Label F1

4 cdow(date())+', '+padl(day(date()),2,'0')+' de '+cmonth(date())+' de '+padl(year(date()),4,' ')

y con esto, mis campos fecha se despliegan como 01/01/2002 y mi fecha del dia como
Miercoles, 17 de Julio de 2002
5 DF

1) Deberás seleccionar el grid y cambiar la propiedad HeaderHeight por un valor más grande
(30 por ejemplo).
2) Ve a las propiedades del Header en el que quieres escribir + de 1 linea y cambia la propiedad
WordWrap a True.

En el INIT del Data Environmet del Reporte en cada uno pon esto:

IF WEXIST('Report Designer')
zoom window 'Report Designer' MAX
ENDIF

IF WEXIST('Diseñador de Informes')
zoom window 'Diseñador de Informes' MAX
ENDIF

Reports
http://www.portalfox.com/index.php?
name=News&file=article&sid=1269&mode=nested&order=0&thold=0

http://luismmm.blogspot.com/2008/08/parametros-set.html
http://jgpg07.blogspot.com/2007/04/fox-pro-26.html
http://www.davphantom.net/category.asp?tag=trucos-3/

RE: [vfoxpro] Problemas para imprimir tickets en aplicacion vfp

****chkte el siguiente codigo a mi me sirvio mucho viejo.. espero te sirva

*LCRUTA_IMPRESORA=GETPRINTER()
**LCRUTA_IMPRESORA = "TIKET" && NOMBRE DE LA IMPRESORA.. :D

SET CONSOLE OFF


SET PRINTER TO NAME GETPRINTER( )

*Se Establece la Configuración de Márgenes y otros valores del Documento


LNMARGEN_SUP = 5
LNMARGEN_INF = 5
LN_NCOL = 40

*Se inicializa el codigo de Impresion


??? CHR(27)+CHR(48)+CHR(27)+CHR(67)+CHR(44)
??? CHR(18)+CHR(27)+CHR(77)+CHR(15)
??? CHR(27)+CHR(77)+CHR(20)

*Se imprime el margenSuperior


FOR I=1 TO LNMARGEN_SUP
??? CHR(10)+CHR(13)
ENDFOR

*--------------------------------- ENCABEZADO DEL TIKET


*-123456789-123456789-123456789-123456789-12
??? CHR(10)+CHR(13)+PADC('ESTO ES UNA PRUEBA',LN_NCOL)
*------------------------------ FIN DEL ENCABEZADO DEL TIKET

USE basura
GO TOP
DO WHILE .NOT. EOF()
??? CHR(10)+CHR(13)+DTOC(DATE())
??? CHR(10)+CHR(13)+TIME()
??? CHR(10)+CHR(13)+PADC('GOBIERNO DEL ESTADO DE ************',LN_NCOL)
??? CHR(10)+CHR(13)+PADC('COORDINACION MUNICIPAL DEL PROGRAMA',LN_NCOL)
??? CHR(10)+CHR(13)+PADC('COORDINACION MUNICIPAL DEL PROGRAMA',LN_NCOL)
??? CHR(10)+CHR(13)+REPLICATE("-",LN_NCOL)
??? CHR(10)+CHR(13)+PADC('MUNICIPIO DE XXXXXXX',LN_NCOL)
??? CHR(10)+CHR(13)+PADC('** DATOS DEL VALLE **',LN_NCOL)
??? CHR(10)+CHR(13)+PADC('BENEFICIARIO: ',LN_NCOL)
??? CHR(10)+CHR(13)+ALLTRIM("appat")+' '+ALLTRIM("apmat")+' '+ALLTRIM("nombre")
??? CHR(10)+CHR(13)+PADC('LOCALIDAD: ',LN_NCOL)
??? CHR(10)+CHR(13)+TRANSFORM("localidad",'999')+'-'+ALLTRIM("colonia")
??? CHR(10)+CHR(13)+'VALE POR: '+' '+alltrim("0235")
??? CHR(10)+CHR(13)+'Casa Comercial: '+alltrim("prov")
??? CHR(10)+CHR(13)+'Contacto: '+alltrim("contacto")
??? CHR(10)+CHR(13)+PADC('AUTORIZO:',LN_NCOL)
??? CHR(10)+CHR(13)+PADC('LIC..........:',LN_NCOL)
??? CHR(10)+CHR(13)+PADC('PUESTO',LN_NCOL)
??? CHR(10)+CHR(13)+REPLICATE("-",LN_NCOL)

SKIP
ENDDO
STORE 0 TO m.cualinfo

FOR I=1 TO LNMARGEN_INF


??? CHR(10)+CHR(13)
ENDFOR

*Configuración Terminal de Impresion


CLOSE PRINT
SET CONSOLE ON
SET PRINTER TO

Cambiar caracter ascii a letra nomal


SELE CLIBAK
BROW
LCASCII="¥"
UPDATE CLIBAK SET C_NOMBRE = STRTRAN(C_NOMBRE,LCASCII,"Ñ")

STORE 'abracadabra' TO gcString
? STRTRAN(gcString, 'a', 'z')  && Displays zbrzczdzbrz
? STRTRAN(gcString, 'a', 'q', 2, 3)  && Displays abrqcqdqbra

ThisForm.Text1.ImputMask = 999-9999
ThisForm.Text1.MaxLen = 8
propiedad inputmask !!!!999999XXX (caractnumerootroscaracteres)
propiedad format C

• (ALT+7)

Redimensionar formulario (principal) según resolucion de pantalla.

En el evento INIT() del formulario, colocá un código como éste:

*--Dimensiones
THIS.Height = SYSMETRIC(22)
THIS.Width = SYSMETRIC(1)
**--
THISFORM.AutoCenter = .T.
**--
THISFORM.Top = 0
**--//

Opc
_screen.addobject("oImg", "image")
_screen.oImg.picture = "c:imagen.jpg"

PARA OCULTAR TOOLBAR STANDAR en español


IF WEXIST("Estándar")
HIDE WINDOWS "Estándar"
ENDIF
En ingles
IF WEXIST("Standar")
HIDE WINDOWS "Standar"
ENDIF

Para ver Propiedades de servidor de impresoras en Windows 7 , ejecutar commando


printmanagement.msc
(Inicio - Ejecutar). Esto nos servirá para ver donde se encuentran instalados nuestros
drivers, para hacer una limpieza de controladores antiguos, etc
En Windows XP accediamos a través del panel de control - Impresoras y faxes - Click en
archivo y vamos a propiedades del servidor.
Prueba a ingresar directamente. Para ello presiona en Inicio, Todos los programas, Accesorios,Ejecutar. En el
cuadro que aparece tipea:
printmanagement.msc

printmanagement.msc

http://www.solvusoft.com/es/files/error-falta-descarga/msc/windows/microsoft/msdn-disc-
3715/printmanagement-msc/

http://msdn.microsoft.com/es-pe/library/cc450489(v=vs.71).aspx

http://www.fpress.com/revista/Num9905/Barras.htm

cambiar de xlsx a xls online


https://sheet.zoho.com/view.do?file=import
https://sheet.zoho.com/excelviewer
http://www.zamzar.com/es/convert/xlsx-to-xls/
http://www.docspal.com/
http://www.convertfiles.com/convert/document/XLSX-to-XLS.html
http://comunidadvfp.blogspot.com/p/indice.html

http://jgpg07.blogspot.com/2007/04/fox-pro-26.html

BLOQUEAR TASK PANE MANAGER EN VFP


https://www.berezniker.com/content/pages/visual-foxpro/how-disable-task-pane-manager

Either of below will disable Task Pane Manager launch on VFP startup:

 Click on the Task Pane's Options, Select Task Pane Manager in the treeview and uncheck Open the
Task Pane when Visual FoxPro starts
 Go to Tools, Options, File Locations and clear Startup Program. Click on Set As Default to save
changes.
 In the RegEdit go to
the HKEY_CURRENT_USER\Software\Microsoft\VisualFoxPro\9.0\Options key and blank out Data
for Value Name_STARTUP.
 Add _STARTUP= to a config.fpw. Only VFP instance that uses this config.fpw will be affected.

La normal: descargar los runtime desde la web de Microsoft. Son VFP9SP0RT y


VFP9SP2RT (9 a secas y 9SP2 respectivamente) e instalarlos en cada PC.
La mejor: crear un instalador usando el InstallShield que trae VFP. Así te aseguras que se
instalan librerías, el ejecutable, y otros componentes como activeX que pueda usar el
programa y que se te pasan por alto normalmente

vfp9esn.dll
vfp9r.dll
vfp9resn.dll
vfp9run.exe
vfp9t.dll
en el directorio c:\windows\system32 en el caso de xp y vista
c:\winnt\system32 en el caso de win2000 o en c:\windows\system para win98 y ME

Tienes que copiar en la carpeta windows\system32 o si quieres estar más seguro que
funcione, en la carpeta de la aplicación los siguientes archivos:

(runtime)
vfp9r.dll
vfp9t.dll

(Idioma)
vfp9renu.dll
(Utilidades)
msvcr71.dll
gdiplus.dll

vfp9r.dll, vfp9renu.dll, vfp9resn, msvcr71.dll y msvcr70.dll

IMPRIMIR INFORMES EN DIFRETNES IMPRESORAS

**--ALTERNATIVA 1-- **
** Cuando vayas a imprimir facturas "elaboradas":
set printer to name PC1\IMPRESORAUNO
report form FACTURA to printer

** Cuando vayas a imprimir reportes


set printer to name PCotro\IMPRESORAOTRA
report form LISCLIENTES to printer

**--ALTERNATIVA 2-- **

** Obtener configuración de impresoras (o sea traer el dato grabado en alguna parte)


cImprFac = TraerImpr("FACT")
cImprRep = TraerImpr("REP")

** Cuando vayas a imprimir facturas "elaboradas":


set printer to name (cImprFac)
report form FACTURA to printer

** Cuando vayas a imprimir reportes


set printer to name (cImprRep)
report form LISCLIENTES to printer

http://www.davphantom.net/category.asp?tag=visual-fox-pro-2/page5/

COMANDOS DE VISUAL FOX PRO

 Para cambiar de directorio de trabajo:


o SET DEFAULT TO ruta de directorio.
 Ejemplo: SET DEFAULT TO c:/sistemas/facturación

 Limpiar la pantalla principal de Visual Fox Pro:


o CLEAR.
 Mostrar los archivos del directorio:
o DIR
 Ejemplos: DIR
 DIR*.TXT
 DIR C:/MIS DOCUMENTOS/FACTURACIÓN
 Para apagar la conexión o platica de VFP:
o SET TALK OFF
Esto se hace porque al borrar, crear índices, etc. En la pantalla VFP se va mostrando los resultados, es
por eso que un programa se debe incluir.

 Para cambiar el formato de la fecha:


o SET DATE TO formato
 SET DATE TO DMY
 SET DATE TO MDY
 SET DATE TO BRITISH

 Para salir de VFP:


o QUIT

 Para cancelar la ejecución de un programa:


o CANCEL

 Para abrir una base de datos:


o OPEN DATABASE Nombre de la base de datos.
 Ejemplo: OPEN DATABASE facturación

 Para Cerrar una Base de Datos:


o CLOSE DATABASES

 Para abrir una Tabla:


o USE Nombre de la tabla.
 Ejemplo: USE facturación

 Para abrir una base de datos:


o OPEN DATABASE Nombre de la base de datos.
 Ejemplo: OPEN DATABASE facturación
 USE facturación ORDER TAG producto
(Seleccionando el índice al abrir la tabla para no usar set order)

 Para cerrar una tabla:


o USE

 Para cerrar todas las tablas:


o CLOSE TABLES

 Agregar un registro en blanco:


o APPEND BLANK

 Eliminar registros:
o DELETE
 Ejemplo: DELETE (BORRAR ACTUAL)
 DELETE ALL (BORRAR TODOS)
 DELETE FOR DEPTO=”0132” (BORRAR SOLO LOS DE ESE
DEPTO).
 DELETE NEXT 5 (BORRAR LOS SIGUIENTES 5 DESPUÉS DEL
ACTUAL)

 Recuperar registros marcados como borrados:


o RECALL
 Ejemplo: RECALL (RECUPERAR ACTUAL)
 RECALL ALL (RECUPERAR TODOS)
 RECALL FOR DEPTO=”0132” (RECUPERAR SOLO LOS DE ESE
DEPTO).
 RECALL NEXT 5 (RECUPERAR LOS SIGUIENTES 5 DESPUÉS
DEL ACTUAL)
 Eliminar los registros borrados como marcados:
o PACK
o
 Eliminar todos los registros definitivamente (ya no se pueden recobrar):
o ZAP
o
 Para ir al ultimo registro de la tabla:
o GO TOP

 Para ir al ultimo registro de la tabla:


o GO BOTTOM

 Para ir a un Registro especifico:


o GO numero del registro
 Ejemplo: GO 10

 Para brincar de Registro:


o SKIP
 Ejemplo: SKIP 1 (Brincar 1 registro hacia delante)
 SKIP -1 (Brincar 1 registro hacia atrás)

 Para abrir una o varias tablas (Áreas de trabajo):


o SELECT
SELECT Área de Trabajo (Número o Letra)
USE TABLA
 Ejemplo: SELECT A
USE Facturación
 Ejemplo: SELECT B
USE Cliente
O
USE Facturación in A
USE Proveedores in B

 Para cambiar de Área de Trabajo:


o SELECT
SELECT Área de Trabajo
 Ejemplo: SELECT A
 Ejemplo: SELECT Clientes

 Para establecer el índice de Trabajo:


o SET ORDER TO Nombre de Índice
 Ejemplo: SET ORDER TO nombre
USE Facturación
 Ejemplo: Para no utilizar ningún índice de Trabajo:
SET ORDER TO

 Para establecer Filtros de Condición:


o SET FILTER TO Condición del Filtro
 Ejemplos: SET FILTER TO sueldo > 1000
SET FILTER TO sueldo >= 1000 . and. sueldo <= 3000
SET FILTER TO sueldo = 1000 . or. sueldo = 2000
SET FILTER TO depto < > “0004” . and. (sueldo = 1000 .or. sueldo
= 2000)
Primero se evalúan las que están en paréntesis y después las que están
fuera.

 Para buscar información sin índice activo:


o LOCATE FOR Condición de búsqueda
 Ejemplos: LOCATE FOR numero_empleado = “09499”

 Para buscar información con un índice activo:


o SEEK Información a buscar (variable, numero o cadena de texto)
 Ejemplos: SEEK “09499”
SEEK num_empleado
SEEK 1235
Para esto ha de haber un índice activo con SET ORDER TO o haber abierto la tabla con la opción
ORDER TAG nombre del índice.

 Examinar la información:
o BROWSE
 Ejemplos: USE empleado
BROWSE
0
BROWSE FIELDS clave, nombre, sueldo (aquí se omitió el depto)
0
BROWSE FOR depto = “0003” (solo ese depto)
Aquí se pueden utilizar una mezcla de todas.

 Listar registros en Pantalla:


o LIST [Campos] (opcional)
 Ejemplos: LIST (Lista todos los campos en pantalla)
LIST clave, nombre, sueldo (Lista solo esos Campos)
LIST FOR depto = “0012” (Lista solo de ese depto)
LIST OFF (Listar sin el numero de registro)
Aquí se pueden utilizar una mezcla de todas, la única desventaja es que si son demasiados registro, y se
despliegan todos, y recorre los primeros registros hacia arriba y ya no se pueden ver.

 Listar registros hacia la impresora:


Igual que la anterior solo que al final de la instrucción se le agrega TO PRINT
 Ejemplos: LIST clave, nombre, sueldo TO PRINT

 Desplegar registros en Pantalla:


Para esto solo sustituye la instrucción LIST por DISPLAY
Con esto se tiene la ventaja de que cuando se llama la pantalla de registros, el VFP hace una
pausa para que los puedas leer y después continuar.

 Modificar la estructura de una tabla:


MODIFY STRUC

 Desplegar en Pantalla o Impresora la Estructura de una Tabla:


DISPLAY STRUCT
O
DISPLAY STRUCT TO PRINT

FUNCIONES ESTABLECIDAS POR VFP


https://msdn.microsoft.com/es-pe/library/cc450489(v=VS.71).aspx

EXPORTAR TABLAS SQL A EXCEL


https://sqlbak.com/blog/export-sql-table-to-excel/
http://www.taringa.net/posts/apuntes-y-monografias/15809607/Importar-muchos-datos-de-
SQL-a-un-archivo-EXCEL-Rapidamente.html
https://www.youtube.com/watch?v=Gkh4hXAiekk

2. Safe and secure


This option works great when you don’t have access to both SQL Server Management Studio and Excel on the
same machine.
In order to export data from one or multiple tables in either a custom way or just export all data, this is the option
to use.
Going into SSMS and right clicking on the database and then going to Tasks you will see a option called Export
Data, which you will have to click.

After clicking Export Data, a new window will appear where you will have to select the database from where you
want the data exported.
After selecting the Data Source you’ll press Next and get to a window where you will have to select the Data
Destination.
You will have a drop-down menu, like the one you can see below where you will have to select Excel as
destination type.
The next step would be to browse to the location of where the file will be created and input its name. Also, you
should select the version of Excel you want the file to be created for.
Press Next and get to the next Wizard window where you have the option of either running a custom query to
output custom data from your tables, or just select all data from more tables.
Choose whatever version works best for you, but for now let’s just say you
want to export all data from a specific table and thus you’ll choose the first
option.

The next window you will see will have you select the table or tables you
want to select data from. Select the table you want to expor data from and
either press Next or Edit Mappings.
Press Next to get to the next step of the wizard. You will get to a window
where you have the option of running the query “Right Now” and also create
an SSIS package.
After you’ve selected the options you’d like, press Next. You will get to the
last window of this wizard where you will have to press Finish.

This will create the export file to the file path you specified with the file
name you have selected.

If we go to review the file, you can see that the data is in that specific
format.

COMO COMPARTIR UNA IMPRESORA EN RED

http://windows.microsoft.com/es-419/windows/share-printer#1TC=windows-7
El uso compartido de una impresora requiere algunos pasos. En primer lugar, en el equipo al cual está conectada
la impresora, realice los siguientes pasos.

Para activar el uso compartido de archivos e impresoras

1. Para abrir Configuración de uso compartido avanzado, haga clic en el botón Inicio y, a
continuación, haga clic enPanel de control. En el cuadro de búsqueda, escriba red, haga clic en Centro
de redes y recursos compartidos y, a continuación, haga clic en Cambiar configuración de uso
compartido avanzado, en el panel izquierdo.
2. Haga clic en las comillas angulares para expandir el perfil de red actual.

3. Si el uso compartido de impresoras está desactivado, en Compartir archivos e impresoras,


seleccione Activar el uso compartido de archivos e impresoras y, a continuación, haga clic en Guardar

cambios. Si se le solicita una contraseña de administrador o una confirmación, escriba la


contraseña o proporcione la confirmación.

Ahora debe compartir la impresora.

Para compartir la impresora

1. Para abrir Dispositivos e impresoras, haga clic en el botón Inicio y, a continuación, en el menú
Inicio, haga clic enDispositivos e impresoras.

2. Haga clic con el botón secundario en la impresora que desea compartir y, a continuación, haga
clic en Propiedades de la impresora.

3. Haga clic en la ficha Compartir y seleccione la casilla Compartir esta impresora.

Ahora otras personas de la red pueden conectarse a esta impresora. Solamente tienen que agregar una
impresora de red (su impresora) a sus equipos.

Para agregar una impresora de red

1. Para abrir Dispositivos e impresoras, haga clic en el botón Inicio y, a continuación, en el menú
Inicio, haga clic enDispositivos e impresoras.

2. Haga clic en Agregar una impresora.

3. Haga clic en Agregar una impresora de red, inalámbrica o Bluetooth, haga clic en la
impresora compartida, haga clic en Siguiente y siga las instrucciones que aparecen en pantalla.