Test Nº 3 de OMA
Finalmente me salio completamente un test de OMA, bueno acá les dejo el codigo, para que puedan estudiar, o si por ahí en la red a alguien le sirve.

oma3.PRG
*Jonathan Ramírez Medina / Grupo 2
*Menu principal
set status off
set bell off
set confirm on
set talk off
set date british
set wrap on
set message to 24 center
public opcion,codigo,dedonde,pedido
do bases
si=.T.
do while si
do menu
menu to opcion
do case
case opcion=1
keyboard chr(0)
do depar
do compras
case opcion=2
keyboard chr(0)
do depar
do listado
case opcion=3
si=.F.
clear
endcase
enddo
return
*------------------------
procedure bases
select 1
use deptos
select 2
use empresa
select 3
use compras
return
*-----------------------
procedure menu
@0,0 clear
@7,10 say "***** TEST NUMERO TRES DE OMA G2 *****"
@9,10 prompt "1. Compras" message "Presione <ENTER> para continuar"
@10,10 prompt "2. Listado" message "Presione <ENTER> para continuar"
@11,10 prompt "3. Salir" message "Presione <ENTER> para salir"
@13,10 say "Alumno: Jonathan Ramirez"
depar.PRG
*Listado de departamentos
select 1
go top
declare campo[2], forma[2], titulo[2]
campo[2]="CLAVE"
campo[1]="DEPTO"
forma[2]="99"
forma[1]="@! AAAAAAAAAAAAAAA"
titulo[2]="Codigo;Departamento"
titulo[1]="Nombre;Departamento"
@0,0 CLEAR
@7,10 SAY "***** LISTADO DE DEPARTAMENTOS *****"
set color to /w
@16,10 SAY " ENTER(ingresar) ESC(Salir) "
set color to
dbedit(7,10,14,61,campo,"func1",forma,titulo)
return
*-----------------------------------------
function func1
parameters resp1
do case
case lastkey()=27
resp1=0
case lastkey()=13
store CLAVE to codigo
resp1=0
otherwise
resp1=1
endcase
return resp1
compras.PRG
*Listado de compras filtradas por departamento
keyboard chr(0)
select 3
go top
declare campo[3], forma[3], titulo[3]
campo[1]="RUT"
campo[2]="MES"
campo[3]="MONTO"
forma[1]="999"
forma[2]="99"
forma[3]="999"
titulo[1]="Rut"
titulo[2]="Mes"
titulo[3]="Monto"
@0,0 clear
@7,10 SAY "***** LISTADO DE COMPRAS *****"
set color to /w
@16,10 say " F2(Agregar) F3(Eliminar) ESC(salir) "
set color to
locate for DEPTO=codigo
set filter to DEPTO=codigo
dbedit(9,10,14,66,campo,"func2",forma,titulo)
return
*---------------------------------------
function func2
parameters resp2
do case
case lastkey()=27
resp2=0
case lastkey()=-1
set cursor on
var1=0
var2=0
var3=0
@row(),31 GET var1 pict forma[1] valid existe(var1)
@row(),37 GET var2 pict forma[2]
@row(),42 GET var3 pict forma[3]
read
if lastkey() <> 27
append blank
replace RUT with var1, MES with var2, MONTO with var3, DEPTO with codigo
else
resp2=2
endif
case lastkey()=-2
dele
pack
keyboard chr(0)
resp2=2
otherwise
resp2=1
endcase
return resp2
*---------------------
function existe
parameters si
locate for RUT=var1
if found()
si=.F.
else
si=.T.
endif
return si
listado.PRG
*Listado de montos filtrados por departamento y mes
pedido=0
@0,0 CLEAR
@7,10 SAY "***** MES DEL FILTRO *****"
@10,10 SAY "Ingrese el mes a filtar: " GET pedido pict "99"
READ
keyboard chr(0)
select 3
go top
declare campo[2], forma[2], titulo[2]
campo[1]="MONTO"
campo[2]="MES"
forma[1]="999"
forma[2]="99"
titulo[1]="Monto"
titulo[2]="Mes filtrado"
@0,0 clear
@7,10 SAY "***** LISTADO DE MONTOS *****"
set color to /w
@16,10 say " ESC(salir) "
set color to
locate for DEPTO=codigo .and. MES=pedido
set filter to DEPTO=codigo .and. MES=pedido
dbedit(9,10,14,66,campo,"func3",forma,titulo)
return
*-----------------------------
function func3
parameters resp3
do case
case lastkey()=27
resp3=0
otherwise
resp3=1
endcase
return resp3
Tau.
1 comentario hasta ahora
Replica
eri seco!!!