Manuales Originales Centura Builder 5

21
5. Formateo y Validación. 5.1. Formateo. Conceptos. Formatear: Se refiere a la manera como se desplegaran los datos de un objeto. Los objetos que se pueden formatear son: Data Fields o Columns (de una Table Windows). Formatear esta ligado en cierta forma al concepto de validación. El formato depende del tipo de dato que un objeto contiene. Se hace por medio del personalizador (Customizer). 5.1.1.Objetos tipo cadena. Unformate d Por omisión los datos del tipo cadena no se someten a ningún formateo. Invisible Se utiliza para la captura de datos que no serán visibles tales como un Password. Uppercase Cuando el dato capturado será almacenado SQLWindows 90

Transcript of Manuales Originales Centura Builder 5

Page 1: Manuales Originales Centura Builder 5

5. Formateo y Validación.

5.1. Formateo.

Conceptos.

Formatear: Se refiere a la manera como se desplegaran los datos de un objeto.

Los objetos que se pueden formatear son: Data Fields o Columns (de una

Table Windows).

Formatear esta ligado en cierta forma al concepto de validación.

El formato depende del tipo de dato que un objeto contiene.

Se hace por medio del personalizador (Customizer).

5.1.1. Objetos tipo cadena.

Unformated Por omisión los datos del tipo cadena no se someten a ningún

formateo.

Invisible Se utiliza para la captura de datos que no serán visibles tales

como un Password.

Uppercase Cuando el dato capturado será almacenado exclusivamente en

mayúsculas.

Lowercase Cuando el dato capturado será almacenado exclusivamente en

minúsculas.

5.1.2. Objetos del tipo Date/Time y Number.

SQLWindows 90

Page 2: Manuales Originales Centura Builder 5

Los formatos disponibles para los objetos Date/Time y Number se

encuentran en la sección Formats de las Global Declarations y se describen

en la imagen.

Los formatos para este tipo de datos son muy variados y SQLWindows

tiene definidos los más comunes, pero no son fijos, pueden ser modificados e

incluso se pueden definir nuevos formatos.

El formato definido se denomina Máscara, al especificar características

del objeto con el Customizer se asigna la máscara (Picture Formatting).

5.1.2.1. Formatos del tipo Date/Time.

Caracteres para máscaras del tipo Date/Time

SQLWindows 91

Page 3: Manuales Originales Centura Builder 5

Caracter Descripción

M Mes : 1-12 ( sin ceros a la izquierda ).

MM Mes : 01-12 ( con ceros por la izquierda ).

MMM Mes : Jan-Dec ( las tres primeras letras en inglés ).

MMMM Mes : January-December ( nombre del mes completo en

inglés ).

d Día : 1-31 ( sin ceros a la izquierda ).

dd Día : 01-31 ( con ceros por la izquierda ).

ddd Día : Sun-Sat ( las tres primeras letras en inglés ).

dddd Día : Sunday-Saturday ( nombre del día completo en inglés ).

yy Año : 2 dígitos ( 95 ).

yyyy Año : 4 dígitos ( 1995 ).

hh Hora : formato de la hora en 12 horas.

hhhh Hora : formato de la hora en 24 horas.

mm Minutos : 0-59

ss Segundos : 0-59

mmmmmm Microsegundos : 000000-999999

AMPM Cadena internacional para AM o PM ( antes o después

meridiano ).

La máscara se arma utilizando los caracteres mostrados en la imagen

superior, si se utilizan otros caracteres, estos se utilizarán en forma literal al

formatear el dato, por ejemplo yy-mm-dd producirá resultados como: 94-01-

05 mientras que yymmdd no incluirá ningún separador 940105.

SQLWindows 92

Page 4: Manuales Originales Centura Builder 5

Una vez definida la máscara, esta se asigna al objeto con el

Customizer.

5.1.2.2. Formatos del tipo Number

Caracteres para mascaras del tipo Number.

Caracter Uso

# Eliminación de ceros. SQLWindows no aumenta ceros a la

izquierda del punto decimal o a la derecha del mismo si la

cantidad de dígitos capturados es menor a la cantidad de #´s

definidas. El símbolo # puede ser colocado n cantidad de veces a

la izquierda del 0 ó del punto decimal y n cantidad de veces

después del 0 y después del punto decimal.

0 Llenado de ceros. SQLWindows aumenta la cantidad de ceros que

sean necesarios, en ambos lados del punto decimal, para cubrir

con al máscara definida por el usuario. Si el número capturado es

mayor a la máscara por la derecha del punto decimal,

SQLWindows redondea la cantidad. Si se captura más por la

izquierda, éstos son desplegados

, Separador de Miles. Despliega una coma ( , ) en el lugar donde fue

definida. Este caracter debe colocarse necesariamente cada tres

dígitos a la derecha del punto decimal.

Con estos caracteres se definen las máscaras para cantidades que

expresen dinero o cantidad, por ejemplo: $#,##0.00.

SQLWindows 93

Page 5: Manuales Originales Centura Builder 5

Para incluir un caracter o varios caracteres en forma literal se deben

colocar entre comillas.

Definir un formato para Nuevos Pesos sería sencillo: ‘N$’#,##0.00.

Caracteres para mascaras del tipo Number (Continuación).

Caracter Uso

% Porcentaje. SQLWindows multiplica la cantidad por 100 y coloca

el signo de porcentaje si éste fue definido después del último 0.

$

Signo de Pesos. Despliega el caracter en la posición que se

indique, puede utilizarse en una posición fija o variable y no

debe usarse a la derecha del 0, # ó del punto decimal.

E+

e+

E-

e-

Notación Científica ( Exponencial ). Si el formato tiene un 0 ó #

después del caracter E ó e, SQLWindows desplegara el valor

numérico con notación científica. Ejemplos de esto es 0.00E+00

y 00.####e-00# .

. Punto Decimal. Auxiliados con los caracteres 0 y #, el punto

decimal determina la cantidad de caracteres por la derecha e

izquierda del mismo. Si sólo se definen caracteres a la derecha,

SQLWindows desplegará las cantidades empezando con un

punto y no aumentará el 0 por la izquierda, para evitar esto se

debe incluir un 0 por la izquierda del punto decimal.

* Caracter de Relleno. Repite el caracter tantas veces como sea

necesario para llenar la longitud del campo definida por el

usuario. Se debe colocar inmediatamente antes de primer # ó 0.

SQLWindows 94

Page 6: Manuales Originales Centura Builder 5

; Se utiliza para separar dos formatos, mismos que serán aplicados

para los valores positivos y negativos respectivamente.

Solamente debe ser utilizado una vez en la máscara.

- Deja un espacio en blanco en lugar del caracter. Si se utiliza al

final del formato, utilice cualquier otro caracter enseguida del

mismo para que éste tenga efecto.

5.1.3. Input Mask.

Su tarea principal es: Validar los datos conforme el usuario los teclea.

Especifica el tipo de caracteres que el usuario debe teclear y si estos

no corresponden, genera un Beep.

Convierte de mayúsculas a minúsculas o viceversa según se requiera.

Inserta caracteres de separación en forma automática.

Pueden asignarse a un Combo Box, Data field ó Table Windows

Column.

Al igual que las máscaras para formatos, los Input Mask pueden

definirse en la sección Global Declarations, y para usarse sólo se asignan al

objeto que se desea.

Caracteres para definir un Input Mask.

X Cualquier Caracter.

! Cualquier Caracter pero en mayúsculas.

a Caracteres alfabéticos (A-Z, a-z ).

A Caracteres alfabéticos en mayúsculas.

9 Caracteres numéricos ( 0-9 ).

SQLWindows 95

Page 7: Manuales Originales Centura Builder 5

n Caracteres alfanuméricos..

N Caracteres alfanuméricos en mayúsculas.

Ejemplo: 999-99-9999 acepta capturas como 123-45-67, el usuario no

necesita teclear los signos “ - ”, estos se insertan automáticamente conforme el

usuario teclea los números.

Se debe tener cuidado cuando se asigna formato e Input Mask a

objetos tipo Date-Time, no se pueden asignar máscaras con diferencia de

tamaño o distribución de caracteres. Por ejemplo si se define un Input Mask

99-99-99 no se puede asignar formato como dd-mm-yyyy, ello causará un

error en tiempo de ejecución.

Ejercicio.

En la aplicación de Control de Clientes ningún objeto tiene formato,

asigne los formatos:

1. RFC: en mayúsculas, tres letras, 6 dígitos, guión y tres alfanuméricos.

Localice el data field dfRFC, abra la ventana del customizer, seleccione la

opción Format y elija Uppercase, luego elija la opción Input Mask y teclee

AAA999999-NNN, y haga click en la opción Done.

SQLWindows 96

Page 8: Manuales Originales Centura Builder 5

2. Razón: sólo Mayúsculas.

Localice el data field dfRazon, abra la ventana del customizer, seleccione la

opción Format y elija Uppercase, luego haga click en la opción Done.

3. Teléfono: sólo números, tres dígitos, guión, cuatro dígitos.

Localice el data field dfTelefono, abra la ventana del customizer, seleccione la

opción Input Mask y teclee 999-9999, luego haga click en la opción Done.

4. Prioridad: Un dígito sin decimales.

Localice el data field dfPrioridad, abra la ventana del customizer, seleccione la

opción Input Mask y teclee 9, luego haga click en la opción Done.

5. Fecha: en el formato día-mes-año, con dos dígitos para cada dato.

Localice el data field dfFecha abra la ventana del customizer, seleccione la

opción Format y teclee dd-MM-yy, luego elija la opción Input Mask y teclee

99-99-99, finalmente haga click en la opción Done.

5.2. Validación.

La validación automática puede ahorrar mucho trabajo al programar ya

que controla la validez de números y fechas, sin embargo en aplicaciones

reales es común que se necesiten validaciones especificas, así que en una

aplicación se pueden tener objetos con validación automática o personalizada

o ambas.

Conceptos.

SQLWindows 97

Page 9: Manuales Originales Centura Builder 5

Validación automática para los objetos del tipo Number o

Date/Time.

Se dispara al momento de abandonar le objeto de estos tipos.

Si existe error en la información, SQLWindows no permite

abandonar el objeto.

En campos numéricos cualquier secuencia de caracteres numéricos es

válida. Si hay algún caracter alfabético en la captura se despliega un

mensaje.

5.2.1. Validación Automática.

Para campos de fecha/hora se efectúan los siguientes pasos (si se

cumple alguno, el campo se acepta).

1. En el WIN.INI sección [ intl ], se busca la declaración de fechas

cortas.

2. Se verifica por formato largo.

3. Se verifican los formatos estándares de SQL Windows:

MM d,yyyy

MMM dd,yyyy

MMMM d,yyyy

MMMM dd,yyyy

yyyy,MM-dd

d MMMM,yyyy

dd MMMM,yyyy

SQLWindows 98

Page 10: Manuales Originales Centura Builder 5

4. Si el campo tiene máscara de fecha, se verifica contra estos formatos.

5. Si no se cumplió ninguno de los pasos anteriores, se envía un

mensaje de error.

5.2.2. Validación Personalizada.

La validación automática puede ser remplazada por una validación

propia atendiendo el mensaje SAM_Validate.

Dependiendo de si fue exitosa o no la validación personalizada, se debe

regresar un VALIDATE_Ok o un VALIDATE_Cancel.

Si no se regresa ningún valor, SQLWindows ejecuta la validación

automática.

Ejemplo:

En este ejemplo (vea la imagen ) cuando el usuario teclee en valor en el

Data Field y trate de pasar a otro objeto ( con el mouse o la tecla del

tabulador ), se enviara el mensaje SAM_Validate, si el valor que tiene

dfDescuento no cumple con la condición se regresa un valor

VALIDATE_Cancel, el cual impide que el usuario pase a otro objeto.

SQLWindows 99

Page 11: Manuales Originales Centura Builder 5

Ejercicio.

1. Valide la prioridad entre 0 y 5.

En el Data Field dfPrioridad atienda el mensaje SAM_Validate.

2. Valide que la fecha de alta no sea mayor que la de hoy.

En el Data Field dfFechaAlta atienda el mensaje SAM_Validate.

SQLWindows 100

Page 12: Manuales Originales Centura Builder 5

3. Pruebe la aplicación.

Nota. La función SalDateCurrent() proporciona la fecha del cliente, en un sistema real es

mejor utilizar la fecha del servidor para que todas las estaciones trabajen con el mismo

dato. En el caso SQLBase para obtener la fecha del servidor se debe hacer un query, por

ejemplo al momento de conectarse a la base de datos se podría ejecutar:

Call Sqllmmediate(‘Select distinct SYSDATE from Cliente into :dtFechaHoy’)

o bien

Call SqlPrepareAndExecute(hSqlWork,’ Select distinct SYSDATE from Cliente

into :dtFechaHoy’)

Call SqlFetchNext(hSqlWork)

En ambos casos Cliente es una tabla que existe en la base de datos, y

dfFechaHoy es una variable del tipo DateTime.

SQLWindows 101

Page 13: Manuales Originales Centura Builder 5

Evaluación.

1. Los objetos que pueden someterse a formato son: _________________ y los

______________________.

2. Los objetos del tipo de String pueden tener un número ilimitado de formatos.

Cierto Falso

3. Los formatos predeterminados para datos del tipo String son:

_____________, _____________, ______________, y _________________.

4. Se pueden definir nuevas máscaras de formato en la sección

______________ que se encuentra dentro de la sección

___________________________.

5. Cuando se define un formato para números positivos y otro para números

negativos se debe utilizar el caracter __________________.

SQLWindows 102

Page 14: Manuales Originales Centura Builder 5

6. Para máscaras de tipo Date/Time sólo se pueden utilizar los caracteres / y -

como separadores.

Cierto Falso

7. Cuando se asigna el formato Uppercase a un objeto, no se pueden teclear

minúsculas en ese objeto.

Cierto Falso

8. La diferencia entre usar # ó usar 0 en una máscara de tipo numérico es que la

primera no __________________________ mientras que en el otro caso si.

9. Para objetos del tipo _______________ y ________________se pueden

utilizar validación automática.

10. Para todos los objetos se puede utilizar la validación personalizada.

Cierto Falso

11. El mensaje SAM_Validate lo recibe un objeto cuando:

_____ El usuario hace una modificación al contenido del objeto.

_____ El suario pasa a otro objeto con el tabulador o el mouse.

_____ El usuario coloca el cursor en el objeto.

12. SQLWindows obliga al usuario a recapturar el dato cuando el objeto

regresa un valor ___________________ en atención del mensaje

_______________.

13. En el caso de no regresar ningún valor al atender el mensaje

SAM_Validate, SQLWindows utiliza _______________________.

SQLWindows 103

Page 15: Manuales Originales Centura Builder 5

5. FORMATEO Y VALIDACIÓN.

5.1. Formateo.5.1.1. Objetos tipo cadena.5.1.2. Objetos del tipo Date/Time y Number.5.1.3. Input Mask.

5.2. Validación.5.2.1. Validación Automática.5.2.2. Validación Personalizada.

SQLWindows 104