home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 16
/
CD_ASCQ_16_0994.iso
/
news
/
4611
/
fw16d.ins
/
SAMPLES
/
TUTOR07.PRG
< prev
next >
Wrap
Text File
|
1994-06-04
|
5KB
|
149 lines
//----------------------------------------------------------------------------//
// FiveWin 1.5 - Tutorial
// (c) A.Linares, F.Pulpón 1993
//
// Contruir con BUILD Tutor07
//----------------------------------------------------------------------------//
// Vamos a continuar utilizando el anterior ejemplo, Tutor06, y añadiremos
// algunos controles más a la Caja de Diálogo y utilizaremos por primera
// vez una base de datos, desde esa Caja de Diálogo
#include "FiveWin.ch"
static oWnd
//----------------------------------------------------------------------------//
function Main()
DEFINE WINDOW oWnd FROM 1, 1 TO 22, 75 ;
TITLE OemToAnsi( "Editando nuestra primera Base de Datos" ) ;
MENU PreparaMenu()
SET MESSAGE OF oWnd ;
TO OemToAnsi( "FiveWin 1.5, (c) A.Linares & F.Pulpón, 1993" )
ACTIVATE WINDOW oWnd // MAXIMIZED
return nil
//----------------------------------------------------------------------------//
function PreparaMenu()
local oMenu
MENU oMenu
MENUITEM OemToAnsi( "&Información" )
MENU
MENUITEM "&Acerca de..." ;
ACTION MsgInfo( OemToAnsi( "Tutorial de FiveWin" + Chr( 13 ) + ;
"(c) A.Linares, F.Pulpón, 1993" ) ) ;
MESSAGE OemToAnsi( "Información acerca de este programa" )
SEPARATOR
MENUITEM "&Terminar..." ;
ACTION If( MsgYesNo( OemToAnsi( "¿ Desea terminar ?" ) ),;
oWnd:End(),) ;
MESSAGE OemToAnsi( "Terminar la ejecución de este programa" )
ENDMENU
MENUITEM "&Ficheros"
MENU
MENUITEM "&Clientes..." ;
ACTION Clientes() ;
MESSAGE OemToAnsi( "Mantenimiento de Clientes" )
MENUITEM OemToAnsi( "&Almacén" ) ;
ACTION MsgInfo( OemToAnsi( "Control del Almacén" ) ) ;
MESSAGE OemToAnsi( "Control del Almacén" )
ENDMENU
MENUITEM "&Utilidades"
MENU
MENUITEM "&Calculadora..." ;
ACTION WinExec( "Calc" ) ;
MESSAGE "Llamar a la calculadora de Windows"
MENUITEM "C&alendario..." ;
ACTION WinExec( "Calendar" ) ;
MESSAGE "Llamar al calendario de Windows"
MENUITEM "&Jugar un poco..." ;
ACTION WinExec( "Sol" ) ;
MESSAGE "A las cartas..."
ENDMENU
ENDMENU
return oMenu
//----------------------------------------------------------------------------//
function Clientes()
local oDlg
local cNombre := ""
local cDireccion := ""
local getNombre, getDireccion
if ! File( "clientes.dbf" )
DbCreate( "Clientes.dbf", { { "Nombre", "C", 40, 0 },;
{ "Direccion", "C", 50, 0 },;
{ "Telefono", "C", 12, 0 },;
{ "Edad", "N", 2, 0 },;
{ "Productos", "C", 10, 0 },;
{ "Nivel", "N", 2, 0 } } )
endif
USE Clientes
if RecCount() == 0
APPEND BLANK
endif
INDEX ON Nombre TO CliNombr
SET INDEX TO CliNombr
GO TOP
cNombre := Clientes->Nombre
cDireccion := Clientes->Direccion
DEFINE DIALOG oDlg FROM 6, 7 TO 21, 72 TITLE "Mantenimiento de Clientes"
@ 1, 2 SAY "Nombre:" OF oDlg
@ 1, 8 GET getNombre VAR cNombre OF oDlg VALID NoEmptyField( cNombre )
@ 2, 2 SAY OemToAnsi( "Dirección:" ) OF oDlg
@ 2, 8 GET getDireccion VAR cDireccion OF oDlg
@ 8, 3 BUTTON "&Anterior" OF oDlg SIZE 50, 12 ;
ACTION ( DbSkip( -1 ),;
getNombre:cText := Clientes->Nombre,;
getDireccion:cText := Clientes->Direccion )
@ 8, 14 BUTTON "&Siguiente" OF oDlg SIZE 50, 12;
ACTION ( DbSkip( 1 ),;
If( EoF(), MsgInfo( OemToAnsi( "Fín de Fichero" ) ),),;
If( EoF(), DbGoBottom(),),;
getNombre:cText := Clientes->Nombre,;
getDireccion:cText := Clientes->Direccion )
@ 8, 26 BUTTON "&Terminar" OF oDlg SIZE 50, 12 ACTION oDlg:End()
ACTIVATE DIALOG oDlg
USE
return nil
//----------------------------------------------------------------------------//
static func NoEmptyField( cField )
if empty( cField )
Alert( "Este campo no puede estar vacio" )
return .f.
endif
return .t.
//---------------------------------------------------------------------------//