Acceso a datos 11: Como evitar tantas pantallas

Continuamos con el sistema de conciliación Bancaria, y veremos un ejemplo de cómo podemos evitar tantos formularios.

La base de lo que sigue es algo obvio, pero sin embargo obvio: Casi todos los usuarios están familiarizados con windows. Crear formularios a diestra y siniestra para emular Msgbox e inputbox con iconos/opciones diferentes, es contraproducente.

Al pasar a bancos notamos que solo tenemos 3 datos, de los cuales dos son obligatorios y uno no. Por regla general he visto que a los usuarios les molesta un poco tener una pantalla completa para menos de 4 datos, y a mi me da flojera gastar tiempo y líneas de código en algo que puede resolverse mas simple. Aunque el proceso que veremos se ve bien, y su simplicidad resulta obvia, sugiero no usarlo en tablas con mas de 4 campos “visibles al usuario”, por visibles al usuario me refiero a los campos que ellos pueden modificar.

[color=#FFFFCC]BANCOS

[font=Courier New]NOMBRE[color=#000000]………TIPO[color=#000000]………..LARGO[color=#000000]……….INDICE[color=#000000]……..UNICO[color=#000000]………..NULO
——————————————————————————————————-
BCO_CVE[color=#000000]………Carácter[color=#000000]…….10[color=#000000]………….Sí[color=#000000]…………Si[color=#000000]…………..No
BCO_NOM[color=#000000]………Carácter[color=#000000]…….20[color=#000000]………….No
BCO_NOTA[color=#000000]……..Carácter[color=#000000]…….60[color=#000000]………….No[color=#000000]…………No[color=#000000]…………..Sí

Describe[color=#000000]…….De que[color=#000000]………Cuantos[color=#000000]……..Vamos a[color=#000000]……..Es único o[color=#000000]…..Es
el campo[color=#000000]…….tipo son[color=#000000]…….espacios[color=#000000]…….buscar por[color=#000000]…..o puede[color=#000000]……..obligatorio
[color=#000000]……………los datos?[color=#000000]…..va a usar?[color=#000000]…..este valor?[color=#000000]….repetirse[/font]

Debido a su tamaño puedo asegurar que cualquier módulo ABC de menos de 5 campos visibles puede gestionarse sin usar textbox, lo que nos evita bastante código. Incidentalmente, los ABC que cumplen estas condiciones pueden integrarse en una parte pequeña de otra pantalla, porque si tenemos un reporte rápido para ver el “catálogo”, será mas intuitivo ver el reporte que los textbox. O peor aun, que crear un grid. Ustedes y yo hemos visto programas que usan grids hasta por las orejas, en lugar de un solo reporte bien estructurado. Y Para imprimir el grid siempre se tiene que hacer el reporte de todos modos.

Así que considerando los otros módulos o Tabs, crearemos nuestro control de ABC en la parte derecha del que dice cuentas.

[color=#FFFFCC]Taller:

1. Cambiar la propiedad Caption del Tab Bancos a – Borrar –

2. Seleccionar el tab cuentas y crear un frame al que llamaremos frabancos, con un caption que diga “Maestro de bancos”

3. Crearemos dentro de Frabancos un listbox y seis commandButton con los mismos caption que usamos en el tab de tipos de movimientos, se llamarán LstBancos ( Con sorted true ), y los seis botones con index de 0 a 5.

Tip: Sugiero copiar y pegar lo de tiposmov, y siolo modificar index y nombre de los controles despues de eliminar textbox. Ojo con decir que no cuando nos pregunte si quieremos hacer un arreglo.

Si hicieron el taller, notarán que resulta obvio que no sabemos cuanto espacio vamos a necesitar para el frame de cuentas, asi que sugiero que antes de hacer el código de bancos hagamos solo el diseño de la pantalla de cuentas.

Considerando que:

[color=#FFFFCC]CUENTAS_B (la b es notacion de cuentas bancarias)
[font=Courier New]
NOMBRE[color=#000000]………TIPO[color=#000000]………..LARGO[color=#000000]……….INDICE[color=#000000]……..UNICO[color=#000000]………..NULO
——————————————————————————————————-
CTAB_CVE[color=#000000]………Carácter[color=#000000]……03[color=#000000]………….Sí[color=#000000]…………Si[color=#000000]…………..No
BCO_CVE[color=#000000]……….Carácter[color=#000000]……10[color=#000000]………….No
CTAB_SUC[color=#000000]………Carácter[color=#000000]……30[color=#000000]………….No
CTAB_NCHEQ[color=#000000]…….Carácter[color=#000000]……60[color=#000000]………….No[color=#000000]…………Si
CTAB_TITU1[color=#000000]…….Carácter[color=#000000]……10[color=#000000]………….No
CTAB_TITU2[color=#000000]…….Carácter[color=#000000]……10[color=#000000]………….No[color=#000000]…………Si
CTAB_TITU3[color=#000000]…….Carácter[color=#000000]……10[color=#000000]………….No[color=#000000]…………Si
CTAB_FEAPE[color=#000000]…….Carácter[color=#000000]……10[color=#000000]………….No
CTAB_SMIN[color=#000000]……..Carácter[color=#000000]……15[color=#000000]………….No
CTAB_FEBAL[color=#000000]…….Carácter[color=#000000]……10[color=#000000]………….No[color=#000000]…………Si
CTAB_NOTA[color=#000000]……..Carácter[color=#000000]……60[color=#000000]………….No[color=#000000]…………Si
CTAB_RESP[color=#000000]……..Carácter[color=#000000]……10[color=#000000]………….No[/font]

Quiero que pongan atención que los campos titular1 a titular 3, y el responsable, son del mismo tamaño. Esto se debe a que deben hacer referencia a los usuarios de la tabla usuarios, que veremos después.

Fijense que el campo de bancos se llama BCO_CVE y no CTAB_BCO, porque realmente estamos usando un dato de bancos. Obviamente el largo y tipo del campo en las dos tablas, bancos y cuentasb, deben ser iguales, pero no necesariamente los indices.

[color=#FFFFCC]Taller:

Usaremos un Frame llamado fracuentasb, un listbox sorted true ( lstcuentasb), seis command buttons y los textbox necesarios con la propiedad maxlength fijada al largo, con arreglo de index de 0 al que haga falta.

Una vez hecho esto la pantalla debe verse mas o menos así:

Pantalla del sistema de conciliaciones (2)

Si no la tienen, les envío en el siguiente correo el archivo conc02.zip, donde viene el proyecto en Visual 5. SP3. Si no ven la pantalla, está en images/conc03.gif

El secreto de como evitar pantallas es muy simple. Veamos como sería en un sistema normal la pantalla de alta de bancos:

Pantalla típica de alta de bancos

Supongo que la idea de esas pantallas es que al dar unclick en aceptar se guarden todos los cambios, y desactivar cambios desagradables en algunos casos. Vamos a ver un ejemplo de pedir esos datos sin formulario. Recuerden solamente que mas de cinco datos MODIFICABLES ya no es práctico, y si es ese el caso, casi seguramente ya hay ligas adicionales a mirar.

[code]private sub pidedatosbancos
‘ creamos tres variables para los datos que queremos.
dim strClave as string, strNombre as string, strNota as string
do

Comments are Closed