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

Agregar pie de pagina a un documento de Word (Automatización)

Visual Fox Pro, Trucos Comentarios ( 0 ) »

En este truco a través de automatización agregamos a un documento de Word un pie de pagina.


oWord = CreateObject( "Word.Application")
oWord.Documents.Add()
oWord.ActiveWindow.ActivePane.View.SeekView = 4
oWord.Selection.TypeText("Texto del pie de pagina")
oWord.Visible= .T.

 


Por: David Amador T

Seleccionar registro al azar

Visual Fox Pro, Trucos Comentarios ( 0 ) »

En muchas ocasiones necesitamos escoger un registro de una tabla de forma aleatorio ... aquí tienes varias formas.


Rand(-1)
nPos = Int(Rand() * Reccount("Tabla"))+ 1
Go nPos in Tabla

Browse

Otra forma


Select Int(Rand()*10000), * From tabla
Order By
1

 



Por: David Amador T

Insertar gráfico en el pie de pagina de documento de Word (Automatización)

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Últimamente he visto muchas preguntas al respecto ... Con este truco podrás insertar un gráfico en el pie de pagina de un documento de Word a través de automatización.


oWord =Createobject("Word.Application")

With oWord
    .Documents.Add()
    .ActiveWindow.ActivePane. View.SeekView = 4
    . Selection.InlineShapes.AddPicture(Getfile(" JPG"))
    . Visible= .T.
Endwith


Por: David Amador T

Crear archivo MHT utilizando CDO

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Un archivo con extensión MHTML es un documento Html que contiene en un único archivo todos los archivos (gráficos, texto...etc) de pagina web.

Para este truco utilizaremos el objeto CDO que viene en Windows.

cStr = ""

Declare Integer ShellExecute In "Shell32.dll" ;
    INTEGER HWnd, StringlpVerb, ;
    STRING lpFile, String
lpParameters, ;
    
STRING
lpDirectory,
Long nShowCmd
 
cArchivo = Sys(2015) + ".mht"
cUrl = " http://www.davphantom.net/modulo.asp"
 

oMSG = Createobject( "CDO.Message")
oMSG.CreateMHTMLBody(cUrl)

cStr = oMSG.getstream
cStr.SaveToFile(cArchivo, 1)

ShellExecute(0, "Open", cArchivo, "","", 0)

Release oMSG



Por: David Amador T

Sistema operativo que utilizas

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Existen diversas formas de conocer que sistema operativo utilizas; está es una forma sencilla pero bastante buena.

cOsx = Os(1)

cSistema = ""

Do Case
    Case "6.00" $ cOsx
          cSistema = "LongHorn"
     Case "5.02" $ cOsx
         cSistema = "2003"
    Case "5.01"
$ cOsx
         cSistema = "XP"
    Case "5.0" $ cOsx
         cSistema = "2000"
    Case "NT" $ cOsx
         cSistema = "NT"
    Case "4.1" $ cOsx
         cSistema = "98"
    Case"4.9" $ cOsx
        cSistema = "ME"
    Case "4.0" $ cOsx Or "3.9" $ cOsx

        cSistema =
"95"

    Case "3." $ cOsx
        cSistema = "3.1"
Endcase

? "Windows " + cSistema




Por: David Amador T

Agregar a un Combo cuando no exista el elemento

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Es un truquito básico pero bastante útil cuando queremos agregar un elemento a un combo cuando escribimos en él pero solo cuando el elemento no exista.

En el evento KeyPress del Combo escribimos lo siguiente:


If nKeyCode = 13 >Then
&& Enter
    lExists = .F.
   
For
i = 1To This. ListCount
         If Upper(This.ListItem<(i))= Upper(Alltrim( This.DisplayValue))
              lExists
= .T.
            Exit
         Endif
    Endfor

 
    If Not lExists

        This.AddItem( This.DisplayValue)
         Wait Window "Agregado"
     Else
         Wait Window "Existente"
    Endif
Endif



Por: David Amador T

Imprimir un archivo PDF

Visual Fox Pro, Trucos Comentarios ( 0 ) »

En muchas ocasiones se necesita imprimir un archivo PDF (Acrobat Reader) y pensamos diferentes formas de hacerlo.... esta es una de las más sencillas.

Para eso utilizamos la función ShellExecute del API de Windows.


Declare Integer ShellExecute In shell32. Dll;
    long HWnd,String cOperation, ;

    string cFile, String t cParam, ;
    string cDir, Integer nShow

cRutaPDF = "C:Rutaarchivo.pdf"

ShellExecute(0, "print", cRutaPDF,"", Fullpath(""),0)




Por: David Amador T

Evitar que se digiten espacios en un TextBox

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Este truco es ideal para TextBox en donde digitaras códigos los cuales no pueden contener espacios.


En el evento KeyPress del TextBox escribimos lo siguiente:


If nKeyCode = 32
     Nodefault
Endif



Por: David Amador T

Conocer el programa predeterminado de envió de correos

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Últimamente he recibido varias consultas acerca de este tema ... Aquí esta la forma de conocer el programa de envió de correos predeterminado ....

En este truco utilizo la clase Registry que viene con VFP la cual facilita el acceso al registro de Windows.

Set classlib to Home(1) + "ffc/registry.vcx"
oReg = CreateObject("Registry")
 
cValue = ""
HKclass = "-2147483648"
cRut = "mailtoshellopencommand"

oReg.GetRegKey("", @cValue, cRut, HKclass)

?cValue




Por: David Amador T

Validar dirección de email

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Puedes validar si una dirección de correo esta escrita correctamente utilizando un analizador de expresiones; en este caso utilizaremos el de Visual Basic Script (VBS).

* cEmail = ".@aa.co"
cEmail = " dav_amador@davphantom.net"
 
oRegE = CreateObject( "VBScript.RegExp")
oRegE.IgnoreCase = .T.

oRegE.Pattern = "^[A-Za-z0-9](([_.-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([.-]?[a-zA-Z0-9]+)*).([A-Za-z]{2,})$"
 
lOk = oRegE.Test(cEmail)

Release oRegE

?Iif(lOk, "Correcta","Incorrecta")


Por: David Amador T

Determinar si un ActiveX esta registrado

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Uno de los problemas más frecuentes con los
ActiveX es el determinar si estan registrados, está es una forma sencilla de
conocerlo.


Todos los OCX tienen un nombre (referencia) interno, esta puede ser el GUID o
el nombre de la clase, en este ejemplo utilizaremos el nombre de la clase. ¿Pero
como hacemos para conocer este nombre de un ActiveX?... Creamos el Objeto en un
formulario de VFP y luego en la propiedad OleClass estará el nombre que
necesitamos.


Algunos ejemplos:



?OcxRegistrado("mscomctllib.treectrl.2")
&& Treeview


?OcxRegistrado("mscomctl2.monthview.2")
&& MontView


?OcxRegistrado("mswinsock.winsock.1")
&& WinSock


?OcxRegistrado("mscomctllib.progctrl.2")
&& ProgressBasr


?OcxRegistrado("mscal.calendar.7")
&& Calendar


?OcxRegistrado("agent.control.2")
&& Microsoft Agent


?OcxRegistrado("msflexgridlib.msflexgrid.1")
&& MSFlexGrid


?OcxRegistrado("mscomctl2.dtpicker.2")
&& Date Time Picker


?OcxRegistrado("mschart20lib.mschart.2")
&& Ms Chart


?OcxRegistrado("mscommlib.mscomm.1")
&& MsComm



Function OcxRegistrado(cClase)



   
Declare Integer
RegOpenKey
In
Win32API ;

       
Integer
nHKey,
String
@cSubKey,
Integer
@nResult

 

   
Declare Integer
RegCloseKey
In
Win32API ;

       
Integer
nHKey


    nPos = 0


    lEsta = RegOpenKey(-2147483648, cClase, @nPos) = 0



    If
lEsta

        RegCloseKey(nPos)

   
Endif


    Return lEsta



Endfunc





Por: David Amador T

Número de paginas de un documento de Word (Automatización)

Visual Fox Pro, Trucos Comentarios ( 0 ) »

En este truco utilizo automatización para conocer el número de paginas de un documento de Word; ejecute el código y seleccione un archivo de Word.

oWord = CreateObject( "Word.Application")
oDoc = oWord.Documents. Open(Getfile())
oDoc.Repaginate
 
cPag = Transform(oWord. Selection.Information(4))

=Messagebox( "Este documento tiene " + cPag + " paginas")
 

oWord.Quit
Release oWord


Por: David Amador T

Diferencia entre dos DateTime - Horas - Minutos - Segundos

Visual Fox Pro, Trucos Comentarios ( 1 ) »

Este truco es bastante útil ... Calcular el número de horas, minutos y segundos entre dos valor DateTime.

?HMSDif(Datetime(),
Dtot(Date()-10))

Function HMSDif (tDateTime1, tDateTime2)

   
Local
cRet, nS
    cRet = ""
 
    If! Vartype(tDateTime1)= "T"
Or !Vartype(tDateTime2)= "T"
         cRet = "E"

    Endif
 
    If Empty(cRet)
        If tDateTime2 > tDateTime1
              nS = tDateTime2 - tDateTime1
       
Else
             nS = tDateTime1 - tDateTime2
        Endif
 
        nS = Int(nS)

        cTime = Transform(Int(nS/3600),"9999")+":"+ ;
         Transform(Mod(Int(nS/60),60),"99")+":"+ ;
         Transform(Mod(nS,60)," 99")
       
Return cTime
    Else
         =Messagebox("Los valores deben ser DateTime")
          Return ""
    Endif

Endfunc


Por: David Amador T

Degradado en formulario de izquierda a derecha

Visual Fox Pro, Trucos Comentarios ( 0 ) »

A veces queremos cambiar el aspecto de un formulario utilizando colores degradados; este truco te ayudará.


En el Load del formulario coloca el siguiente código:


For lnRow = 0 >To This.Width
    This.ForeColor= Rgb(0,0,255-255 * lnRow/This.Width)

This.Line(lnRow, 0,lnRow, This.Height)
Next lnRow



Por: David Amador T

Utilizar Microsoft Agent

Visual Fox Pro, Trucos Comentarios ( 1 ) »

Microsoft Agent nos permite agregarle interactividad a nuestras aplicaciones al estilo de Office, el cual puede mostrar a Merlin, Clipo, Rocky.. etc realizando diversas acciones.

Utilizaremos la clase _Agent que viene con VFP para mostrar a Merlin...

Set Classlib To Home(1) + "ffc\_agent.vcx" Additive

oAgent = Createobject( "_Agent")

With Agent
    . Load("Merlin","merlin.acs")
     .setActiveAgent(" Merlin")
    . Show(Rand() * 400, Rand() * 400)
    .speak("Bienvenidos...")

    .speak("Esta
es una prueba"
)
Endwith

 


Por: David Amador T