FoxPro/Visual FoxPro - Trucos -Visual FoxPro

   
Vista:

Trucos -Visual FoxPro

Publicado por Ernesto Hernandez (4632 intervenciones) el 16/06/2009 18:55:55
Mostrar un reporte dentro de un formulario
Excelente truco con el cual podrás 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)

Hacer que hable el PC
Excelente 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 información de los MP3
Quieres conocer la información de los archivos MP3 ?? ... autor, titulo, álbum, año ...
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))
? "Año: ", Val(Substr(lcTag,94,4))
Fclose(lnFile)

Suprimir ventana "Imprimiendo" en VFP 8
Uno de las nuevas características incorporadas en VFP 8, si deseas puedes impedir que se vea la ventana "Imprimiendo" que se muestra cuando ejecutas un reporte.
Report Form NombreReporte To Printer Prompt NODIALOG Preview

Nombre del dominio en que se logeo el PC
p align="justify">Un pequeño truco para cuando quieras determinar en que dominio se logeo un determinado PC.
? GetEnv("USERDOMAIN")

Determinar si una unidad de red esta disponible
Esta es la forma más 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("\NombreServidorC")

Compactar base de datos de Access desde VFP
Muy 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 parámetros para el método CompacDatabase son los siguientes
Primer parámetro
"Data Source=" + "ruta de la base de datos a compactar"
Segundo parámetro
"Data Source=" + "ruta de la nueva base de datos compactada"

Insertando registros en Access desde VFP
Este es un ejemplo básico pero bueno de como interactuar con una base de datos de Access desde VFP.
cStrConn = "DRIVER={Microsoft Access Driver (*.mdb)};" +;
"Dbq=C:somedata.mdb;" +;
"Uid=usuario;" +;
"Pwd=password;"
lnAccess = SQLSTRINGCONNECT(cStrConn)
If lnAccess > 0
SQLEXEC(lnAccess, "INSERT INTO NombreTabla (campo1, campo2) VALUES(00001, 485745)")
Else
=MessageBox("No fue posible conectarse a la Base de Datos")
EndIf

Imprimir el contenido de un RTF
El RTF es un control ActiveX que permite dar características al texto al estilo de Word. En el ejemplo se muestra como imprimir el contenido de este ActiveX.
Para imprimir el contenido debes utilizar el método SelPrint del control RTF ...
With Thisform.Rtf
.selstart=1
.sellength=len(.textrtf)
.selprint

Desplegar el Contenido de un Combo
En 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 más fácil de hacerlo.
KEYBOARD _{F4}_
En este caso agregamos este código al evento GOTFOCUS( ) y cuando el Combo reciba el enfoque entonces este se desplegara mostrando la información contenidas en él.

Desplegar un ComboBox al recibir el Enfoque II
En realidad muchas veces deseamos hacer esto, pero lo pensamos bastante y no encontramos la forma de hacerlo. Por fin aquí esta su implementación.
Crea un formulario y agrégale un Combo y un Botón. Al hacer click en el botón debe desplegarse automáticamente el Combo.
Programa lo siguiente en el evento Gotfocus del Combo
tColumna = THISFORM.Combo1.Left + THISFORM.Combo1.Width - 4
tFila = THISFORM.Combo1.Top + 2
MOUSE CLICK AT tFila, tColumna PIXELS WINDOW (THISFORM.Name)
En el evento Click del botón que creaste llama al evento Setfocus() del combo, Así:
Thisform.combo1.Setfocus()

Quitar acentos de una cadenas de caracteres
Algunas veces los acentos son algo molestos y nos causan inconvenientes, sobre todo al momento de realizar búsquedas dentro tablas
lCadena = "El amor es el perdón más fácil"
? CHRTRAN(lCadena, "áéíóúáéíóú", "aeiouAEIOU")

Agregar imagen al _Screen
En 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 truco para 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 Preview
Truco indispensable si deseas quitar algunos botones de la barra del preview e impedir así que se imprima desde ahí o se seleccione alguna opción.
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 detrás de ventana de personalización, ve a la barra y con click sostenido quita todos los botones que quieras y listo la configuración se guardara en Foxuser.dbf
Si deseas que el usuario final no pueda acceder

Solucionar problemas de Memoria con WinXP
Evitar el error de Memoria en XP al ejecutar comandos de D.O.S
Edita el archivo SYSTEM.INI, en la sección 386ENH agrega la siguiente linea:
PerVMFiles = 80

Invocar cuadros de dialogo de Windows
Existe 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 Fuente
locomdialog.ShowPrinter() && Mostrar Impresora
locomdialog.ShowColor() && Mostrar Colores
locomdialog.ShowSave() && Mostrar Guardar
loComDialog.ShowOpen && Mostrar Abrir

Unidad y serial lógico de las unidades de disco
De una unidad de disco es posible obtener 2 seriales: el de fabrica y el que le asigna 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.VolumeSerialNumber
Next

Cancelar todos los trabajos en impresión
Aquí 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 objImp
objPrinter.CancelAllJobs()
Next

Información del tiempo local
Utilizando WMI para conocer el día, mes, año, día del mes, número 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
? "Día: " + Transform(oLocal.Day)
? "Día 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)
? "Año: " + Transform(oLocal.Year)
Next

Mandar 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 lcPrinter
lcPrinter = ''
lcPrinter = GETPRINTER()
IF !EMPTY(lcPrinter)
SET PRINTER TO NAME (lcPrinter)
REPORT FORM Test TO PRINTER NOCONSOLE
ELSE
WAIT WINDOW 'Print Job Cancelled' TIME 1
ENDIF *
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Trucos -Visual FoxPro

Publicado por HELDER (COUNDY) (710 intervenciones) el 19/09/2009 00:20:36
MUCHAS GRACIAS ME SERVIRAN DE MUCHO AMIGO...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Trucos -Visual FoxPro

Publicado por Rafael (1 intervención) el 28/06/2010 18:27:06
Hola que tal buen dia necesito que usted me ayuden a darme trucos para formularios.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Trucos -Visual FoxPro

Publicado por javier (1 intervención) el 26/09/2009 19:25:32
un favor si me pueden enviar en archivo de word paso a paso un manual basico de visual foxpro.

Saludos

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Trucos -Visual FoxPro

Publicado por Luis Alfonso (9 intervenciones) el 02/12/2010 14:58:27
Hola!!!
el truco "Mandar un reporte a una impresora especifica " parece que no funciona con windows 7..

o al menos a mi no me funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar