Bienvenido y disfruta el nuevo diseño del sitio web.... agradecería me envíes tus comentarios acerca de los cambios realizados

Para descargar cualquier archivo es necesario estar registrado y hacer click en el titulo del archivo a descargar

Deshabilitar el menú de un formulario de nivel superior

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Excelente truco que te permitirá deshabilitar el menú de un formulario de nivel superior

El evento LOAD del formulario de nivel superior colocamos


Do MenuFormSuperior.mpr
With ThisForm,"MnuSupe"


Y cuando deseemos deshabilitar el menú :

Set Skip Of Menu MnuSupe .T.


Por: David Amador T

Obtener los registros de una tabla que no estan en otra

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Este truco le ayudará a buscar los registros de una tabla que no están en otra.

En este caso utilizamos un campo para realizar la búsqueda. Veamos 2 formas de hacerlo:

Select * From Tabla1 ;
    WHERE Not Exists ;
   (
Select * From
Tabla2 ;
   
WHERE Tabla1.Id = Tabla2.Id)
 
La otra forma de hacerlo es:

Select * From Tabla1 ;
    Where Id Not In
   
(Select Id From Tabla2)
 


Por: David Amador T

Determinar si existe un diskette en la unidad de disco

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Determinar si existe un diskette en la unidad de disco

Por: David Amador T

Cambiar la letra a las unidades de disco

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Por aquí otro truquito fuera del tema pero bastante útil; ¿Quieres cambiarles las letras asignadas a tus unidades de disco?



Empecemos, Pulsaremos el botón derecho del ratón sobre Mi PC y seleccionaremos "Administrar". Una vez allí, seleccionamos el administrador de discos y haremos clic con el botón derecho del ratón sobre el dispositivo al que queremos cambiarle la letra. Seleccionamos finalmente la opción "Cambiar Letra de Unidad" y ponemos la que queremos darle.

Por: David Amador T

Cadenas de conexión para tablas DBF con el OLEDB Provider

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Si deseas o necesitas conectarte a tus DBF
utilizando el OLEDB Provider de VFP aquí tienes las cadenas de conexión que
debes utilizar

* Para
DBC


cCon =
[Provider=VFPOLEDB.1;]
+ ;

       [Data Source=C:\Ruta\Datos\BaseDatos.dbc;]
+ ;

      
[Share Deny
None;Password="";]
;

      
[Collating Sequence=MACHINE]




* Para tablas libres


cCon =
[Provider=VFPOLEDB.1;]
+

       [Data Source=C:\Ruta\Datos\;]

      
[Share Deny None;Password="";]
;

      
[Collating Sequence=MACHINE]


 


Por: David Amador T

Convertir Entero a Binario

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Aquí tiene la función que te permitirá convertir
número enteros a binarios.

?Int2Bin(1)

?Int2Bin(25)

?Int2Bin(100)

?Int2Bin(198)



Function
Int2Bin(num)

    Do Case

       
Case
num = 0

   
    Return
"0"

   
Case
num < 0

       
num = 0x100000000 + m.num

   
Endcase


   
Local
cRet, nIndex

   
cRet =
""


   
For
nIndex=Min(31,
Ceiling(Log(num)/Log(2)))
To
0
Step
-1

       
cRet = cRet +

Iif(Bittest(num,
nIndex),
"1",
"0")

   
Next

   
Return
cRet


EndFunc


 


Por: David Amador T

Conocer el número de días del mes

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Un truco bastante utilizado


?
Day(Gomonth(Date()-Day(Date())+
1,1)-1)







 


Por: David Amador T

Guardar y restaurar la configuración de la red de su PC

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Muy buen truco, es ideal para usuarios móviles a
los cuales les toca pegarse a diferentes redes dependiendo de donde se
encuentren, y tienen que cambiar la configuración de su red.





No estoy seguro si funciona en Win9x (lo dudo); pero funciona con XP, 2000





Para guardar la configuración de red a un archivo de texto que luego se pueda
utilizar, se ejecuta el siguiente comando en el MS-DOS o la opción "Ejecutar" de
Windows:



netsh dump > mi_red_cfg.txt



OJO: Que el signo ">" está redirigiendo la salida del comando al archivo "mi_red_cfg.txt".





Ahora si ha Usted le toco cambiar la configuración de su red porque estuvo de
viaje cuando vuelva sólo tiene que cargar la configuración del archivo; de la
siguiente forma desde MS-DOS o la opción "Ejecutar" de Windows:





netsh exec mi_red_cfg.txt

 

Por: David Amador T

Mostrar el cuadro de dialogo "Agregar y quitar programas de Windows"

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Por si acaso deseas mostrar el cuadro de dialogo
"Agregar y quitar programas de Windows" desde tus aplicativos de VFP.


oShell =
CreateObject("WScript.Shell")

oShell.
Run("RunDll32.exe
shell32.dll,Control_RunDLL appwiz.cpl,,0"
)



 


Por: David Amador T

Comprobando cual es más optimo de Alltrim - Transform - Alltrim(Str())

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Otro test para medir cual función (Alltrim -
Transform - Alltrim(Str())) es las más optima. Haremos un ciclo For de 100000
iteraciones para medir el rendimiento de cada una de dichas funciones.



Clear



******************************

* ALLTRIM(TRANSFORM(nCounter))

******************************


Local
nCounter, cResult

x =
Seconds()


For
nCounter = 1
To
1000000

   
cRet =
Alltrim(Transform(nCounter))


EndFor


?
Seconds()
- x && 3.415 Seg



******************************

* TRANSFORM(nCounter)

******************************


x =
Seconds()


For
nCounter = 1
To
1000000

   
cRet =
Transform(nCounter)


EndFor


?
Seconds()
- x && 3.225 Seg

 


******************************

* ALLTRIM(STR(nCounter))

******************************


x =
Seconds()


For
nCounter = 1
To
1000000

   
cRet =
Alltrim(Str(nCounter))


EndFor


?
Seconds()
- x  && 1.552 Seg



 

 


El resultado arrojado es que es más optimo
utilizar ALLTRIM+STR.







Por: David Amador T

¿Cúal es más optimo VARTYPE o TYPE?

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Hace algunos meses Calvin Hsia publicó un post
en su blog en donde comparó las funciones VARTYPE y TYPE para determinar cual de
ella es más optima



Aquí está un ejemplo:





- Utilizando VarType, el tiempo de procesamiento de la prueba fue de 1.382 Seg
(Depende del PC)

nS =
Seconds()

zz =
"a"



For
i = 1
To
1000000

   
cc =
VarType(zz)


EndFor



?
Seconds()
- nS


 

- Utilizando Type, el tiempo de procesamiento
de la prueba fue de 3.024 Seg (Depende del PC)




nS =
Seconds()

zz =
"a"



For
i = 1
To
1000000

   
cc =
Type(zz)


EndFor



?
Seconds()
- nS



Podemos concluir entonces que el VARTYPE es una
función más optimizada que el Type y esto se debe a la compilación que hace está
última a los parámetros pasados




Por: David Amador T

Número de serie del disco duro

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Esta es una de las formas más sencilla de conocer
el serial del disco duro.

cUnidad =
"C:"



=
Messagebox(SerialDisco(cUnidad),0)



Function
SerialDisco(cUnidad)

    Run
VOL &cUnidad > VOL.tmp

   
cUnidad=
Filetostr("vol.tmp")

   
Return Substr(cUnidad,Rat("
"
,cUnidad))


EndFunc


 

 


Por: David Amador T

Barra de progreso con clase de VFP

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Aquí tienes un ejemplo de como hacer una barra de
progreso utilizando la clase que viene con VFP para dicho propósito.


cRutaClase =
Home()+"FFC\_therm.vcx"


cTitulo =
"Ejemplo
de barra de Progreso"



oBarra =
Newobject("_thermometer",cRutaClase,
"",;

                     cTitulo, 100, 1)



With
oBarra

   
.
Visible
= .T.

   
.
Update(10,
"Buscando...")

   
Inkey(.2)
&& Para producir
retardo en el ejemplo

   
.Update(20,
"Paso 1")

   
Inkey(.2)

   
.
Update(40,
"Paso 2")

   
Inkey(.2)

   
.
Update(70,
"Paso 3")

   
Inkey(.2)

   
.
Update(90,
"Paso 4")

   
Inkey(.2)

   
.
Update(100,
"Terminado!")

   
Inkey(.2)

   
.
Release()


Endwith


 


Por: David Amador T

Rotando imágenes con la clase GDI+ de VFP 9

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Otra implementación de la clase GDI que viene con
VFP 9 para el manejo de imágenes; en este caso rotaremos la imagen en diversos
ángulos.


#
Define
RotateNoneFlipNone 0

#
Define
Rotate90FlipNone 1

#
Define
Rotate180FlipNone 2

#
Define
Rotate270FlipNone 3

#
Define
RotateNoneFlipX 4

#
Define
Rotate90FlipX 5

#
Define
Rotate180FlipX 6

#
Define
Rotate270FlipX 7



Local
cOrigen, cDestino


cOrigen = Getpict("jpg;gif;bmp")

cDestino =
JustPath(cOrigen)+"\Rotada_"+JustFname(cOrigen)


oImg = Newobject("GpImage",
HOME()+"ffc\_gdiplus.vcx")



With
oImg

   
.CreateFromFile(cOrigen)

   
.
RotateFlip(Rotate180FlipNone)


   
.SaveToFile(cDestino,
"image/jpeg")


EndWith


Por: David Amador T

Suma de celdas en Excel

Visual Fox Pro, Trucos Comentarios ( 0 ) »
En este ejemplo veremos como podemos realizar
cálculos en Excel a través de automatización.


oExcel =
Createobject("Excel.Application")



With
oExcel

   
.
Visible=.T.

   
.Workbooks.
Add

   
.ActiveWorkbook.Sheets(1).Activate


   
.Cells(3,2) = 10

   
.Cells(4,2) = 26

   
.Cells(5,2) = 63

   
.Cells(6,2) = 42

   
.Cells(7,2) = 1


   
.Cells(9,1) =
"Suma"

    .Cells(9,2).FormulaR1C1 =
"=SUM(R[-6]C:R[-1]C)"


   
.Cells(10,1) =

"Promedio"

   
.Cells(10,2).FormulaR1C1 =
"=AVERAGE(R[-7]C:R[-2]C)"


   
.Cells(11,1) =

"Máximo"

   
.Cells(11,2).FormulaR1C1 =
"=MAX(R[-8]C:R[-3]C)"


   
.Cells(12,1) =

"Mínimo"

   
.Cells(12,2).FormulaR1C1 =
"=MIN(R[-9]C:R[-4]C)"


EndWith


 



Por: David Amador T