jueves, 10 de febrero de 2011

Editar Campo de Fecha en Archivo de Pantalla (EDTWRD – EDTMSK)

Cuantas veces nos piden hacer una pantalla (programa interactivo) donde se ingresen datos. Y entre los datos hay campos de fecha.
Como sabe el usuario en que formato ingresar la fecha? Como le decimos al usuario en que formato ingresarlo, si deseo que ingresen en formato AAAAMMDD?
Haría algo así…
Colocamos un comentario para indicarle el modo en que debe ingresarlo:

Fecha Nacimiento:                              aaaammdd


O también así

Fecha Nacimiento:  Año           Mes       Día      


O esto

Fecha Nacimiento:         /        /      


Internamente, por programa movemos cada variable de la pantalla al respectivo campo de una estructura del programa, luego movemos y etc. etc.
Pero, previamente, tendremos que realizar algunas validaciones:
- Validar que el campo mes esté en el rango 1-12
- Validar que el campo día esté en el rango 1-31 (Aquí tiene relación con el mes, febrero tiene 28 ó 29 días y algunos meses 30 días) y hasta validar el año.

Existe una manera más práctica de hacer esto y colocar los separadores de fecha (puede ser el carácter slash, guiones, etc.) sin tener que separar los meses, días y año.
Solo utilizamos 2 palabras claves en el campo del archivo de pantalla para enmascarar y colocar los separadores de fechas haciendo usos de EDTWRD y EDTMSK.
Ejemplo:   Consideremos un campo numérico de 8 posiciones con 0 decimales.
En el SDA, seleccionamos las palabras clave del campo.

Fecha Nacimiento:. *99999999   


 Seleccionar Palabras Clave de Campo, luego Palabras claves edición colocamos lo siguiente:

                     Seleccionar palabras clave de edición                     
                                                                               
 Campo . . . . . :   FECNAC               Utilización: B                       
 Longitud  . . . :   8,0                  Fila . . . : 8    Columna  . . :  31 
                                                                               
                                                                                
 Teclee opciones, pulse Intro.                                                 
                                          Palabra clave                    Más 
   Código de edición  . . . . . . . . .   EDTCDE       A-D, J-Q, W, Y, Z, 1-9  
     Sustituir ceros iniciales por  . .                *, $                    
                                                                               
   Palabra de edición . . . . . . . . .   EDTWRD   '    /  /  '                
                                                                               
                                                                               
                                                                                
   Máscara de edición . . . . . . . . .   EDTMSK   '    &  &  '                
                                                                               
                                                                                
                                                                               
                                                                              

En el programa no se realiza ningún cálculo ni movimiento de variables, solo se tendrá que validar la validez de la fecha. Moviendo la variable de la pantalla a un campo fecha y monitorear los indicadores de error.
Ojo:  Esto es válido para campos numéricos bivalentes (ingreso y salida).
Si deseo que al iniciar el proceso, el campo fecha presente los separadores e inicializado con ceros, tendré que anteponer un cero de la manera siguiente:


Palabra de edición . . . . EDTWRD   '0    /  /  '            












El campo numérico siempre será de 8 posiciones.  Solo que en la pantalla se mostrarán los separadores pero el campo fecha se tratará como un solo campo numerico. Los separadores ayudaran al usuario para saber el formato que debe usar. Claro que luego tendremos que validar que sea una fecha valida y convertimos al formato que tiene el campo en la tabla.
Esto lo podemos aplicar para diferentes tipos de formato númericos (número teléfono, número tarjeta credito, etc.) 
Encontraremos mas información acerca de esto en los manuales on line de ibm.

http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=%2Frzakc%2Frzakcmstedtmsk.htm

Esto nos servirá para hacer más presentables nuestras interfaces. Más adelante compartiré otras utilidades para mejorar nuestras pantallas.

No hay comentarios:

Publicar un comentario