You are on page 1of 11

Subir

Acceder
Registrarse
Buscar
Explore
Documentos
Libros: ficcinLibros: no ficcinSalud y medicinaFolletos o catlogosDocumentos del
gobiernoManuales y guas prcticasRevistas y diariosRecetas y mensMaterial acadmico+
todas las categoras
RecientesDestacado
Personas
AutoresEstudiantesInvestigadoresEditorialesGobierno y entidades sin fines de
lucroEmpresasMsicosArtistas y diseadoresProfesores+ todas las categoras
Los ms seguidosPopular

You are viewing Scribd in Spanish. Change your language preference here.
Idioma:
Espaol
Download
1
Go BackComment
Link
Embed
de 48
Readcast
0inShare

LOS TRUCOS AQUI MOSTRADOS HAN SIDO RECOPILADOS DE VARIAS PAGINAS Y NO


SON PROPIEDAD INTELECTUAL DEL AUTOR DE ESTE BLOG, HAN SIDO RECOPILADOS
CON EL FIN DE QUE SIRVAN COMO AYUDA A MUCHOS PROGRAMADORES.Mostrar un

reporte dentro de un formularioExcelente truco con el cual podrs mostrar tu reporte en un


formulario.oRep =Createobject("Form")With oRep.Caption= "Titulo del Reporte".WindowState=
2.Show()EndwithReport Form MiReporte.frx Preview Window (oRep.Name)Hacer que hable el
PCExcelente truco que utiliza el objeto COM SAPI que viene con WinXP el cual "pronuncia" lo
que le escribas.oVoz = CreateObject("SAPI.SpVoice")oVoz.Speak("Visual fox
Pro")oVoz.Speak("Lo mejor")Extraer informacin de los MP3Quieres conocer la informacin de
los archivos MP3 ?? ... autor, titulo, lbum, ao ...lnFile = Fopen(Getfile())Fseek(lnFile,
-128,2)lcTag = Fread(lnFile, 128)? "Titulo: ", Strtran(Substr(lcTag,4,30), Chr(0))? "Artista: ",
Strtran(Substr(lcTag,34,30), Chr(0))? "Album: ", Strtran(Substr(lcTag,64,30), Chr(0))? "Ao: ",
Val(Substr(lcTag,94,4))Fclose(lnFile)Suprimir ventana "Imprimiendo" en VFP 8Uno de las
nuevas caractersticas incorporadas en VFP 8, si deseas puedes impedirque se vea la ventana
"Imprimiendo" que se muestra cuando ejecutas un reporte.Report Form NombreReporte To
Printer Prompt NODIALOG PreviewNombre del dominio en que se logeo el PCp
align="justify">Un pequeo truco para cuando quieras determinar en que dominio se logeo un
determinado PC.? GetEnv("USERDOMAIN")Determinar si una unidad de red esta
disponibleEsta es la forma ms sencilla para determinar si un equipo de la red esta encendido
o si esta disponible una determinada unidad de red.Si la unidad esta disponible se devolver -1
y si la unidad no existe o esta apagado el PC entonces devolver -1?
DISKSPACE("\\NombreServidor\C\")Compactar base de datos de Access desde VFPMuy buen
truco que permite compactar una base de datos de Access desde VFP.oJE =
CreateObject("JRO.JetEngine")oJE.CompactDatabase("Data Source=" + "d:articulos.mdb",
"Data Source=" + "d:articulos1.mdb")Los parmetros para el mtodo CompacDatabase son los
siguientesPrimer parmetro"Data Source=" + "ruta de la base de datos a compactar"Segundo
parmetro"Data Source=" + "ruta de la nueva base de datos compactada"
Insertando registros en Access desde VFPEste es un ejemplo bsico pero bueno de como
interactuar con una base de datos deAccess desde VFP.cStrConn = "DRIVER={Microsoft
Access Driver (*.mdb)};" +;"Dbq=C:somedata.mdb;" +;"Uid=usuario;"
+;"Pwd=password;"lnAccess = SQLSTRINGCONNECT(cStrConn)If lnAccess >
0SQLEXEC(lnAccess, "INSERT INTO NombreTabla (campo1, campo2) VALUES(00001,
485745)")Else=MessageBox("No fue posible conectarse a la Base de Datos")EndIfImprimir el
contenido de un RTFEl RTF es un control ActiveX que permite dar caractersticas al texto al
estilo deWord. En el ejemplo se muestra como imprimir el contenido de este ActiveX.Para
imprimir el contenido debes utilizar el mtodo SelPrint del control RTF ...With
Thisform.Rtf.selstart=1.sellength=len(.textrtf).selprintDesplegar el Contenido de un ComboEn
ocasiones queremos conocer el contenido de un ComboBoX sin hacer click en l, solamente a
lo que l recibe el enfoque. Esta es la forma ms fcil de hacerlo.KEYBOARD _{F4}_ En este
caso agregamos este cdigo al evento GOTFOCUS( ) y cuando el Combo recibael enfoque
entonces este se desplegara mostrando la informacin contenidas en l.Desplegar un
ComboBox al recibir el Enfoque IIEn realidad muchas veces deseamos hacer esto, pero lo
pensamos bastante y no encontramos la forma de hacerlo. Por fin aqu esta su
implementacin.Crea un formulario y agrgale un Combo y un Botn. Al hacer click en el botn
debe desplegarse automticamente el Combo.Programa lo siguiente en el evento Gotfocus del
CombotColumna = THISFORM.Combo1.Left + THISFORM.Combo1.Width - 4tFila =
THISFORM.Combo1.Top + 2MOUSE CLICK AT tFila, tColumna PIXELS WINDOW
(THISFORM.Name)En el evento Click del botn que creaste llama al evento Setfocus() del
combo, As:Thisform.combo1.Setfocus()Quitar acentos de una cadenas de caracteresAlgunas
veces los acentos son algo molestos y nos causan inconvenientes, sobre todo al momento de
realizar bsquedas dentro tablaslCadena = "El amor es el perdn ms fcil"?
CHRTRAN(lCadena, "", "aeiouAEIOU")Agregar imagen al _ScreenEn ocasiones
queremos que en el fondo de nuestras aplicaciones, es decir en el _ screen se vea el logo de
nuestro programa o de la empresa. Este es un buen trucopara personalizar las aplicaciones.
_screen.addobject("oImg", "image") _screen.oImg.picture = "c:imagen.jpg" _screen.oImg.visible
= .T. _screen.oImg.stretch = 1 _screen.oImg.width = 800 _screen.oImg.height = 600
Quitar botones de la barra del PreviewTruco indispensable si deseas quitar algunos botones de
la barra del preview e impedir as que se imprima desde ah o se seleccione alguna
opcin.Bueno para realizar este truco te recomiendo cierres todo. Ahora ve al men VER, luego
a ToolBars (Barra de herramientas), luego selecciona la barra Print Preview(VISTA
PRELIMINAR) y ahora haz click en Customize (PERSONALIZAR). Ahora la barra te aparecer
deshabilitada detrs de ventana de personalizacin, ve a la barra y conclick sostenido quita

todos los botones que quieras y listo la configuracin se guardara en Foxuser.dbfSi deseas que
el usuario final no pueda accederSolucionar problemas de Memoria con WinXPEvitar el error
de Memoria en XP al ejecutar comandos de D.O.SEdita el archivo SYSTEM.INI, en la seccin
386ENH agrega la siguiente linea:PerVMFiles = 80Invocar cuadros de dialogo de
WindowsExiste una forma sencilla de invocar cuadros de dialogo de Windows, tales
como:Guardar, Abrir, Fuentes, Color, Impresoras, Ayuda.loComDialog =
newobject( "mscomdlg.commondialog" )locomdialog.ShowFont && Mostrar
Fuentelocomdialog.ShowPrinter() && Mostrar Impresoralocomdialog.ShowColor() && Mostrar
Coloreslocomdialog.ShowSave() && Mostrar GuardarloComDialog.ShowOpen && Mostrar
AbrirUnidad y serial lgico de las unidades de discoDe una unidad de disco es posible obtener
2 seriales: el de fabrica y el que leasigna el sistema operativo; en este ejemplo se devuelve el
serial del sistema operativo.objWMI = Getobject("winmgmts:\\")cCadWMI = "Select * from
Win32_LogicalDisk"oSistema = objWMI.ExecQuery(cCadWMI)For Each Disco In oSistema?
"Unidad: " + Disco.Name + " Serial: " + Disco.VolumeSerialNumberNextCancelar todos los
trabajos en impresinAqu tienes un ejemplo de como cancelar los trabajos que se esten
imprimiendo utilizando WMI.objWMI = GetObject("winmgmts:\\")cCadWMI = "Select * from
Win32_Printer Where Name = 'Canon S200'"objImp = objWMI.ExecQuery(cCadWMI)For Each
objPrinter in objImpobjPrinter.CancelAllJobs()NextInformacin del tiempo localUtilizando WMI
para conocer el da, mes, ao, da del mes, nmero de semana en el mes, minutos,
segundos.... etc.objWMI = GetObject("winmgmts:\\")cCadWMI = "Select * from
Win32_LocalTime"oTime = objWMI.ExecQuery(cCadWMI)For Each oLocal in oTime? "Da: " +
Transform(oLocal.Day)? "Da de la semana: " + Transform(oLocal.DayOfWeek)
? "Hora: " + Transform(oLocal.Hour)? "Minutos: " + Transform(oLocal.Minute)? "Mes: " +
Transform(oLocal.Month)? "Segunds: " + Transform(oLocal.Second)? "Semana en el mes: " +
Transform(oLocal.WeekInMonth)? "Ao: " + Transform(oLocal.Year)NextMandar un reporte a
una impresora especifica* Beginning of program for Example 1 *
******************************************************** This program assumes a report called Test
which has been* saved with the default printer in the Print Setup dialog.* LOCAL
lcPrinterlcPrinter = ''lcPrinter = GETPRINTER()IF !EMPTY(lcPrinter)SET PRINTER TO NAME
(lcPrinter)REPORT FORM Test TO PRINTER NOCONSOLEELSEWAIT WINDOW 'Print Job
Cancelled' TIME 1ENDIF *IMPRIMIR EN UN PUERTO USBPrinting to USB Printers from
FoxPro 2.6There are several solutions, depending on your configuration.1. If you are using a
shared printer on another computer, you shouldn't have a problem. Share it from the other
computer, and point to it from the FoxPro 2.6 computer.2. To print to a USB printer on the
FoxPro 2.6 computer. On Windows XP and 2000,you can share the printer, then use a NET
USE command to redirect LPT1 to the shared printer. This is like the Novell capture
sequences.Install the printer and share it. You may need to set permissions to allow
Authenticated Users to use the printer.Add NET USE LPT1: \\CRAIG\USBPRINTER to the
logon script for the user's profile. For help on logon scripts, look up "To assign a logon script to a
profile" in XPHelp.3. To print to a USB printer on the FoxPro 2.6 computer. On Windows XP, you
canuse printer pooling.Install the USB printer on the computer.Install a local printer on LPT1
(works best, or LPT2). Don't have XP search, butpick the printer by brand. Let it be similar or
common printer you recognize.Now select printer properties for the new LPT1 (virtual) printer.
On the ports tab, put checks for the LPT1 (for the virtual printer) and the USB for the real printer.
Now choose Enable printer pooling. The DOS drivers will print to LPT1. Since XP pools the
ports, the output will then be directed to the USB printer.Good luck!If this was helpful, send me
( craigr@computer-u.com ) an email.Joost Dekker of the Netherlands says "It works."Comprimir
con WinZIPPuedes utilizar WinZIP para comprimir archivos desde VFP.oZip =
CreateObject("WScript.Shell")oZip.Run("Winzip -a -r -p -ex c:\archivo.zip
c:\Dir_a_Comprimir\*.*", 0,.T.)Release oZipoZip = NullLeer archivo INIUna alternativa muy
frecuente para almacenar algunos datos de tu aplicacin son los archivo INIs ... aqu tienes la
forma de leer las entradas de estos archivos.
Para el ejemplo crea un archivo INI llamado "archivo.ini" en c: y agrgale los siguientes datos:
[RUTADB]Directorio =C:MiProgramaDBAhora si desde VFP quisiramos conocer el valor
almacenado en la entrada Directorio deberamos hacerlo as:?
LeerIni("RutaDB","Directorio","c:archivo.ini")Function LeerIni(cSection, cEntry, cINIFile)LOCAL
cDefault, cRetVal, nRetLencDefault = ""cRetVal = Space(255)nRetLen =
LEN(cRetVal)DECLARE integer GetPrivateProfileString IN WIN32API ;STRING cSection, String
cEntry, ;STRING cDefault, STRING @cRetVal, ;INTEGER nRetLen, STRING cINIFilenRet =

GetPrivateProfileString(cSection, cEntry, cDefault, ;@cRetVal, nRetLen, cINIFile)Return


Left(cRetVal, nRetLen)EndFuncDesplazamiento con "ENTER" en gridPor defecto cuando
presionamos "Enter" en un grid este se desplaza a la siguiente columna, pero podemos hacer
que se desplace al siguiente registro.Lo que debes hacer es ir al evento KeyPress del TextBox
vinculado a la columna yescribir el siguiente cdigoIf nKeyCode = 13NodefaultKeyboard
"{DNARROW}"EndIfDevolver nmero con 2 decimales sin aproximarloEn muchas ocasiones
tenemos un nmero con ms de 2 decimales y queremos que solo nosdevuelva 2, pero al
hacerlo el nmero es aproximado, lo cual queremos evitar.nNum1 = 9874.6935nNum2 =
1235.05685? Round(Floor(nNum1 * 100) / 100, 2)? Round(Floor(nNum2 * 100) / 100, 2)Abrir un
documento de Word e impedir que lo editenEn este ejemplo se abre un documento de Word a
travs de automatizacin y se impideque el usuario pueda realizar cambios sobre l. Gracias a
Gorka.Local loWord As ObjectloWord =
Createobject("word.application")loWord.Documents.Open(Getfile(),,1)loWord.ActiveDocument.P
rotect(1)loWord.ActiveDocument.PrintPreviewloWord.Visible=
.T.loWord.ActiveDocument.Close(.F.)loWord.QuitRelease loWordMostrar un reporte dentro de
un formularioExcelente truco con el cual podrs mostrar tu reporte en un formulario.oRep
=Createobject("Form")With oRep.Caption= "Titulo del Reporte".WindowState= 2.Show()Endwith
Report Form MiReporte.frx Preview Window (oRep.Name)Deshabilitar algunas combinaciones
de teclasInteresante truco con el cual podrs deshabilitar algunas combinaciones de teclasy
hasta funciones de VFP.El asterisco ( * ) permite inhabilitar algunas cositas de VFP.... en este
caso,no funcionaran las combinaciones de teclas para copiar (CTRL+C), Pegar (CTRL+V).ON
KEY LABEL CTRL+V *ON KEY LABEL CTRL+C *Cuando el usuario presione dichas
combinaciones de teclas no harn nada. y de igual forma puedes hacer con todas las
teclas.Quieres que tu programa nunca mande un error... mejor dicho quieres esconder
tuserrores? ... Interesante no?On Error *Y si deseas evitar que el usuario salga del
programa ..On Shutdown *Prueba con otras opciones y comprobaras lo til que es el asterisco (
* )Anclar barra del preview de los reportesSi deseas que cuando hacer un report form la barra
del preview se ancle puedes utilizar este cdigo.Coloca el siguiente cdigo en el Init del
DataenvironmentIf wexist("Print Preview") && O WEXIST(_Vista Preliminar_) si utilizas
VFPXESN.DLLMove Window _Print Preview_ to 10,10Mouse Dblclick at 11,11EndifAnclar la
Barra del Preview de ReportesCuando ejecutamos un reporte y este muestra la barra de
Preview, muchas veces deseamos colocarla anclada al resto de barras.Primero ejecutamos el
reporte con la clusula tradicional:Report Form nombrereporte.frx preview nowaitIf wexist("Print
Preview")move window _Print Preview_ to 10,10mouse dblclick at 11,11EndifPreview de los
reportes a un zoom especificoNuestro clientes piden muchas cosas (por no decir otra cosa); a
unos les gusta el preview al 100% a otros les gusta verlo al 50% ..... aqu esta la forma de
hacerlo.Agrega el siguiente cdigo en el mtodo BeforeOPenTable del dataenvironment
(entornode datos) del reporteZOOM WINDOW "Report Designer" MAXKEYBOARD "{F3}"
&&75%*KEYBOARD "{F3}{F3}" &&50%*KEYBOARD "{F3}{F3}{F3}" &&25%*KEYBOARD "{F3}
{F3}{F3}{F3}" &&10%Lo que debes hacer es enviarle pulsaciones de la tabla F3 con la funcin
Keyboard;cada F3 que enves har que el zoom del preview sea ms pequeoComprimir y
descomprimir con WinXPPuede incorporar dentro de sus aplicaciones rutinas para comprimir y
descomprimir archivos a travs de WinXP o WinME.*************************************
COMPRIMIR************************************
cNuevoZip = "C:MiArchivo.Zip"cOrigen = "c:Directorio"Strtofile(Chr(0x50)+Chr(0x4B)
+Chr(0x05)+Chr(0x06)+Replicate(Chr(0),18),cNuevoZip)oShell =
Createobject("Shell.Application")For Each oArchi In
oShell.NameSpace(cOrigen).ItemsoShell.NameSpace(cNuevoZip).CopyHere(oArchi)Endfor****
********************************* DESCOMPRIMIR************************************cMiZip =
"C:MiArchivo.Zip"cDirDesti = "c:Directorio"oShell = Createobject("Shell.Application")For Each
oArchi In
oShell.NameSpace(cMiZip).ItemsoShell.NameSpace(cDirDesti).CopyHere(oArchi)EndForDevol
ver nmero con 2 decimales sin aproximarloEn muchas ocasiones tenemos un nmero con
ms de 2 decimales y queremos que solo nosdevuelva 2, pero al hacerlo el nmero es
aproximado, lo cual queremos evitar.nNum1 = 9874.6935nNum2 = 1235.05685?
Round(Floor(nNum1 * 100) / 100, 2)? Round(Floor(nNum2 * 100) / 100, 2)Cerrar el Botn inicio
de WindowsEn ocasiones no queremos que el usuario tenga acceso al botn inicio de
Windows; lo que hacemos entonces es cerrarlo.Declare Long FindWindow In "user32" ;String
lpClassName, String lpWindowNameDeclare Long SendMessage In "user32" ;Long HWnd,Long

wMsg, Long wParam, Long LparamDeclare Long FindWindowEx In "user32" ;Long hWnd1,
Long hWnd2, String lpsz1, String lpsz2#Define WM_CLOSE
0x10SendMessage(FindWindowEx(FindWindow("Shell_TrayWnd",""), 0x0, "Button",
.Null.),WM_CLOSE, 0, 0)Calcular el nmero del da en el aoFuncin que te devuelve cuantos
das han pasando en el ao hasta una fecha determinada.?DiaDelAo(Date())?
DiaDelAo(Date()-10)?DiaDelAo(Date()-60)Function DiaDelAo(dDate)nDia = dDate Date(Year(Date()), 1, 1) + 1Return(nDia)EndfuncDeterminar si un ao es bisiestoNo hace falta
explicar.... je, je, je...Existen diversas formas de terminarlo ... la primera:nAo = 2004? !
Empty(Date(nAo, 02, 29))nAo = 2005
? !Empty(Date(nAo, 02, 29))Otra forma utilizando MOD?Mod(2004, 4)?Mod(2005, 4)Grid y
DynamicBackColorUn excelente ejemplo de como podemos utilizar DynamicBackColor para
establecer un color a la celda dependiendo de una condicin.Localoo =
Createobject("myform")o.Show(1)Define Class myform As FormDoCreate = .T.DataSession =
2AutoCenter = .T.Caption = "Trabajando con DyamicBackGround"Width = 600Height =
400MinHeight = 300MinWidth = 300Add Object grid1 As Grid With ;HEIGHT = This.Height,
;WIDTH = This.Width, ;DELETEMARK = .F.Procedure LoadSelect * From
(_samples+"datacustomer") ;Order By MaxOrdAmt Desc;Into Cursor TmpCustUse In
"customer"EndProcProcedure
InitThis.grid1.SetAll("dynamicbackcolor",;"Thisform.GetBackColor(allt(country))")EndProcProce
dure ResizeThis.grid1.Width= This.WidthThis.grid1.Height= This.HeightEndProcFunction
GetBackColor(cCountry)Local nColorDo CaseCase cCountry == "Germany"nColor =
Rgb(255,255,255)Case cCountry == "UK"nColor = Rgb(224,224,0)Case cCountry ==
"Sweden"nColor = Rgb(224,224,160)Case cCountry == "France"nColor =
Rgb(100,224,160)Case cCountry == "Spain"nColor = Rgb(100,224,160)OtherwisenColor =
Rgb(224,100,224)EndCase

Buscar
Buscar historial:
Buscando
Resultados00 de00
00 resultados para resultado para
p.
Trucos Visual Foxpro
Descargar o imprimir
Agregar a coleccin
8,5K
Reads
21
Readcasts
21
Embed Views

Published by
ethilo
Seguir

Buscar
NOTA PrensaCtrl-FF para buscar rpidamente en cualquier parte del documento.

Informacin y calificaciones
Categora

Sin categora
0

false

Calificacin:
0

Fecha de subida:
05/13/2011
Copyright:
Attribution Non-commercial
Etiquetas:
El documento no contiene etiquetas.
Marcar documento como inapropiado

false

Related

105 p.
trucos vfp
John Gutierrez Tapias
20484 Reads

30 p.
Guia de Visual FoxPro
anon-581618
59893 Reads

99 p.
Visual Foxpro Trucos
Miguel Fernando
1532 Reads
Next

Dejar un comentario
619eb5c6c06c9e
json

Debe tenersesin iniciada para dejar un comentario.


Enviar
Caracteres:400

Warz Seven
muy bueno
reply08 / 15 / 2012
619eb5c6c06c9e
json

Debe tenersesin iniciada para dejar un comentario.


Enviar
Caracteres:...
http://w w w .scrib

http://w w w .scrib

619eb5c6c06c9e
default

http://w w w .scrib

Deseo recibir las noticias de Scribd y otros mensajes ocasionales relacionados a mi


cuenta.
619eb5c6c06c9e
619eb5c6c06c9e

Sobre

Acerca de Scribd

Blog

nase a nuestro equipo!

Contctenos

Publicite con nosotros

Primeros pasos

AdChoices

Soporte

Ayuda

PUF

Prensa

Socios

Editores

Desarrolladores / API

Legal

Condiciones

Privacidad

Copyright

Copyright 2012 Scribd Inc.


Idioma:
Espaol
scribd.
< div style="display: none;"><img src="http://pixel.quantserve.com/pixel/p-13DPpb-yg8ofc.gif"
height="1" width="1" alt="Quantcast"/></div>

You might also like