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

Ejecutar un procedimiento almacenado de SQL Server desde Fox 2.6

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Ya les comente de la librería fpsql.fll, ahora veamos como trabaja. En este caso ejecutaremos un procedimiento almacenado de SQL Server.

Set Library To Sys(2004)+"fpsql.fll"

Public errval, errmsg, handle
errval=0

errmsg=
" "
SourceName= "test"
User=
"sa"
passwd=""

* Conexión
handle=DBConnect(SourceName,User,passwd)

If handle > 0
   
Wait Window
"Conectado"
Nowait
Else
   
Err=DBError(0,@errmsg,@errval)
   
Wait Window Str(errval)+" "+errmsg
Endif

=DBSetOpt(handle,"Asynchronous",0)

=DBSetOpt(handle,
"BatchMode",1)
=DBSetOpt(handle,
"ConnTimeout",0)
=DBSetOpt(handle,
"Transact",1)
=DBSetOpt(handle,
"UseTable",0)

err=DBExec(handle,
"use pubs")


If Err < 0
   =
MessageBox("Error")
   
Return .F.
EndIf


SqlCmd=
"Execute ConsultarOrden '25'"
err=DBExec(handle,SqlCmd)

If err > 0
   
Browse
Else
   
=MessageBox("Error")

   
Return .F.
Endif

*Desconexión
err=DBDisconn(handle)
 


Por: David Amador T

Conocer las impresoras compartida de la red

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Excelente truco con el cual podrás determinar cuales son las impresoras compartidas; en este ejemplo se utiliza WSH.

oWSH = Createobject("WScript.Network")
oImp = oWSH.EnumPrinterConnections()


For
i=1 To oImp.Count-1
   ?oImp.
Item(i)
Endfor


Por: David Amador T

Toolbar y Menús..

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Un buen ejemplo de como podemos sincronizar un toolbar con opciones de menús...

Public oTbr
oTbr =
Createobject("MyToolBar")
oTbr.
Visible
= .T.

Define Class MyToolBar As Toolbar
   Caption
= "Sync toolbar with menu"
   
Add Object cmd1 As CommandButton With;

       
caption = "File New"

   
Add Object cmd2 As CommandButton With;
       
caption = "File Menu"


   
Add Object cmd3 As CommandButton With;
       
caption = "Spell Check"

   
Add Object cmd4 As CommandButton With;

       
caption = "Help Search"

   
Procedure cmd1.Click
       Keyboard
"{ctrl+n}"
   
Endproc

   
Procedure
cmd2.Click
       Keyboard
"{alt+f}"
   
Endproc

   Procedure
cmd3.Click
       Keyboard
"{alt+t}S"
   
Endproc

   
Procedure
cmd4.Click
       Keyboard
"{alt+h}s"
   
Endproc

Enddefine
 


Por: David Amador T

Conexión a SQL Server desde Fox 2.6

Visual Fox Pro, Trucos, Bases de datos, SQL Server Comentarios ( 0 ) »
Esta es una pregunta muy habitual, y es ¿Como puedo hacer para conectarme a SQL Server desde Fox Pro bajo MS-DOS?.

Existe una librería llamada FPSQL.FLL que permite conectarse a diversas bases de datos a través de ODBC dede Fox 2.6; La librería FLL posee casi las mismas funciones que VFP para conectarse a través de ODBC.


DbGetOpt()
DBSetOpt()
DBConnect()
DBDisconn()
DBExec()
DBTransact()
DbTables()

Entre otras.....


Por: David Amador T

Pasar datos a Word y Formatear texto

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Excelente ejemplo que demuestra como pasar datos de VFP a Word a través de automatización y aplicarle formato al texto dependiendo de algunas condiciones.

Use Home(2)+"Dataorders.dbf"Shared

oWord = CreateObject("Word.Application")
oDoc = oWord.Documents.
Add()
oRange = oDoc.
Range()
oDoc.
Tables.Add(oRange, 20, 2)

oTable = oDoc.
Tables(1)

With oTable
  .Cell(1, 1).
Range.Font.Size= "10"
  
.Cell(1, 1).Range.Font.Name= "Arial"
  
.Cell(1, 1).Shading.BackgroundPatternColor = 0
  .Cell(1, 1).
Range.Font.Color
= 16777215
  .Cell(1, 1).
Range.Text= "Vendedor"
  
.Cell(1, 2).Range.Font.Size= "10"
  
.Cell(1, 2).Range.Font.Name= "Arial"
  
.Cell(1, 2).Range.Font.Color
= 16777215
  .Cell(1, 2).Shading.BackgroundPatternColor = 0
  .Cell(1, 2).
Range.Text= "Total de la venta"
EndWith

nPos = 2
Scan For Recno() <= 20
  nPos = nPos + 1

  
With oTable
    .Cell(nPos, 1).
Range.Font.Color= 0
    .Cell(nPos, 1).
Range.Text= Cust_Id
    .Cell(nPos, 1).Shading.BackgroundPatternColor = 15132390

    
If
Order_Amt <= 600 Then
      
.Cell(nPos, 2).Shading.BackgroundPatternColor = 65535
    
Else
      
.Cell(nPos, 2).Shading.BackgroundPatternColor = 8454016
    
EndIf

   
.Cell(nPos, 2).Range.Font.Color= 1
   .Cell(nPos, 2).
Range.Text= Transform(Order_Amt)

   
EndWith
EndScan

Use In
Orders
oWord.
Visible = .T.


Por: David Amador T

Habilitar o inhabilitar los themas en WinXP con API

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Y si necesitas habilitar o deshabilitar los Themas de WinXP pues aquí tienes la función API para hacerlo.

En el ejemplo se deshabilitaran los Themes de WinXP y después de 5 segundos se reestablecerán.

Declare Integer EnableTheming In "UxTheme.dll"
Integer nEnable

=EnableTheming(.F.)
Inkey(5, "H")
=EnableTheming(.T.)
 


Por: David Amador T

Exportar tabla a Excel de forma sencilla

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Excelente ejemplo de como puedes exportar una tabla a Excel de forma sencilla.

Ideal para cuando la tabla a exportar no tiene muchos campos y registros.

oExcel = Createobject("Excel.Application")
oExcel.WorkBooks.
Add


Use Home
()+"samplesdataCustomer"Shared
Set Talk Off

nNumRegExp = 15 && Reccount()

For i= 1 To nNumRegExp
   
For J = 1
To Fcount()
       oExcel.ActiveSheet.cells(i,J).
Value= Eval(Field(J))
   
Next
   Skip
Next

oExcel.Visible
= .T.
 



Por: David Amador T

Enviando emails con Jmail

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Ejemplo de como enviar correos utilizando el Activex Jmail...

oMail = Createobject("jmail.SMTPMail")
oMail .ServerAddress =
"mail.dominio.com"
oMail.AddRecipient ("destinatario@dominio.com")
oMail.Sender =
"quienenvia@dominio.com"
oMail.SenderName = "Nombre quien envia"

oMail.Subject =
"Titulo del email"
oMail.Body = "Texto del email"
oMail.AddAttachMent ("C:
utaarchivo.txt"
)
nRet = oMail.Execute()

If nRet != 0
   =
Messagebox(Transform(oMail.errorCode))
EndIf

Release
oMail





Por: David Amador T

Crear una base de datos de Access desde VFP

Visual Fox Pro, Trucos, Bases de datos Comentarios ( 0 ) »
Utilizando ADOX podemos crear una base de datos de Access y agregarle tablas, y a estas campos e índices.

oCata = CreateObject("ADOX.Catalog")
cCadBD =
"Provider=Microsoft.Jet.OLEDB.4.0;"+;
           "Data Source = C:MiBaseDeDatos.mdb;"

* Crea la base de datos
oCata.Create(cCadBD)

oCata.ActiveConnection = cCadBD


oTabla =
CreateObject("ADOX.Table")

* Nombre de la nueva tabla
oTabla.Name = "Alumnos"

nTipoInt = 3
nTipoFecha = 7
nTipoVarChar = 202
* El último parámetro es el ancho del campo

* Agregando campos a tabla Alumnos
With oTabla.Columns
   
.Append("CodiAlum",
nTipoInt)
   .Append(
"Apellidos", nTipoVarChar, 70)
   .Append(
"Nombres", nTipoVarChar, 70)
   .Append(
"FecNace", nTipoFecha)
   .Append(
"Direccion", nTipoVarChar, 200)
EndWith

* Agrego la tabla
oCata.Tables.Append(oTabla)

Release oTabla, oCata

 
 


Por: David Amador T

Justificar textos en reportes

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Truquito muy bueno que permite poder justificar textos en los reportes utilizando el control RTF.

Para probar el ejemplo crea un reporte llamadortfdemo.frx y agrégale un control RTF, le colocas como control source ctext.gText y le marcas la opción que dice "Campo general de una tabla"

Local cStr

cStr=
"Note that there is a limit of 32 characters "+;

   "total for the sum of text before and text "+;

   
"after for simple numbering. Multilevel numbering "+;
   
"has a limit of 64 characters total for the sum "+;

   
"of all levels.NOTE: The file must have a"+;
   
".RTF extension to work properly."+;
  
"Note that there is a limit of 32 characters "+;

   
"total for the sum of text before and text "+;
   
"after for simple numbering. Multilevel numbering "+;
   
"has a limit of 64 characters total for the sum "+;

   
"of all levels.NOTE: The file must have a"+;
   
".RTF extension to work properly."

Create Cursor ctext (lctext m,gText g)
Insert Into ctext (lctext)
Values (cStr)

_rtfFile =
"c:"+Sys(3)+".rtf"

Scan
   Set Textmerge To
&_rtfFile Noshow
   Set Textmerge On
   
\{
tf1ansiqj <<ALLT(cText.lcText)>>}
   
Set Textmerge To
   Append General
gText From &_rtfFile Class "RICHTEXT.RICHTEXTCTRL.1"
EndScan

Report Form
rtfdemo.frx Preview Noconsole
 


Por: David Amador T

Crear una consulta (vista) en una base de datos de Access

Visual Fox Pro, Trucos, Bases de datos Comentarios ( 0 ) »
Ejemplo que demuestra como podemos a través de ADOX crear una consulta (vista) en una base de datos de Access desde VFP.

oCata = CreateObject("ADOX.Catalog")

cCadCon =
"Provider=Microsoft.Jet.OLEDB.4.0;"+;
           
"Data Source = C:Nwind.mdb;"+ ;
           
"User ID=;" +;
           
"Password=;"

oCata.ActiveConnection = cCadCon

oCmd = CreateObject("ADODB.Command")

* Comando a ejecutar en la vista (consulta)
oCmd.CommandText = "Select * From Empleados"

oCata.Views.Append("VistaEmpleados", oCmd)

Release oCmd, oCata






Por: David Amador T

PCs conectados a la Red

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Últimamente se a convertido en una pregunta frecuente ... Puedes conocer los nombres de los equipos e impresoras compartidas.

Esto te devolverá los nombres de todos los equipos que se encuentran en la RED con el nombre que le pases..


ANetResources(APcs,
"NOMBRE-RED",1)

For i = 1 to Alen(APcs)
   ? APcs(i)
Next
 


Por: David Amador T

Determinar si un año es bisiesto

Visual Fox Pro, Trucos Comentarios ( 0 ) »
No hace falta explicar.... je, je, je...

Existen diversas formas de terminarlo ... la primera:

nAño = 2004
? !
Empty(Date(nAño,
02, 29))

nAño = 2005
? !
Empty(Date(nAño, 02, 29))
 

Otra forma utilizando MOD


?
Mod(2004, 4)
?
Mod(2005, 4)
 



Por: David Amador T

Mostrar un reporte dentro de un formulario

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Excelente truco con el cual podrás mostrar tu reporte en un formulario.

oRep =Createobject("Form")

With oRep
    .
Caption= "Titulo del Reporte"
   
.WindowState= 2

    .
Show()
Endwith

Report Form MiReporte.frx Preview Window (oRep.Name)



Por: David Amador T

Busquedas no sensitivas con Select (SQL)

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Excelente con el que podrás realizar búsquedas no sensitivas a mayúsculas o minúsculas.

En este ejemplo vamos a buscar en la tabla los productos cuyo nombre es "producto" sin importar como lo escriba el usuario

Create Cursor MiTabla(NomProd C(30))

Insert Into MiTabla Values("Producto 1")

Insert Into MiTabla Values("eL PrOduCtO 2")
Insert Into MiTabla Values("prodUCTO 3")
Insert Into MiTabla Values("Mi
PRODUCTO X"
)
Insert Into MiTabla Values("Otro")
Insert Into MiTabla Values("re Otro")

cValBus = "pRodUctO"
Select * From
MiTabla Where Atc(cValBus,NomProd) > 0


Por: David Amador T