24
 S18FFMASCO - ARCHIVO FÍSICO MAESTRO DE MASCOTAS. R REGMASCO TEXT('REGISTRO DE ARCHIVO')  IDMAS 10A COLHDG('IDENTIFICADOR' 'MASCOTA')  NOMMAS 20A COLHDG('NOMBRE' 'MASCOTA')  FECNAC 8S 0 COLHDG('FECHA' 'NACIMIENTO')  ESPMAS 3A COLHDG('ESPECIE' 'MASCOTA')  FECCRE 8S 0 COLHDG('FECHA' 'CREACION')  HORCRE 6S 0 COLHDG('HORA' 'CREACION')  USUCRE 10A COLHDG('USUARIO' 'CREACION')  FECMOD 8S 0 COLHDG('FECHA' 'MODIFICACION')  HORMOD 6S 0 COLHDG('HORA' 'MODIFICACION')  USUMOD 10A COLHDG('USUARIO' 'MODIFICACION')  K IDMAS S18LFMASCO - ARCHIVO LÓGICO MAESTRO DE MASCOTAS ORDENADO ASCENDENTEMENTE POR NOMBRE R REGMASCO PFILE(S18FFMASCO)  K NOMMAS S18FFESPEC - ARCHIVO MAESTRO DE ESPECIES R REGESPEC IDESP 3A COLHDG('IDENTIFICADOR' 'ESPECIES')  NOMESP 40A COLHDG('NOMBRE' 'ESPECIE')  K IDESP 

Mantenimiento.pdf

Embed Size (px)

Citation preview

Page 1: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 1/24

S18FFMASCO - ARCHIVO FÍSICO MAESTRO DE MASCOTAS.

R REGMASCO TEXT('REGISTRO DE ARCHIVO') IDMAS 10A  COLHDG('IDENTIFICADOR' 'MASCOTA') 

NOMMAS 20A  COLHDG('NOMBRE' 'MASCOTA') FECNAC 8S 0  COLHDG('FECHA' 'NACIMIENTO') ESPMAS 3A  COLHDG('ESPECIE' 'MASCOTA') FECCRE 8S 0  COLHDG('FECHA' 'CREACION') HORCRE 6S 0  COLHDG('HORA' 'CREACION') USUCRE 10A  COLHDG('USUARIO' 'CREACION') FECMOD 8S 0  COLHDG('FECHA' 'MODIFICACION') HORMOD 6S 0  COLHDG('HORA' 'MODIFICACION') USUMOD 10A  COLHDG('USUARIO' 'MODIFICACION') 

K IDMAS 

S18LFMASCO - ARCHIVO LÓGICO MAESTRO DE MASCOTAS ORDENADO ASCENDENTEMENTE POR NOMBRE

R REGMASCO PFILE(S18FFMASCO) K NOMMAS 

S18FFESPEC - ARCHIVO MAESTRO DE ESPECIES

R REGESPEC IDESP 3A  COLHDG('IDENTIFICADOR' 'ESPECIES') NOMESP 40A  COLHDG('NOMBRE' 'ESPECIE') 

K IDESP 

Page 2: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 2/24

 

S18DSMASCO – PANTALLA PARA EL MAESTRO DE ESPECIES

A*%%TS SD 20110724 123017 JRAMIREZ REL-V6R1M0 5761-WDS A*%%EC A  DSPSIZ(24 80 *DS3) A  R REGENC A*%%TS SD 20110724 103541 JRAMIREZ REL-V6R1M0 5761-WDS A  ENCPGM 10A  O  2 2 A  ENC01 50A  O  1 16DSPATR(HI) A  ENC02 50A  O  2 16DSPATR(HI) A  ENC03 50A  O  3 16DSPATR(HI) A  2 4DATE A  EDTCDE(Y) A  1 2USER A  4 2' - 

A  - A  ' A  DSPATR(UL) A  1 71DATE A  EDTCDE(Y) A  2 71TIME A  R REGTCLSFL A*%%TS SD 20110724 104856 JRAMIREZ REL-V6R1M0 5761-WDS A  OVERLAY A  21 3' - A  - A  ' A  DSPATR(UL) 

A  22 3'F3:' A  DSPATR(HI) A  22 7'Salir' A  22 16'F5:' A  DSPATR(HI) A  22 20'Renovar' 

Page 3: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 3/24

  A  22 67'F12:' A  DSPATR(HI) A  22 72'Cancelar' A  22 45'Intro:' A  DSPATR(HI) 

A  22 52'Continuar' A  22 31'F6:' A  DSPATR(HI) A  22 35'Crear' A  R REGNDAT A*%%TS SD 20110724 100016 JRAMIREZ REL-V6R1M0 5761-WDS A  OVERLAY A  15 4'No hay registros para la consulta' A  R WINMSG A*%%TS SD 20110724 110322 JRAMIREZ REL-V6R1M0 5761-WDS A  WINDOW(8 12 8 54) A  OVERLAY A  WIMSJ01 50A  O  3 3DSPATR(HI) 

A  WIMSJ02 50A  O  4 3DSPATR(HI) A  WIMSJ03 50A  O  5 3DSPATR(HI) A  WIMSJ04 50A  O  6 3 A  R WINVAL A*%%TS SD 20110724 105442 JRAMIREZ REL-V6R1M0 5761-WDS A  WINDOW(8 13 8 54) A  OVERLAY A  WIVAL01 50A  O  3 3 A  WIVAL02 50A  O  4 3 A  6 26'S/N' A  DSPATR(HI) A  WIRES 1A  B  6 30VALUES('S' 'N' ' ') A  R REGDET 

A*%%TS SD 20110724 123017 JRAMIREZ REL-V6R1M0 5761-WDS A  CA03(03 'Salir') A  CA12(12 'Cancelar') A  OVERLAY A  9 7'Nombre mascota..:' A  DSPATR(HI) 

Page 4: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 4/24

  A  10 7'Fecha Nacimiento:' A  DSPATR(HI) A  11 7'Especie Mascota.:' A  DSPATR(HI) A  8 7'Id Mascota......:' 

A  DSPATR(HI) A  15 7'Creación' A  DSPATR(HI) A  80  DSPATR(ND) A  16 7'Usuario:' A  80  DSPATR(ND) A  17 7'Fecha..:' A  80  DSPATR(ND) A  18 7'Hora...:' A  80  DSPATR(ND) A  PIUSRCRE 10A  O 16 16 A  80  DSPATR(ND) A  PIFECCRE 8Y 0O 17 16EDTWRD(' - - ') 

A  80  DSPATR(ND) A  PIHORCRE 6Y 0O 18 16EDTWRD(' : : ') A  80  DSPATR(ND) A  15 29'Modificación' A  DSPATR(HI) A  80  DSPATR(ND) A  16 29'Usuario:' A  80  DSPATR(ND) A  PIUSRMOD 10A  O 16 38 A  80  DSPATR(ND) A  17 29'Fecha..:' A  80  DSPATR(ND) A  PIFECMOD 8Y 0O 17 38EDTWRD(' - - ') 

A  80  DSPATR(ND) A  18 29'Hora...:' A  80  DSPATR(ND) A  PIHORMOD 6Y 0O 18 38EDTWRD(' : : ') A  80  DSPATR(ND) A  PIIDMAS 10D  B  8 25 

Page 5: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 5/24

  A  50  ERRMSG('Debe ingresar una identific- A  ación de Mascota' 50) A  51  ERRMSG('Ya existe una mascota con e- A  sa identificación' 51) A  70  DSPATR(PR) 

A  PINOMMAS 20A  B  9 25 A  52  ERRMSG('Debe ingresar un nombre de - A  Mascota' 52) A  71  DSPATR(PR) A  PIFECNAC 8Y 0B 10 25EDTCDE(4) A  53  ERRMSG('Debe ingresar la fecha de n- A  acimiento de la Mascota' 53) A  54  ERRMSG('El formato de la fecha debe- A  ser AAAAMMDD' 54) A  71  DSPATR(PR) A  PIESPMAS 3A  B 11 25 A  55  ERRMSG('Debe ingresar el código de - A  la especie de la mascota' 55) 

A  56  ERRMSG('El código de especie ingres- A  ado no es válido' 56) A  71  DSPATR(PR) A  PIDESESP 40A  O 11 29 A  R REGTCLDET A*%%TS SD 20110724 120155 JRAMIREZ REL-V6R1M0 5761-WDS A  OVERLAY A  21 3' - A  - A  ' A  DSPATR(UL) A  22 67'F12:' A  DSPATR(HI) 

A  22 72'Cancelar' A  22 32'Intro:' A  DSPATR(HI) A  75  DSPATR(ND) A  22 39'Continuar' A  75  DSPATR(ND) 

Page 6: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 6/24

  A  22 3'F3:' A  DSPATR(HI) A  22 7'Salir' A  R REGDAT SFL A*%%TS SD 20110724 114329 JRAMIREZ REL-V6R1M0 5761-WDS 

A  PDOPC 1A  B 12 5VALUES('2' '4' '5' ' ') A  PDIDMAS 10A  O 12 10 A  PDNOMMAS 20A  O 12 26 A  PDESPMAS 3A  O 12 52 A  R REGCTL SFLCTL(REGDAT) A*%%TS SD 20110724 105059 JRAMIREZ REL-V6R1M0 5761-WDS A  SFLSIZ(9999) A  SFLPAG(0008) A  CA03(03 'Salir') A  CA05(05 'Renovar') A  CA06(06 'Crear') A  CA12(12 'Cancelar') A  OVERLAY 

A  90  SFLDSP A  91  SFLDSPCTL A  92  SFLCLR A  93  SFLEND A  6 4'Id =' A  PCIDMAS 10A  B  6 9DSPATR(HI) A  6 21'Nombre =' A  PCNOMMAS 20A  B  6 30DSPATR(HI) A  8 4'Opciones:' A  DSPATR(HI) A  9 2' - A  - A  ' 

A  DSPATR(UL) A  DSPATR(HI) A  11 4'Opc' A  DSPATR(HI) A  11 10'Identificador' A  DSPATR(HI) 

Page 7: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 7/24

  A  11 26'Nombre Mascota' A  DSPATR(HI) A  11 50'Especie' A  DSPATR(HI) A  8 15'2=' 

A  DSPATR(HI) A  8 18'Modificar' A  8 29'4=' A  DSPATR(HI) A  8 32'Eliminar' A  8 42'5=' A  DSPATR(HI) A  8 45'Consultar' 

Page 8: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 8/24

 

S18RMMASCO – MANTENIMIENTO AL MAESTRO DE ESPECIES

* -------------------------------------------------------------- * PROGRAMA: S18RMMASCO * AUTOR...: Personalsoft S.A.S. - Juan Camilo Ramirez * Fecha...: Julio de 2011 * Descrip.: Programa de mantenimiento al archivo maestro de * mascotas S18FFMASCO. Crear, Modificar, Consultar y * Eliminar, son las opciones habilitadas. * -------------------------------------------------------------- * Indica.: 90 - SFLDSP 92 - SFLCLR * 91 - SFLDSPCTL 93 - SFLEND *--------------------------------------------------------------- 

*- DIRECTIVAS DE COMPILACIÓN HOption(*NoDebugIo:*SrcStmt) HDftActGrp(*NO) HFixnbr(*Zoned) HDatFmt(*Iso) HDatEdit(*Ymd) 

*- DEFINICIÓN DE ARCHIVOS *- Pantalla para el mantenimiento FS18DSMASCOCF  E  WORKSTN SFILE(REGDAT:Nrr) *- Archivo maestro de mascotas 

FS18FFMASCOUF A E  K DISK *- Archivo de mascotas ordenado por nomber FS18LFMASCOIF  E  K DISK RENAME(REGMASCO:REGLMASCO) *- Archivo de especies de mascotas FS18FFESPECIF  E  K DISK PREFIX(ESP_) 

Page 9: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 9/24

 *- DEFINICIÓN DE PROCEDIMIENTOS DEncabezado PR DCargarSubfile PR DCrear PR 

DModificar PR DConsultar PR DEliminar PR DValidar PR DCentrar Pr  50A DwPMsg 50A  Value 

*- Estructura del Sistema DSys SDs  Qualified D Pgm *Proc D Status 11  15S 0 D Cpf 40  46 

D CpfDescrip 91  170 D Job 244  253 D Usuario 254  263 D Nbr 264  269S 0 D LastFile 175  184 D Todo 1  500 

*- DEFINICIÓN DE VARIABLES *- Trabajar con SubFile D Nrr S 4S 0 

*- Variables de Trabajo 

D wPosIDE S 10A D wPosNOM S 20A D IndDatosOK S N D IndMOD S N 

Page 10: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 10/24

  *------------------------------------------------------------------* *- BLOQUE PRINCIPAL DEL PROGRAMA *------------------------------------------------------------------* /Free //Asignar valores a los títulos 

Encabezado();

//Ciclo principal hasta presionar F3 o F12 DoW Not *IN03 And Not *In12;//Mostrar encabezado y teclas de función 

Write REGENC;Write REGTCLSFL;

//Cargar registros del subfile CargarSubfile();

//Entregar Ejecución al usuario *In91 = *On;ExFmt REGCTL;

*In91 = *Off;

//Validar opción 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);

Page 11: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 11/24

  wPosNOM = %Trim(PCNOMMAS);Clear PCIDMAS;Clear PCNOMMAS;

//Si posicionadores no tienen valor, y subfile tiene 

//por lo menos un registro, se evalúan las posibles //opciones seleccionadas If NRR > *Zeros And

wPosIDE = '0000000000' AndwPosNOM = *Blanks;//Leer registros que hayan cambiado en Subfile ReadC REGDAT;Dow Not %EoF();//Evaluar opción 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 alfanumérica de long 50. *--------------------------------------------------------------- PCentrar B DCentrar Pi  50A 

Page 12: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 12/24

  DwPMsg 50A  Value D ConBlancos S 2  0 D I S 2  0 D Longitud S 2  0 D Texto S 50A 

/Free 

//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 posición 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 *--------------------------------------------------------------- 

Page 13: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 13/24

 *--------------------------------------------------------------- * Asignar valores a los títulos *--------------------------------------------------------------- PEncabezado B 

/Free ENCPGM = Sys.PGM;ENC01 = Centrar('Personalsoft S.A.S.');ENC02 = Centrar('Práctica Semillero en AS400');ENC03 = Centrar('Mantenimiento Maestro de Mascotas');/End-Free PEncabezado E *--------------------------------------------------------------- 

*--------------------------------------------------------------- * Cargar registros al subfile de datos *--------------------------------------------------------------- 

PCargarSubfile B /Free //Variables de trabajo y Campos Clear PCIDMAS;Clear PCNOMMAS;Clear Nrr;Clear PDOPC;

//Limpiar registros del subfile *In92 = *On;Clear Nrr;Write REGCTL;*In92 = *Off;

//Ubicarse en el archivo, dependiendo de posicionadores Select;When wPosIDE <> '0000000000' And wPosIDE <> *Blanks;

SetLl wPosIDE S18FFMASCO;When wPosNOM <> *Blanks;

Page 14: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 14/24

  SetLl wPosNOM S18LFMASCO;Other;

SetLl *Loval S18FFMASCO;EndSl;

//Leer archivo, dependiendo de posicionadores If wPosIDE = '0000000000' And wPosNOM <> *Blanks;Read S18LFMASCO;

Else;Read(N) S18FFMASCO; //Leer sin bloquear registros 

EndIf;

Dow Not %Eof() And Nrr < 9999;Nrr += 1;PDIDMAS = %Trim(IDMAS);PDNOMMAS = %Trim(NOMMAS);PDESPMAS = %Trim(ESPMAS);Write RegDat;

//Leer archivo, dependiendo de posicionadores If wPosIDE = *Blanks And wPosNOM <> *Blanks;

Read S18LFMASCO;Else;

Read(N) S18FFMASCO; //Leer sin bloquear registros EndIf;

EndDo;

//Validar si se han cargado registros If Nrr > *Zeros;

*In90 = *On; //Mostrar Subfile con registros *In93 = *On; //Controlador de Paginación 

Else;*In90 = *Off; //Ocultar Subfile con registros *In93 = *Off; //No Controlar Paginación Write REGNDAT; //Registro "No hay datos" 

EndIf;

Page 15: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 15/24

  //Limpiar posicionadores de trabajo Clear wPosIDE;Clear wPosNOM;

/End-Free 

PCargarSubfile E *--------------------------------------------------------------- 

*--------------------------------------------------------------- * Crear un registro en el archivo *--------------------------------------------------------------- PCrear B /Free //Limpiar Registro de Creación Clear REGDET;

//Ocultar Campos de auditoría *IN80 = *On;

//Mostrar Encabezado y Teclas de Función Write REGENC;Write REGTCLDET;

//Ciclo Principal de la opción, hasta presionar F3 o F12 DoW Not *IN03 And Not *In12;Write REGDET;ExFmt REGDET;//Validar tecla de función 

Select;When *In03;When *In12;

Other;//Validar información ingresada IndMOD = *Off;Validar();

//Datos Correctos, solicitar confirmación 

Page 16: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 16/24

  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 auditoría 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 opción Leave;

EndIf;

Page 17: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 17/24

  EndIf;EndSl;

EndDo;

//Restaurar Campos de auditoría 

*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 auditoría *IN80 = *On;

//Bloquear clave primaria *IN70 = *On;

//Mostrar Encabezado y Teclas de Función Write REGENC;Write REGTCLDET;

Page 18: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 18/24

 //Ciclo Principal de la opción, hasta presionar F3 o F12 DoW Not *IN03 And Not *In12;Write REGDET;ExFmt REGDET;

//Validar tecla de función Select;When *In03;When *In12;Other;//Validar información ingresada, pero no validar //la clave primaria, porque esta bloqueada 

IndMOD = *On;Validar();IndMOD = *Off;

//Datos Correctos, solicitar confirmación If IndDatosOK;

Clear WINVAL;WIVAL01 = Centrar('¿Está seguro de modificar el registro?');DoU WIRES = 'S' Or WIRES = 'N';ExFmt WINVAL;

EndDo;

//Usuario confirma, se actualiza el registro If WIRES = 'S';

NOMMAS = %Trim(PINOMMAS);FECNAC = PIFECNAC;ESPMAS = PIESPMAS;//Campos de auditoría FECMOD = %Int(%Char(%Date():*Iso0));

HORMOD = %Int(%Char(%Time():*Iso0));USUMOD = Sys.Usuario;

//ACtualización controlada en el archivo Update(E) REGMASCO;

Page 19: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 19/24

  //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 opción Leave;

EndIf;EndIf;

EndSl;

EndDo;

//Restaurar Campos de auditoría *IN80 = *Off;

//Desbloquear clave primaria *IN70 = *Off;

//Garantizar tecla F12 inactiva *In12 = *Off;

/End-Free PModificar E *--------------------------------------------------------------- 

*--------------------------------------------------------------- * Consultar la información de un registro determinado *--------------------------------------------------------------- PConsultar B /Free //Cargar a la pantalla los datos del registro, sin bloquearlo 

Page 20: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 20/24

  Clear REGDET;Chain(N) PDIDMAS S18FFMASCO;If %Found();

PIIDMAS = IDMAS;PINOMMAS = NOMMAS;

PIFECNAC = FECNAC;PIESPMAS = ESPMAS;//Obtener descripción 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 auditoría PIUSRCRE = USUCRE;PIFECCRE = FECCRE;PIHORCRE = HORCRE;

PIUSRMOD = USUMOD;PIFECMOD = FECMOD;PIHORMOD = HORMOD;

EndIf;

//Mostrar Campos de auditoría *IN80 = *Off;

//Ocultar Tecla INTRO en Teclas de función *IN75 = *On;

//Bloquear clave primaria *IN70 = *On;

//Bloquear los demás campos 

*IN71 = *On;

//Ciclo Principal de la opción, hasta presionar F3 o F12 DoW Not *IN03 And Not *In12;//Mostrar Encabezado y Teclas de Función 

Page 21: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 21/24

  Write REGENC;Write REGTCLDET;

Write REGDET;ExFmt REGDET;

//Validar tecla de función Select;When *In03;When *In12;Other;

EndSl;EndDo;

//Ocultar Campos de auditoría *IN80 = *Off;

//Mostrar tecla INTRO en teclas de función *IN75 = *Off;

//Desbloquear clave primaria 

*IN70 = *Off;//Desbloquear los demás campos *IN71 = *Off;

//Garantizar tecla F12 inactiva *In12 = *Off;

/End-Free PConsultar E *--------------------------------------------------------------- 

*--------------------------------------------------------------- * Eliminar un registro determinado del archivo *--------------------------------------------------------------- 

PEliminar B /Free //Ventana de confirmación de Eliminación Clear WINVAL;WIVAL01 = Centrar('¿Está seguro de eliminar el registro?');DoU WIRES = 'S' Or WIRES = 'N';

Page 22: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 22/24

  ExFmt WINVAL;EndDo;

//Usuario confirma, se elimina el registro If WIRES = 'S';

Chain PDIDMAS S18FFMASCO;If %Found();//Eliminación 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 *--------------------------------------------------------------- 

*--------------------------------------------------------------- 

Page 23: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 23/24

  * Validar la información de un registro *--------------------------------------------------------------- PValidar B DwIDTempo S 10A /Free 

//Desactivar los indicadores de Error IndDatosOK = *Off;*In50 = *Off;*In51 = *Off;*In52 = *Off;*In53 = *Off;*In54 = *Off;*In55 = *Off;*In56 = *Off;

//Validar la clave primaria, unicamente en la opción CREAR If IndMOD = *Off;

//Identificación Obligatoria 

If PIIDMAS = *Blanks;*In50 = *On;Return;

EndIf;

//Identificación no debe estar repetida EvalR wIDTempo = '0000000000' + %Trim(PIIDMAS);Chain(N) wIDTempo S18FFMASCO;If %Found();

*In51 = *On;Return;

EndIF;

//Identificación con ceros a la izquierda PIIDMAS = wIDTempo;EndIf;

//Nombre de Mascota requerido If PINOMMAS = *Blanks;

Page 24: Mantenimiento.pdf

7/18/2019 Mantenimiento.pdf

http://slidepdf.com/reader/full/mantenimientopdf-56d4c7374923c 24/24

  *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;

//Código de Especie requerido If PIESPMAS = *Blanks;

*In55 = *On;Return;EndIf;

//Código 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 *---------------------------------------------------------------