Beruflich Dokumente
Kultur Dokumente
10A
20A
8S
3A
8S
6S
10A
8S
6S
10A
0
0
0
0
0
TEXT('REGISTRO DE ARCHIVO')
COLHDG('IDENTIFICADOR' 'MASCOTA')
COLHDG('NOMBRE' 'MASCOTA')
COLHDG('FECHA' 'NACIMIENTO')
COLHDG('ESPECIE' 'MASCOTA')
COLHDG('FECHA' 'CREACION')
COLHDG('HORA' 'CREACION')
COLHDG('USUARIO' 'CREACION')
COLHDG('FECHA' 'MODIFICACION')
COLHDG('HORA' 'MODIFICACION')
COLHDG('USUARIO' 'MODIFICACION')
PFILE(S18FFMASCO)
3A
40A
COLHDG('IDENTIFICADOR' 'ESPECIES')
COLHDG('NOMBRE' 'ESPECIE')
SD
20110724
123017
JRAMIREZ
REL-V6R1M0
5761-WDS
DSPSIZ(24 80 *DS3)
R REGENC
SD 20110724
ENCPGM
ENC01
ENC02
ENC03
103541 JRAMIREZ
REL-V6R1M0
10A O 2 2
50A O 1 16DSPATR(HI)
50A O 2 16DSPATR(HI)
50A O 3 16DSPATR(HI)
2 4DATE
EDTCDE(Y)
1 2USER
4 2'
5761-WDS
'
DSPATR(UL)
1 71DATE
EDTCDE(Y)
2 71TIME
SD
R REGTCLSFL
20110724 104856
JRAMIREZ
21
22
22
22
22
REL-V6R1M0
OVERLAY
3'
'
DSPATR(UL)
3'F3:'
DSPATR(HI)
7'Salir'
16'F5:'
DSPATR(HI)
20'Renovar'
5761-WDS
-
A
A
A
A
A
A
A
A
A
A
A*%%TS
A
A
A
A*%%TS
A
A
A
A
A
A
A
A*%%TS
A
A
A
A
A
A
A
A
A*%%TS
A
A
A
A
A
22 67'F12:'
DSPATR(HI)
22 72'Cancelar'
22 45'Intro:'
DSPATR(HI)
22 52'Continuar'
22 31'F6:'
DSPATR(HI)
22 35'Crear'
SD
R REGNDAT
20110724
100016
JRAMIREZ
15
R WINMSG
SD 20110724
WIMSJ01
WIMSJ02
WIMSJ03
WIMSJ04
R WINVAL
SD 20110724
110322
JRAMIREZ
50A
50A
50A
50A
105442
O
O
O
O
JRAMIREZ
WIVAL01
WIVAL02
50A
50A
O
O
WIRES
R REGDET
SD 20110724
1A
123017
3
4
5
6
REL-V6R1M0 5761-WDS
OVERLAY
4'No hay registros para la consulta'
REL-V6R1M0 5761-WDS
WINDOW(8 12 8 54)
OVERLAY
3DSPATR(HI)
3DSPATR(HI)
3DSPATR(HI)
3
REL-V6R1M0 5761-WDS
WINDOW(8 13 8 54)
OVERLAY
3 3
4 3
6 26'S/N'
DSPATR(HI)
6 30VALUES('S' 'N' ' ')
JRAMIREZ
REL-V6R1M0 5761-WDS
CA03(03 'Salir')
CA12(12 'Cancelar')
OVERLAY
7'Nombre mascota..:'
DSPATR(HI)
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
10
11
8
15
80
16
80
17
80
18
80
PIUSRCRE
10A
O 16
80
PIFECCRE
8Y 0O 17
PIHORCRE
6Y 0O 18
80
80
15
80
16
80
PIUSRMOD
10A
O 16
80
17
80
PIFECMOD
8Y 0O 17
80
18
80
PIHORMOD
6Y 0O 18
80
PIIDMAS
10D
7'Fecha Nacimiento:'
DSPATR(HI)
7'Especie Mascota.:'
DSPATR(HI)
7'Id Mascota......:'
DSPATR(HI)
7'Creacin'
DSPATR(HI)
DSPATR(ND)
7'Usuario:'
DSPATR(ND)
7'Fecha..:'
DSPATR(ND)
7'Hora...:'
DSPATR(ND)
16
DSPATR(ND)
16EDTWRD('
- - ')
DSPATR(ND)
16EDTWRD(' : : ')
DSPATR(ND)
29'Modificacin'
DSPATR(HI)
DSPATR(ND)
29'Usuario:'
DSPATR(ND)
38
DSPATR(ND)
29'Fecha..:'
DSPATR(ND)
38EDTWRD('
- - ')
DSPATR(ND)
29'Hora...:'
DSPATR(ND)
38EDTWRD(' : : ')
DSPATR(ND)
25
A 50
A
A 51
A
A 70
A
A 52
A
A 71
A
A 53
A
A 54
A
A 71
A
A 55
A
A 56
A
A 71
A
A
A*%%TS
A
A
A
A
A
A
A
A
A
A
A 75
A
A 75
PIFECNAC
PIESPMAS
20A
9 25
PIDESESP
R REGTCLDET
SD 20110724 120155
JRAMIREZ
21
22
22
22
22
REL-V6R1M0
OVERLAY
3'
'
DSPATR(UL)
67'F12:'
DSPATR(HI)
72'Cancelar'
32'Intro:'
DSPATR(HI)
DSPATR(ND)
39'Continuar'
DSPATR(ND)
5761-WDS
-
A
A
A
A
A*%%TS
A
A
A
A
A
A*%%TS
A
A
A
A
A
A
A
A 90
A 91
A 92
A 93
A
A
A
A
A
A
A
A
A
A
A
A
A
A
A
22
3'F3:'
DSPATR(HI)
22 7'Salir'
R REGDAT
SFL
SD 20110724 114329 JRAMIREZ
REL-V6R1M0 5761-WDS
PDOPC
1A B 12 5VALUES('2' '4' '5' ' ')
PDIDMAS
10A O 12 10
PDNOMMAS
20A O 12 26
PDESPMAS
3A O 12 52
R REGCTL
SFLCTL(REGDAT)
SD 20110724 105059 JRAMIREZ
REL-V6R1M0 5761-WDS
SFLSIZ(9999)
SFLPAG(0008)
CA03(03 'Salir')
CA05(05 'Renovar')
CA06(06 'Crear')
CA12(12 'Cancelar')
OVERLAY
SFLDSP
SFLDSPCTL
SFLCLR
SFLEND
6 4'Id ='
PCIDMAS
10A B 6 9DSPATR(HI)
6 21'Nombre ='
PCNOMMAS
20A B 6 30DSPATR(HI)
8 4'Opciones:'
DSPATR(HI)
9 2'
'
DSPATR(UL)
DSPATR(HI)
11 4'Opc'
DSPATR(HI)
11 10'Identificador'
DSPATR(HI)
A
A
A
A
A
A
A
A
A
A
A
A
A
11 26'Nombre Mascota'
DSPATR(HI)
11 50'Especie'
DSPATR(HI)
8 15'2='
DSPATR(HI)
8 18'Modificar'
8 29'4='
DSPATR(HI)
8 32'Eliminar'
8 42'5='
DSPATR(HI)
8 45'Consultar'
*- DEFINICIN DE PROCEDIMIENTOS
DEncabezado
PR
DCargarSubfile
PR
DCrear
PR
DModificar
PR
DConsultar
PR
DEliminar
PR
DValidar
PR
DCentrar
Pr
50A
DwPMsg
50A
*- Estructura del Sistema
DSys
SDs
D Pgm
*Proc
D Status
11
D Cpf
40
D CpfDescrip
91
D Job
244
D Usuario
254
D Nbr
264
D LastFile
175
D Todo
1
15S 0
46
170
253
263
269S 0
184
500
*- DEFINICIN DE VARIABLES
*- Trabajar con SubFile
D Nrr
S
4S 0
D
D
D
D
*- Variables de Trabajo
wPosIDE
S
wPosNOM
S
IndDatosOK
S
IndMOD
S
Value
Qualified
10A
20A
N
N
*------------------------------------------------------------------*
*- BLOQUE PRINCIPAL DEL PROGRAMA
*------------------------------------------------------------------*
/Free
//Asignar valores a los ttulos
Encabezado();
//Ciclo principal hasta presionar F3 o F12
DoW Not *IN03 And Not *In12;
//Mostrar encabezado y teclas de funcin
Write REGENC;
Write REGTCLSFL;
//Cargar registros del subfile
CargarSubfile();
//Entregar Ejecucin al usuario
*In91 = *On;
ExFmt REGCTL;
*In91 = *Off;
//Validar opcin seleccionada
Select;
When *In03;
When *In12;
//Cargar nuevamente el subfile
When *In05;
Clear wPosNOM;
Clear wPosIDE;
Clear PCIDMAS;
Clear PCNOMMAS;
//Crear un registro en el archivo
When *In06;
Crear();
//Presion Intro
Other;
//Almacenar posicionadores en variables de trabajo
EvalR wPosIDE = '0000000000' + %Trim(PCIDMAS);
wPosNOM = %Trim(PCNOMMAS);
Clear PCIDMAS;
Clear PCNOMMAS;
//Si posicionadores no tienen valor, y subfile tiene
//por lo menos un registro, se evalan las posibles
//opciones seleccionadas
If NRR > *Zeros
And
wPosIDE = '0000000000' And
wPosNOM = *Blanks;
//Leer registros que hayan cambiado en Subfile
ReadC REGDAT;
Dow Not %EoF();
//Evaluar opcin seleccionada
Select;
When PDOPC = '2';
Modificar();
When PDOPC = '4';
Eliminar();
When PDOPC = '5';
Consultar();
EndSl;
ReadC REGDAT;
EndDo;
EndIf;
EndSl;
EndDo;
*InLr = *On;
/End-Free
*------------------------------------------------------------------*
*--------------------------------------------------------------* Centrar texto en cadena alfanumrica de long 50.
*--------------------------------------------------------------PCentrar
B
DCentrar
Pi
50A
DwPMsg
D ConBlancos
D I
D Longitud
D Texto
/Free
S
S
S
S
50A
Value
2 0
2 0
2 0
50A
//Variables de Trabajo
Clear Texto;
Clear ConBlancos;
I = 50;
wPMsg = %Trim(wPMsg);
//Contar espacios en blanco
Dow I > 0 And %SubSt(WPMsg:I:1) = ' ';
ConBlancos = ConBlancos + 1;
I = I - 1;
EndDo;
//Calcular longitud del mensaje
Longitud = 50 - ConBlancos;
//Calcular posicin de Inicio
Eval(H) I = ConBlancos / 2;
If I <= *Zeros;
I = 1;
EndIf;
//Centrar el valor
%SubSt(Texto:I:Longitud) = WpMsg;
//Devolver cadena centrada
Return
Texto;
/End-Free
PCentrar
E
*---------------------------------------------------------------
cargado registros
//Mostrar Subfile con registros
//Controlador de Paginacin
//Ocultar Subfile con registros
//No Controlar Paginacin
//Registro "No hay datos"
If IndDatosOK;
Clear WINVAL;
WIVAL01 = Centrar('Est seguro de crear el registro?');
DoU WIRES = 'S' Or WIRES = 'N';
ExFmt WINVAL;
EndDo;
//Usuario confirma, se crea el registro
If WIRES = 'S';
Clear REGMASCO;
EvalR IDMAS = '0000000000' + %Trim(PIIDMAS);
NOMMAS = %Trim(PINOMMAS);
FECNAC = PIFECNAC;
ESPMAS = PIESPMAS;
//Campos de auditora
FECCRE = %Int(%Char(%Date():*Iso0));
HORCRE = %Int(%Char(%Time():*Iso0));
USUCRE = Sys.Usuario;
//Escritura controlada en el archivo
Write(E) REGMASCO;
//Ventana de Resultado
Clear WINMSG;
WIMSJ04 = Centrar('Presione INTRO para continuar');
If %Error();
WIMSJ01 = Centrar('Ha ocurrido un error al crear');
WIMSJ02 = Centrar('el registro en el archivo');
Else;
WIMSJ01 = Centrar('Se ha creado exitosamente');
WIMSJ02 = Centrar('el registro en el archivo');
EndIf;
ExFmt WINMSG;
//Se interrumpe el ciclo de la opcin
Leave;
EndIf;
EndIf;
EndSl;
EndDo;
//Restaurar Campos de auditora
*IN80 = *Off;
//Garantizar tecla F12 inactiva
*In12 = *Off;
/End-Free
PCrear
E
*--------------------------------------------------------------*--------------------------------------------------------------* Modificar un registro del archivo
*--------------------------------------------------------------PModificar
B
/Free
//Bloquear registro y Cargar a la pantalla los datos
Clear REGDET;
Chain PDIDMAS S18FFMASCO;
If %Found();
PIIDMAS = IDMAS;
PINOMMAS = NOMMAS;
PIFECNAC = FECNAC;
PIESPMAS = ESPMAS;
EndIf;
//Ocultar Campos de auditora
*IN80 = *On;
//Bloquear clave primaria
*IN70 = *On;
//Mostrar Encabezado y Teclas de Funcin
Write REGENC;
Write REGTCLDET;
//Ventana de Resultado
Clear WINMSG;
WIMSJ04 = Centrar('Presione INTRO para continuar');
If %Error();
WIMSJ01 = Centrar('Ha ocurrido un error '+
'al modificar');
WIMSJ02 = Centrar('el registro en el archivo');
Else;
WIMSJ01 = Centrar('Se ha modificado exitosamente');
WIMSJ02 = Centrar('el registro en el archivo');
EndIf;
ExFmt WINMSG;
//Se interrumpe el ciclo de la opcin
Leave;
EndIf;
EndIf;
EndSl;
EndDo;
//Restaurar Campos de auditora
*IN80 = *Off;
//Desbloquear clave primaria
*IN70 = *Off;
//Garantizar tecla F12 inactiva
*In12 = *Off;
/End-Free
PModificar
E
*--------------------------------------------------------------*--------------------------------------------------------------* Consultar la informacin de un registro determinado
*--------------------------------------------------------------PConsultar
B
/Free
//Cargar a la pantalla los datos del registro, sin bloquearlo
Clear REGDET;
Chain(N) PDIDMAS S18FFMASCO;
If %Found();
PIIDMAS = IDMAS;
PINOMMAS = NOMMAS;
PIFECNAC = FECNAC;
PIESPMAS = ESPMAS;
//Obtener descripcin de la especie. Tener en cuenta que
//el archivo tiene el prefijo ESP_
Chain PIESPMAS S18FFESPEC;
If %Found();
PIDESESP = %Trim(ESP_NOMESP);
EndIf;
//Campos de auditora
PIUSRCRE = USUCRE;
PIFECCRE = FECCRE;
PIHORCRE = HORCRE;
PIUSRMOD = USUMOD;
PIFECMOD = FECMOD;
PIHORMOD = HORMOD;
EndIf;
//Mostrar
*IN80 =
//Ocultar
*IN75 =
Campos de auditora
*Off;
Tecla INTRO en Teclas de funcin
*On;
Write REGENC;
Write REGTCLDET;
Write REGDET;
ExFmt REGDET;
//Validar tecla de funcin
Select;
When *In03;
When *In12;
Other;
EndSl;
EndDo;
//Ocultar Campos de auditora
*IN80 = *Off;
//Mostrar tecla INTRO en teclas de funcin
*IN75 = *Off;
//Desbloquear clave primaria
*IN70 = *Off;
//Desbloquear los dems campos
*IN71 = *Off;
//Garantizar tecla F12 inactiva
*In12 = *Off;
/End-Free
PConsultar
E
*--------------------------------------------------------------*--------------------------------------------------------------* Eliminar un registro determinado del archivo
*--------------------------------------------------------------PEliminar
B
/Free
//Ventana de confirmacin de Eliminacin
Clear WINVAL;
WIVAL01 = Centrar('Est seguro de eliminar el registro?');
DoU WIRES = 'S' Or WIRES = 'N';
ExFmt WINVAL;
EndDo;
//Usuario confirma, se elimina el registro
If WIRES = 'S';
Chain PDIDMAS S18FFMASCO;
If %Found();
//Eliminacin controlada en el archivo
Delete(E) REGMASCO;
//Ventana de Resultado
Clear WINMSG;
WIMSJ04 = Centrar('Presione INTRO para continuar');
If %Error();
WIMSJ01 = Centrar('Ha ocurrido un error al eliminar');
WIMSJ02 = Centrar('el registro en el archivo');
Else;
WIMSJ01 = Centrar('Se ha eliminado exitosamente');
WIMSJ02 = Centrar('el registro en el archivo');
EndIf;
ExFmt WINMSG;
Else;
//Al momento de eliminar el registro, no existe ya
Clear WINMSG;
WIMSJ01 = Centrar('No se ha encontrado el registro');
WIMSJ02 = Centrar('a eliminar');
WIMSJ04 = Centrar('Presione INTRO para continuar');
ExFmt WINMSG;
EndIf;
EndIf;
/End-Free
PEliminar
E
*--------------------------------------------------------------*---------------------------------------------------------------
*In52 = *On;
Return;
EndIf;
//Fecha de Nacimiento requerida
If PIFECNAC = *Zeros;
*In53 = *On;
Return;
EndIf;
//Fecha de Nacimiento en Formato AAAAMMDD
Test(DE) *Iso PIFECNAC;
If %Error();
*In54 = *On;
Return;
EndIf;
//Cdigo de Especie requerido
If PIESPMAS = *Blanks;
*In55 = *On;
Return;
EndIf;
//Cdigo de Especie debe existir en Maestro de Especies
Chain PIESPMAS S18FFESPEC;
If Not %Found();
*In56 = *On;
Return;
EndIf;
//Todas las validaciones son correctas
IndDatosOK = *On;
/End-Free
PValidar
E
*---------------------------------------------------------------