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

Crear menú edición (Copiar, Pegar, Cortar, ....)

Visual Fox Pro, Trucos Comentarios ( 0 ) »

En muchas
ocasiones quieres agregar un menú edición a tus aplicaciones... esta es
una forma sencilla.


Puedes
crear un PRG y agregar estas líneas y luego ejecutarlo y listo ya tienes
tu menú edición




DEFINE POPUP _medit

DEFINE BAR _med_slcta OF _medit PROMPT __ KEY CTRL+A

DEFINE BAR _med_paste OF _medit PROMPT __ KEY CTRL+V

DEFINE BAR _med_copy OF _medit PROMPT __ KEY CTRL+C

DEFINE BAR _med_cut OF _medit PROMPT __ KEY CTRL+X

DEFINE BAR _med_undo OF _medit PROMPT __ KEY CTRL+Z

Por: David Amador T

Quitar la barra de menús de Word por automatización

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Este truco
te permitirá quitar la barra de menús de Word utilizando automatización.




oWord =
CREATEOBJECT("Word.Application")

oword.Documents.Add

oword.CommandBars("Menu Bar").Enabled = .F.

oword.Visible = .t.


Por: David Amador T

Lista de documentos utilizados recientemente en Word

Visual Fox Pro, Trucos Comentarios ( 0 ) »

A través de
automatización puedes manipular la característica que desees de Word; en
este caso mostrare el nombre de los documentos utilizados recientemente en
Word.




oWord =
CREATEOBJECT("Word.Application")



For ia=1 to oWord.RecentFiles.Count

     ? oWord.RecentFiles.Item(ia).Name

EndFor



Release oWord


Por: David Amador T

Lista de citas en el calendario de OutLook

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Algunas
veces utilizamos OutLook para almacenar las citas de nuestros clientes;
esta es la forma de conocer las citas a través de automatización.




oOl = NewObject("outlook.application")

oMAPI = oOl.GetNameSpace("MAPI")

oCal = oMAPI.GetDefaultFolder(9)



For Each oItem in oCal.Items

      ? oItem.Subject, oItem.Start, oItem.End

Next

 

Por: David Amador T

Calendario (DatePicker)

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Un buen
ejemplo de como utilizar el DatePicker para mostrar el calendario.






oMyform = Create("MiCal")

oMyform.Show

Read Events

Return



Define Class MiCal As Form

      Height = 60

      Caption = "Testing DTPicker"

      AutoCenter = .T.

      MaxButton = .F.

      MinButton = .F.

      AlwaysOnTop = .T.



      Add Object odatetime As odttm With ;

      Width = 85,;

      Top = 5,;

      Height = 25



      Procedure Destroy

            Clear Events

      Endproc

Enddefine





Define Class odttm As OleControl

      OleClass = "MScomctl2.DTPicker.2"

      OleLCID = 1033



      Procedure Init

          This.Left = (Thisform.Width-This.Width)
/ 2

      Endproc

Enddefine

 

Por: David Amador T

Insertando registros en Access desde VFP

Visual Fox Pro, Trucos Comentarios ( 0 ) »

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
 

Por: David Amador T

Compactar base de datos de Access desde VFP

Visual Fox Pro, Trucos Comentarios ( 0 ) »

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"
<

Por: David Amador T

Preview de los reportes a un zoom especifico

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Nuestro
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 código en el método BeforeOPenTable del dataenvironment (entorno
de datos) del reporte






ZOOM WINDOW "Report Designer" MAX

KEYBOARD "{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 función Keyboard; cada F3
que envíes hará que el zoom del preview sea más pequeño

Por: David Amador T

Conectarse a una base de datos de SQL Server

Visual Fox Pro, Trucos, Bases de datos, SQL Server Comentarios ( 0 ) »
Esta es otra de las preguntas frecuentes .... aquí
tienes varios ejemplos de como hacerlo.



cCadConnDSN =
"driver
= SQL Server;server=tu_server;uid=sa;pwd=sa_pw"




O

cCadConnDSN =
"driver
= {SQL Server};server=tu_server;uid=sa;pwd=sa_pw"




O

cCadConnDSN =
"DRIVER
= {SQL Server};"
;

+
"SERVER=tu_server;"
;

+
"UID=nombre_usuario;"
;

+
"PWD=clave_pw;"
;

+
"DATABASE=PUBS;"
;
&& Nombre de la base de datos

+
"WSID=nombre_usuario;"
;

+
"APP=''"



nHanConn =

Sqlstringconnect
(m.cCadConnDSN)



If
nHanConn > 0

   
=
MessageBox("Conectado
a la base de datos de SQl Server"
)


Else

   
=MessageBox("Error
al conectarse a la base de datos de SQl Server"
)


EndIf


Por: David Amador T

Determinar si una unidad de red esta disponible

Visual Fox Pro, Trucos Comentarios ( 0 ) »

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("\\NombreServidor\C\")


Por: David Amador T

Determinar si una variables es un array o matriz

Visual Fox Pro, Trucos Comentarios ( 0 ) »

En muchas ocasiones
necesitamos saber si una variable es una matriz o un array ..... aquí
están algunas formas de saberlo.


Puedes
hacerlo con la función TYPE o VARTYPE


? Type("ALEN(aMiArrayXP)")
== "N"

? Type("aMiArrayXP[1]")#"U"

? Vartype(aMiArrayXP[1])#"U"

 


Por: David Amador T

Reproducir archivo de sonido através de WSH

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Otra forma de reproducir un
archivo de sonido.... esta vez es utilizando WSH para que ejecute el
archivo.


cWav = GetFile("WAV")

oWsh = CreateObject("Wscript.Shell")

oWsh.Run("sndrec32 /play /close " + cWav ,0, .T.)


 



Por: David Amador T

Remover caracteres de una cadena de texto

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Esta es una
de las rutina básicas que siempre debemos tener en cuenta para validar
nuestras cadenas de texto o extraer solo los caracteres que necesitemos.


En este
ejemplo quiero extractar todos los caracteres excepto los asteriscos ( * )


? STRTRAN("8S3F292Q843*4567*0Q7S82MU-6",
"*")


De otra
forma


?
CHRTRAN("8S3F292Q843*4567*0Q7S82MU-6", "*", "")


En caso que
solo quiera extractar los números que existan en la cadena


cCadEvalua = "7U.$W592?:0-*3DE4" 
&& Cadena a evaluar

cCaraExt = "1234567890"   

&& Caracteres a extractar

? CHRTRAN( cCadEvalua, CHRTRAN( cCadEvalua, cCaraExt, "" ), "" )




 



Por: David Amador T

Nombre del dominio en que se logeo el PC

Visual Fox Pro, Trucos Comentarios ( 0 ) »
p align="justify">Un pequeño
truco para cuando quieras determinar en que dominio se logeo un
determinado PC.


? GetEnv("USERDOMAIN")



 



Por: David Amador T

Asignar CursorSchema manualmente

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Cuando
utilizamos CursorAdapter e intentamos asignar la estructura de la tabla a
la propiedad CursorSchema y dicha estructura supera los 255 caracteres no
es posible hacerlo porque la ventana de propiedades solo

puede almacenar 255 caracteres en una propiedad.


Lo que
debes hacer es ir al evento INIT del cursoradapter y colocar la estructura
de la tabla de la siguiente forma


TEXT TO
THIS.CursorSchema NOSHOW

    Codigo C(8),
Apellidos C(30),
Nombres C(30),
Salario N(12,2)

ENDTEXT



 


Por: David Amador T