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

Enviar datos a puertos COM

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Una forma sencilla de poder enviar datos a los puertos seriales

cCadena = "Texto a enviar"
nHwd = Fopen("COM1:")

If nHwd <> -1

    Fwrite(nHwd, cCadena, Len(cCadena))
   
Fclose(nHwd)
EndIf



 

Por: David Amador T

Solucionar problemas de MSMAPI.MAPISession

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Un error muy común en MAPI es el problema "No se encuentra la licencia apropiada", aquí tiene un pequeño truco que soluciona el problema.

Debes crear un archivo de texto y colocar el siguiente texto en él

REGEDIT4


[HKEY_CLASSES_ROOTLicensesDB4C0D00-400B-101B-A3C9-08002B2F49FB]
@="mgkgtgnnmnmninigthkgogggvmkhinjggnvm"

Ahora lo guardas con cualquier nombre pero extensión REG y luego haces doble click sobre él, te hará una pregunta, debes responder que SI y listo.... el problema estará solucionado.




Por: David Amador T

Convertir RecordSet de ADO a Cursor utilizando XML

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Otra forma para convertir un recordset de ADO en un cursor de VFP, en este caso utilizamos XML.

cCadCon = "Provider=VFPOLEDB;Data Source=" +;

            _Samples +"data estdata.dbc"

oCon = Createobject("AdoDb.Connection")

oCon.ConnectionString = cCadCon
oCon.
Open

oRS = oCon.Execute("Celect * From Customer")

xDOM = Newobject("MSXML.DOMDocument")

oRS.
Save(xDOM, 1)
oRS.
Close
oCon.Close

XmlToCursor(xDOM.XML,
"MiCursor", 1028)
Select MiCursor
Browse
 

Por: David Amador T

Gráfico de torta utilizando MsChart

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Un ejemplo básico de como hacer un gráfico de torta utilizando el MsChart


Public
oForm
oForm=
Createobject("form1")
oForm.
Show

Define Class form1
As Form
   Top
= 0
   
Left = 0
   
Height = 520
   
Width = 790
   
DoCreate = .T.
   
Name = "Form1"

    Add Object Graf As OleControl With ;

   
    Top = 10, ;
       
Left = 5, ;
   
    Height = 500, ;

       
Width = 780, ;
       
Name = "Graf", ;
       
OleClass = "MSChart20Lib.MsChart"

   Procedure Init
TEXT to _cliptext noshow

X1 X2 X3 X4

25 35 15 25

EndText

       This.Graf.Editpaste
       #
Define VtChChartType2dPie 14
       
This.Graf.ChartType = VtChChartType2dPie
       
This.Graf.ShowLegend = .T.
       
This.Graf.TitleText = "Titulo del Gráfico"
   
EndProc
EndDefine
 

Por: David Amador T

Mostrar un CheckBox en un Reporte

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Te gustaría poder mostrar una casilla de verificación en tus reportes ???


Para el ejemplo crea un campo lógico en la tabla que esta vinculada al reporte, luego cree el reporte y agregue un cuadro de texto y establécele el tipo de fuente a WingDings. Ahora debes hacer doble click en cuadro de texto y en "Expresión" debes colocar lo siguiente:


IIF(CampoLogico, CHR(0xFD),CHR(0xA8))


Y ahora puedes probar tu reporte ...

Por: David Amador T

Búsquedas sensitivas en MYSQL

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Por lo general cuando realizamos una consulta SQL en MYSQL esta trae todos los registros que cumplan la condición sin importar mayúsculas y minúsculas o acentos; pero algunas veces necesitamos traer sólo los registros donde los registros cumplan exactamente la condición distinguiendo de mayúsculas y minúsculas.

Supongamos tenemos una tabla de empleados y le agregamos 2 registros



CREATE TABLE employees (

emp_id INT,

name VARCHAR(30),

dept VARCHAR(30)

)


INSERT INTO employees (emp_id,name,dept) VALUES(1,"Maria","DS");
INSERT INTO employees (emp_id,name,dept) VALUES(2,"Pedro","ds");


Y queremos obtener sólo los registros que tengan "DS" :



SELECT * FROM employees where dept = "DS"

La sentencia SQL anterior nos devolverá los 2 registros puesto no distingue entre mayúsculas y minúsculas, y ahora lo vamos de otra forma:



SELECT * FROM employees where BINARY dept = "DS"

En este caso sólo obtenemos 1 registro, el que coincide exactamente con la condición, para eso utilizamos BINARY.

Por: David Amador T

Determinar si la tecla SHIFT, CONTROL o ALT están presionadas

Visual Fox Pro, Trucos Comentarios ( 0 ) »
En este ejemplo utilizaremos el API de Windows para determinar si las teclas SHIFT - CONTROL - ALT están presionadas, ya sea de forma independiente o al mismo tiempo.
Clear

#Define
VK_SHIFT 0x10

#
Define
VK_CONTROL 0x11

#
Define
VK_MENU 0x12

#
Define
PRESSED 0x07



Declare Integer
GetKeyboardState
In
WIN32API
String
@



Do While
.T.

   
m1 =
Replicate(Chr(0),255)

   
Wait Window
""
Timeout
0.5

   
GetKeyboardState(@m1)



   
?
"Shift",
Bittest(Asc(Substr(m1,VK_SHIFT+1,1)),PRESSED)

   
?
"Control",
Bittest(Asc(Substr(m1,VK_CONTROL+1,1)),PRESSED)

   
?
"Alt",
Bittest(Asc(Substr(m1,VK_MENU+1,1)),PRESSED)


   
If Lastkey()
== 27

        Exit

   
EndIf

EndDo




Por: David Amador T

Obtener la parte decimal de un número

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Esta es la forma más sencilla de obtener la parte decimal de un número


nNum = 721.96841
? nNum -
INT(nNum)

Por: David Amador T

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