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

Gráfico en Excel a través de Automatización

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Otra forma de generar gráficos en Excel desde VFP a través de automatización

#Define
Tab Chr
(9)
#
Defin
CRLF Chr(13)+Chr(10)

Public oGraph

_Cliptext = "" + Tab + "Depto X" +
Tab + "Depto Y"
+ CRLF +;
   "Arroz" +
Tab + "248" + Tab
+ "297" + CRLF+;
   
"Maíz"
+ Tab + "339" + Tab
+ "440"
+ CRLF+;
   
"Cereal"
+
Tab
+
"500"
+
Tab
+
"489"
+ CRLF+;

   
"Papas"
+
Tab
+
"125"
+
Tab
+
"235"
+ CRLF+;

   
"Otros"
+
Tab
+
"631"
+
Tab
+
"455"
+ CRLF



oGraph = Getobject("","Excel.Chart")



With
oGraph.Application

    .Visible
= .T.

   
.WorkSheets(1).Cells().
Clear

   
.Worksheets(1).Cells(1,1).PasteSpecial

   
.Charts
[1].AutoFormat(-4100,1)

EndWith
 


Por: David Amador T

Comprimir y descomprimir con WinXP

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Puede incorporar dentro de sus aplicaciones rutinas para comprimir y descomprimir archivos a través de WinXP o WinME.

************************************
* COMPRIMIR
************************************
cNuevoZip = "C:MiArchivo.Zip"
cOrigen = "c:Directorio"

Strtofile(Chr(0x50)+Chr(0x4B)+Chr(0x05)+Chr(0x06)+Replicate(Chr(0),18),cNuevoZip)

oShell = Createobject("Shell.Application")

For Each oArchi In oShell.NameSpace(cOrigen).Items
   oShell.NameSpace(cNuevoZip).CopyHere(oArchi)
Endfor
 

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

* DESCOMPRIMIR
************************************
cMiZip = "C:MiArchivo.Zip"
cDirDesti = "c:Directorio"

oShell = Createobject("Shell.Application")

For Each oArchi In oShell.NameSpace(cMiZip).Items

   oShell.NameSpace(cDirDesti).CopyHere(oArchi)
EndFor
 


Por: David Amador T

Copiar a Excel .... Súper rápido

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Son muchas las rutinas que copian el contenido de una tabla o cursor a Excel; está es una de las formas más rápidas. He copiado una tabla de 4000 registros y 30 campos en 7 segundos.

Use Tabla
cTmp =
Getenv("TEMP")+"" + Sys(2015) + ".Tmp"


Copy To (cTmp) Delimited With Tab
_Cliptext
= Filetostr(cTmp)

oExcel= Createobject("Excel.Application")

With oExcel
   
.DisplayAlerts = .F.
   .Workbooks.
Add()
   .
Range("A1").PasteSpecial

EndWith

oExcel.Workbooks(1).SaveAs("c:\prueba.xls")

oExcel.Quit
oExcel= .Null.
Release oExcel
 


Por: David Amador T

Ejecutar macro de Excel

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Con este truco veremos como podemos ejecutar un macro de Excel a través de automatización.

oExcel = Createobject("Excel.Application")

With oExcel
   .Workbooks.
Open("c:DirMiDocumento.xls")
   .
Visible
= .T.
   .
Run("MiMacro")
EndWith

oExcel.Quit

Release
oExcel
oExcel =
Null
 


Por: David Amador T

Ejecutar código de JavaScript desde VFP

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Este truco te permitirá poder ejecutar instrucciones o archivos de JavaScript desde VFP.

oSC = Createobject("Wscript.Shell")
oSC.
Run("Cscript.exe
MiArchivo.js"
)

Release oSC


 


Por: David Amador T

Cambiar características de los label de los ejes de MsChart

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Un truco muy bueno cuando utilizas el MsChart para hacer tus gráficos.

With Thisform.OleMsChart.Axes(1).TickLabels.Font
    .Name= "Arial"
   
.Size= 9

   .
Color = Rgb(255,94,94)
EndWith

 


Por: David Amador T

Desplazamiento con "ENTER" en grid

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Por defecto cuando presionamos "Enter" en un grid este se desplaza a la siguiente columna, pero podemos hacer que se desplace al siguiente registro.

Lo que debes hacer es ir al evento KeyPress del TextBox vinculado a la columna y escribir el siguiente código

If nKeyCode = 13

Nodefault
Keyboard
"{DNARROW}"
EndIf


Por: David Amador T

Determinar el orden de un índice

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Podemos determinar si el índice de una tabla esta ordenado de forma ascendente o descendente ...

Use Home(2)+ "Dataemployee.dbf"
Set Order To EMP_ID Descending


?
Iif("DESCENDING"$ Set("ORDER"),"DESC","ASC")


Por: David Amador T

Número de meses entre 2 fechas

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Una forma sencilla de calculas cuantos meses hay entre 2 fechas.

dFecha1 = Ctod("04.01.01")
dFecha2 =
Ctod("05.01.01")

? (Year(dFecha2)+Month(dFecha2)/;

   12-
Year(dFecha1)-Month(dFecha1)/12)*12



Por: David Amador T

Copiar registros al Clipboard

Visual Fox Pro, Trucos Comentarios ( 0 ) »
La forma más sencilla de copiar datos de una tabla al Clipboard .. y si lo deseas de esa forma puedes expórtala a cualquier parte.

Use Home(2) + "Dataemployee.dbf"

_Vfp.DataToClip("Employee")

 



Por: David Amador T

Enviar email con OutLook

Visual Fox Pro, Trucos Comentarios ( 1 ) »
Puedes enviar emails a través de OutLook (No OutLook express) de forma sencilla a través de automatización.

oOutLook = Createobject("Outlook.Application")
oEmail = oOutLook.CreateItem(0)
oEmail.
Display
With
oEmail
   .Recipients.
Add("dav_amador@yahoo.com.mx")
   .Subject =
"Envio de
emails"
   
.Importance = 1
   .Body =
"Aquí va el texto del email"
   
.Attachments.Add("C:RutaMiArchivo1.ext")
   .Attachments.
Add("C:RutaMiArchivo2.ext")
   .Send
EndWith


Release oEmail
Release oOutLook


Por: David Amador T

Recuperar archivos adjuntos de email desde OutLook

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Puedes obtener desde VFP los archivos adjuntos de un email a través de automatización con OutLook.

oOutLook = Createobject("Outlook.Application")
oNMapi = oOutLook.GetNamespace(
"MAPI")
oInbox = oNMapi.GetDefaultFolder(6)

oEmail = oInbox.Items(3) && Email Nro 3

If oEmail.Attachments.Count> 0 Then
    oEmail.Attachments(1).SaveAsFile("c:miarchivo.ext")
EndIf



Por: David Amador T

Ruta y nombre del EXE desde donde inicio la aplicación

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Una de las formas de obtener la ruta desde donde se inicio la aplicación, muy útil para cuando deseas establecer la ruta de búsquedas de tus archivos.

Declare Integer GetModuleFileNameIn WIN32API ;
    integer hinst, String @lpszFilename,;
   
integer
@cbFileName

cRuta = Space(256)
nBytes = 255

=GetModuleFileName(0, @cRuta, @nBytes)

nBytes = At(Chr(0),cRuta)

cRuta = Iif(nBytes>1,Substr(cRuta,1,nBytes-1),"")
? cRuta
 



Por: David Amador T

Lista y número de semanas entre 2 fechas

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Si deseas obtener cuales y cuantas son las semanas entre 2 fechas, este ese el truco.

Local Array arrFridays[1]
lnFridays = Days2Array(Date(),Date()+60,6,@arrFridays)
? lnFridays
Display Memory Like arrFridays

Function Days2Array
    Lparameters tdStart, tdStop, tnDow, taArray

   
Local lnWeeks,ix, lnBase

   lnWeeks =
Int((tdStop-(tdStart-Dow(tdStart,tnDow) + 1))/7)

   
If tdStart = (tdStart-Dow(tdStart,tnDow) + 1)
       lnWeeks =lnWeeks + 1
       lnBase = -1
   
Else
       
lnBase = 0
   
EndIf

   
If
lnWeeks > 0
       
Dimension taArray[lnWeeks]

       
For ix = 1 To lnWeeks
           taArray
[ix]=tdStart-Dow(tdStart,tnDow)+1+7*(ix+lnBase)
       
Endfor
   Endif


   Return lnWeeks


Por: David Amador T

Configurar impresora como predeterminada

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Una pregunta muy frecuente ..... aquí esta una de las formas de hacerlo.

En este caso utilizas WSH para configurar como predeterminada una impresora.

cPrint = GETPRINTER()

If !Empty(cPrint)
   oWSH =
CREATEOBJECT("WScript.Network")

   oWSH.SetDefaultPrinter(cPrint)

   
Release oWSH
   oWSH =
Null
EndIf
 



Por: David Amador T