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

Determinar si un campo existe en una tabla

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Es de las formas más rápidas para determinar si un
campo existe en una tabla determinada.


?
"Existe ",Fsize("Campo","Tabla")
> 0



Por: David Amador T

Descargar archivo desde Internet

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Una forma muy sencilla para descargar un archivo
de Internet, utilizando la función DoFileDownload del API de Windows.


Declare DoFileDownload
In
shdocvw.Dll;

    STRING
lpszFile


cRuta = "http://www.davphantom.net/archivo.txt"



DoFileDownload(Strconv(cRuta,12))



 


Por: David Amador T

Obtener N decimales sin cambiar el Set Decimals

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Este es un ejemplo bastante común; en una variable
de tipo carácter tengo un número con 4 decimales pero deseo convertirlo a
numérico y que me muestre todos los decimales.



La solución que se nos viene a la mente es cambiar el Set Decimals y listo; pero
hay otra forma de hacerlo sin tocar esta configuración SET; Para eso
utilizaremos la nueva función CAST de VFP.


* Asumamos que el Set Decimals
está en 2


nValor =
"8.2433"

 


* Con la función VAL() me devolveria 8.24


?
VAL(nValor)



* Con la función CAST() me deolveria el valor 8.2433


?
CAST(nValor
AS
N(20,4))



 

Algo también interesante con VAL()
aproximaría el valor mientras que con CAST no.



 

nValor =

"8.2833"



* Con la función VAL() me devolveria 8.29


?
VAL(nValor)



* Con la función CAST() me deolveria el valor 8.2833


?
CAST(nValor
AS
N(20,4))


 



Por: David Amador T

Determinar el tipo de unidad de almacenamiento

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Alguna vez quise determinar si una unidad era una
memoria USB o si la unidad era un disco de red; el problema lo solucione con
esta función de API de Windows.


Declare Long
GetDriveType
In
"kernel32"
;

    STRING
nDrive



nRet = GetDriveType("H:")



Do Case

   
Case
nRet = 1

       
?
"DESCONOCIDO"

   
Case
nRet = 2

       
?
"DISCO REMOVIBLE"

   
Case
nRet = 3

       
?
"DISCO DURO"

   
Case
nRet = 4

       
?
"DISCO EN RED"

   
Case
nRet = 5

       
?
"CDROM"

   
Case
nRet = 6

       
?
"DISCO RAM"


EndCase


 


Por: David Amador T

Quitar los themas de Windows a un formulario

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Usted puede quitar las themas de Windows a un
formulario con la propiedad "Themes", pero en esta caso utilizaremos el API de
Windows para hacerlo.



Creemos un formulario y coloquemos el siguiente código en el evento LOAD del
formulario y luego ejecutémoslo


Declare Integer
SetWindowTheme
In
UxTheme ;

   

INTEGER HWnd
,
String
pszSubAppName,;

   

String
pszSubIdList


=SetWindowTheme(Thisform.HWnd,
Null,
"")




 

 


Por: David Amador T

¿Deseas reiniciar el PC?

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Esta es una forma muy sencilla de reiniciar el PC;
en este caso lo haremos al igual de como lo hacen los programas Instaladores, es
decir llamaremos a una función de la DLL setupapi.dll para que esta realice esta
operación.

Declare
SetupPromptReboot
IN
setupapi.dll
;

    Long
FileQueue,
Long
Owner,
Long
ScanOnly



Para reiniciar, preguntando si se desea
proceder



SetupPromptReboot (0,
_Screen.hWnd,
0)


Para reiniciar, sin preguntar


SetupPromptReboot (0, _Screen.hWnd,
1)


 



Por: David Amador T

Obtener la IP de otro PC dentro de la Red

Visual Fox Pro, Trucos, Funciones API Comentarios ( 0 ) »
Esta es una pregunta muy frecuente, aquí está
una posible solución para conocer la IP de un PC dentro de nuestra red.



Utilizamos el comando PING de MS-DOS (MSDOS) y enviamos el resultado a un
archivo de texto y luego de allí extractamos la IP del PC.



RUN
ping
"NOMBRE_PC"
> c:\PingIp.TXT

cTxt =
FILETOSTR([c:\PingIp.TXT])

cTxt =
SUBSTR(cTxt,AT("[",cTxt)+1)

?
LEFT(cTxt,AT("]",cTxt)
-1)


 



Por: David Amador T

Determinar si un equipo o pagina web esta ONLINE

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Vamos a utilizar el WSH para realizar un ping y
determinar si un PC o sitio web esta On Line; enviaremos un comando PING de
MS-Dos y evitaremos que se muestre la ventana negra utilizando el WSH.


Local
lOnline

oWSH =
Createobject("WScript.Shell")

lOnline = oWSH.
Run("ping
192.168.0.12"
,0,"True")



If
lOnline = 0

    Messagebox("ping
OK!"
)


Else

   
Messagebox
("ping
ERROR!"
)


EndIf



Release
oWSH


 


Por: David Amador T

Ejecutar un comando de MSDOS sin mostrar la ventana

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Esta es otra forma de ejecutar desde VFP un
comando de MSDOS sin mostrar la típica ventana negra.


En el ejemplo podemos ver una forma de registrar
un activex.




Declare Long
WinExec
In
kernel32 ;

   
STRING
lpCmdLine ,
Long
nCmdShow



cCmd = "RegSvr32.exe
micontrol.ocx"



=WinExec(cCmd, 0)



Note;0 - Se ejecuta, pero no se hace Visible)

;1 - la Ventana se muestra Normal

;2 - minimizado ;3 - Maximizado

;4 - Tamaño Normal, pero sin Foco






Por: David Amador T

Convertir tabla a Word

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Este es un truco bastante sencillo de como puedes
pasar tus tablas a Word; se los recomiendo cuando la tabla no tengo demasiados
campos.



En el ejemplo que voy a mostrar convertiré la tabla "Shippers" de Northwind
(Viene con VFP) a Word.


Set Safety Off

Open Database Home
(2) +
"northwind\northwind"



Use
Shippers
Shared

COPY TO
c:\TempDatos
TYPE CSV



oWord =
CREATEOBJECT("Word.Application")


oDoc  = oWord.Documents.Open("c:\TempDatos.CSV")

oRange = oDoc.
Range()

oRange.ConvertToTable(
",")


oWord.Visible
= .T.


Close Databases all




Usted podría adaptar este ejemplo y a través de
automatización hacerle algunas modificaciones al documento de Word.








 





Por: David Amador T

Copiar directorios

Visual Fox Pro, Trucos Comentarios ( 0 ) »
En este ejemplo copiaremos directorios utilizando
el XCOPY de MS-DOS, pero lo haremos a través de la función ShellExecute del API
de Windows para evitar que la ventana del MS-DOS sea visible.


DECLARE INTEGER
ShellExecute
IN
shell32;

   
INTEGER hwnd, STRING
lpOperation,;

   
STRING
lpFile,
STRING
lpParameters,;

   
STRING
lpDirectory,
INTEGER
nShowCmd



WAIT WINDOWS

"Copiando..."
NOWAIT


=ShellExecute(0,
"Open","XCOPY.EXE","C:\DirOrigen
c:\DirDestino /t"
,"",0)


Wait Clear


 



Por: David Amador T

Determinar si estas conectado a InterNet

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Otra forma para determinar si estas conectado a
Internet; en este caso sino se está conectado se intenta conectar.

#Define
FORCE 1


DECLARE INTEGER
InternetCheckConnection
in
wininet;

  STRING
lpszUrl, INTEGER
dwFlags,;

  INTEGER
dwReserved


  RETURN
(InternetCheckConnection(tcURL,
FORCE, 0) == 1)



Por: David Amador T

Uniendo reportes en VFP 9

Visual Fox Pro, Trucos Comentarios ( 0 ) »
El VFP 9 trajo muchas características
interesantes, está es una de las que me gusta.



Puedes unir varios reportes y mostrarlos como si fueran uno sólo.

Close
Databases All

Open Database
(Home(2)
+
"Northwind\northwind.dbc")


Use
northwind!shippers



Create Report
shippers
From
shippers


Use
northwind!Suppliers


Create Report
Suppliers
From
Suppliers



Report Form
shippers
Object Type
1
Nopageeject

Report Form
Suppliers
Object Type
1
Noreset


 



Por: David Amador T

Importar datos desde Excel a VFP

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Está es un pregunta muy habitual; en el siguiente
ejemplo veremos como importar datos desde Excel a VFP sin necesidad de tener
Excel instalado, puesto que lo haremos a través del Driver ODBC de Excel.


cFileXLS =
Getfile("XLS")


cConn = "Driver={Microsoft
Excel Driver (*.xls)};"
+;

        "DriverId=790;Dbq="+cFileXLS+;

       
";DefaultDir="+Justpath(cFileXLS)+";"



nH =

SqlStringConnect
(cConn)



SQLTables
(nH,"",
"SheetNames")



Scan

    cTabla =
Trim(SheetNames.Table_Name)

   
cCursor =
Chrtran(cTabla,"
$"
,"_")

   
SQLExec(nH,'Select
* From ['
+cTabla+']',cCursor)

   
Select
(cCursor)

   
Browse

EndScan


SQLDisconnect(nH)


 


Por: David Amador T

Validar si una de tus tablas está corrupta

Visual Fox Pro, Trucos Comentarios ( 0 ) »
El simple proceso de abrir tus tablas te puede
ayudar en ciertos casos a determinar si tiene algún problema o está corrupta.


Aquí tiene como puedes realizar este proceso:




nTablas =
Adir(aMisTablas,"*.dbf")



On Error
?aMisTablas[x,1]
+
" tiene errores"



For
x = 1
To
nTablas

    Use
aMisTablas[x,1]
Shared

EndFor


Use

On Error


Por: David Amador T