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

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

Calcular el número del día en el año

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Función que te devuelve cuantos días han pasando en el año hasta una fecha determinada.

?DiaDelAño(Date())
?DiaDelAño(
Date()-10)
?DiaDelAño(
Date()-60)


Function DiaDelAño(dDate)
    nDia = dDate -
Date(Year(Date()), 1, 1) + 1
   
Return(nDia)

Endfunc
 

Por: David Amador T

Conocer el número de decimales de un número

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Te recomiendo este truco; en algunas ocasiones queremos determinar cuantos decimales tiene un número para realizar un determinado redondeo.

nValor = 12345.1234
nPos =
At(".",
Transform(nValor))
?
Iif(nPos>0,Len(Substr(Transf(nValor), nPos+1)),0)
 

Por: David Amador T

Buscar registros duplicados en una tabla

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Truco básico pero bastante útil.


En este caso determinados los registros duplicados por un campo especifico



Select Campo
From
Tabla
Group By
Campo
Having Count(Campo)>
1


 



En este caso determinados los registros duplicados por todo el registro



Select Campo1 + Campo2 + Campo3 +
Campo4
As
X
From
Tabla;

   
Group By
X;

   
Having Count(Campo1+Campo2+Campo3+Campo4)
> 1



 

Por: David Amador T

Generar grafica en Excel a través de automatización

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Muy bueno y sencillo ejemplo de como generar gráficos de áreas en Excel a través de automatización.

oExcel = Createobject("Excel.Application")
oExcel.Workbooks.
Add
For
i=1 To 3

    For
x=1
To
13

       
oExcel.Cells(i,x).
Value
=
Ceil(Rand()*1000)

   
Next

Next



oExcel.
Range("A1:M1;A2:M2;A3:M3").Select


oGraph = oExcel.Charts.
Add()



With
oGraph

   
.
Type
= -4101

   
.Legend.
Clear

   
.Perspective=100

   
.Elevation=0


EndWith



oExcel.
Visible
= .T.


 

Por: David Amador T

Obtener el símbolo de la moneda del País

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Podemos formatear un número y agregarle el símbolo de la moneda del país que este establecido en la configuración regional de Windows.

En el ejemplo estamos utilizando el API de Windows.En este caso el País es Colombia (nLocal = 1033)

Declare Integer GetCurrencyFormat In "kernel32" ;
   
INTEGER
Locale, Integer dwFlags,;
   
STRING lpValue, Integer lpFormat,;
   
STRING lpCurrencyStr,
Integer cchCurrency

cBuf = Space(255)
cValue =
"12345.6"
nLocal = 1033 && Este identifica el pais Colombia

GetCurrencyFormat(nLocal, 0, cValue, 0, @cBuf,
Len(cBuf))
cBuf =
Left(cBuf,At(Chr(0),cBuf)-1)

? cBuf
 

Por: David Amador T

Generando fechas aleatorias

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Esta es una forma de poder generar fechas al azar ...


?Int(Rand() * 365) + Date()

 

Por: David Amador T

Impedir que un formulario sea cerrado

Visual Fox Pro, Trucos Comentarios ( 0 ) »
En ocasiones no queremos que el usuario cierre un formulario ... esta es una forma de hacerlo.

En el Evento QueryUnload del Formulario

NODEFAULT

 


Por: David Amador T

Mostrar imágenes en ListBox

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Un buen truco de como puedes mostrar imágenes variadas en un ListBox.

Public oform1
oform1=
Newobject("form1")
oform1.
Show
Return

Define Class form1 As Form
   Top
= 65
   
Left = 192

   
DoCreate = .T.
   
Caption = "Imagenes en ListBox"
   
Name = "Form1"
   
Add Object list1 As ListBox With
;
   
Height = 181, ;
   
Left = 36, ;
   
Top = 24, ;
   
Width = 300, ;

   
Name = "List1"
 
   
Procedure list1.Init
       Set Path To Home
(4) + "ICONSMISC"
       
With This
           
.AddItem("Usuario 1",1,1)
           .
Picture(1) = "FACE01.ICO"

           .AddItem("Usuario 2",2,1)
           .
Picture(2) = "FACE02.ICO"


           .AddItem("Usuario 3",3,1)
           .
Picture(3) = "FACE02.ICO"


           .AddItem("Usuario 2",4,1)
           .
Picture(4) = "FACE03.ICO"
        EndWith
   
EndProc
EndDefine
 

 

Por: David Amador T

Grid multiselección

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Una de las preguntas habilítales es como podemos hacer para poder seleccionar múltiples registros en un grid.

En este caso utilizamos un checkbox para hacer la selección de los registros....

Public oForm
oForm =
Createobject("FrmGrid")

oForm.
AddObject("Grid1","Grid")

With oForm.Grid1
   .
ColumnCount = 3
   
.
Height = 288
   .
Width = 320
   .
Left = 24
   .
Top = 24
   .Column1.
Width= 17

   .Column1.Header1.
Caption= ""
   
.Column1.AddObject("Check1","CheckBox")
   .Column1.Check1.
Visible
= .T.
   .Column1.
CurrentControl= "Check1"
   
.Column1.Sparse= .F.
   .Column2.
Width= 50
   
.Column2.Header1.
Caption= "Código"
   
.Column3.Width= 194
   
.Column3.Header1.
Caption= "Nombre"
   
.SetAll("DynamicBackColor","IIF(Ok, RGB(0,220,210), RGB(255,255,255))", "COLUMN")

   .
Visible = .T.

Endwith

oForm.Visible = .T.

Define Class FrmGrid As Form
   Top
= 0
   
Left = 0
   
Height = 334

   
Width = 376
   
DoCreate = .T.
   
Caption = "Grid multiselección"
   
WindowType = 1
   
WindowState
= 0
   
Name = "FrmGrid"

    Procedure Load
       Use Home
() + "SamplesDataemployee.dbf"
       
Select .F. As OK, Emp_ID, Trim(Last_Name)+" " + Trim(First_Name) ;
           
From
Employee Into Cursor Empleados Readwrite
   EndProc

   Procedure Unload
       Use In
Employee
   
EndProc

EndDefine

 

Por: David Amador T

Abrir un documento de Word e impedir que lo editen

Visual Fox Pro, Trucos Comentarios ( 0 ) »
En este ejemplo se abre un documento de Word a través de automatización y se impide que el usuario pueda realizar cambios sobre él. Gracias a Gorka.


Local
loWord As Object
loWord = Createobject("word.application")
loWord.Documents.
Open(Getfile(),,1)

loWord.ActiveDocument.
Protect(1)
loWord.ActiveDocument.PrintPreview
loWord.
Visible= .T.
loWord.ActiveDocument.
Close(.F.)
loWord.Quit
Release loWord

Por: David Amador T

Ejecutar sentencias SQL dinámicamente en SQL Server

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Podemos utilizar el procedimiento almacenado sp_executesql de SQL Server para ejecutar sentencias SQL dinámicamente.

DECLARE @cSQLSyntax nvarchar(2000)
DECLARE @cTableName varchar(20)

SET @cTableName = 'EMPLOYEE'
SET @cSQLSyntax = N'SELECT * FROM ' + @cTableName + ' WHERE EmployeeID = 1'
EXEC sp_executesql @cSQLSyntax

Por: David Amador T

Acelerar la impresión de Reportes

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Este es un pequeño truco que hará que tus reportes impriman más rápido.

Debemos ir a la configuración de las impresoras (Inicio - Configuración - Impresoras), seleccionamos la impresiona y hacemos click con el botón derecho del mouse y escogemos "Propiedades"; allí seleccionamos la pagina "Opciones avanzadas" o "Avanzadas"; luego marcamos la opción "Imprimir directamente en la impresora"

Ten en cuenta que también el tipo de letra mejora la velocidad de impresión, trata de utilizar fuentes como la Draft o la Courier.

 

Por: David Amador T

Actualizar tablas DBFs desde VB.NET

Visual Fox Pro, Ejemplos - Código fuente, .NET Comentarios ( 0 ) »

Aquí tienes como puedes acceder a tus DBF desde
VB.NET y actualizar registros.



Dim

connstr
As
String

= "provider=VFPOLEDB.1;"_


       
"data source='c:Archivos de
programa"_


       
"Microsoft Visual FoxPro 7SamplesTastrade"_


       
"Data astrade.dbc';password='';user
id=''"


Dim
conn
As
New

System.Data.OleDb.OleDbConnection


conn.ConnectionString =
connstr


Dim
cmd
As
New

System.Data.OleDb.OleDbCommand



cmd.CommandType = CommandType.Text

cmd.CommandText = "UPDATE customer SET company_name
= ?,"_


                   
"
contact_name = ?, contact_title = ?
"_


                   
"
WHERE customer_id = [ALFKI]"

cmd.Connection = conn


Dim
p1
As
New

System.Data.OleDb.OleDbParameter



p1.Value = "VFP"

cmd.Parameters.Add(p1)


Dim
p2
As
New

System.Data.OleDb.OleDbParameter



p2.Value = "OLEDB"

cmd.Parameters.Add(p2)


Dim
tally
As

Integer



Try


    conn.Open()

    tally = cmd.ExecuteNonQuery()

    conn.Close()


Catch
ex
As

Exception


    Debug.Write(ex.Message)


End

Try



MsgBox(tally)




Por: David Amador T