7. El siguiente paso a codificar podría ser
aquel en el que abrimos los archivos o base de datos a ser usados. Ahí también
definimos las variables y constantes necesarias para el proceso posterior del
programa. Esto tenemos que hacerlo en una rutina también predeterminada por
el GUIBuilder como * Initialization Code. Igual a como lo hicimos en
el paso 6, la buscamos y digitamos lo siguiente:
rem ' --------------------------------------------------------
rem ' Init
rem ' --------------------------------------------------------
Print (gb__sysgui)'context'(gb__win.frm_Ejercicio)
rem ' --------------------------------------------------------
rem ' DEFINE CONSTANTES
REM ' para obtener informacion de campos usados en el contexto, por
REM ' ejemplo: TXT_CLIENTE es el name asignado en el ResBuilder,
REM ' y por medio de este nombre obtenemos el numero de id que se le
REM ' asignó en el ResBuilder, que es mejor guardar en una variable.
REM '---------------------------------------------------------
DIM FRM_SCREEN$:FNGB__TEMPLATE$(GB__WIN_ID$)
ID_CLIENTE=NUM(FATTR(FRM_SCREEN$,"TXT_CLIENTE","ID"))
ID_NOMBRE=NUM(FATTR(FRM_SCREEN$,"LST_NOMBRE","ID"))
ID_DIRECCION=NUM(FATTR(FRM_SCREEN$,"TXT_DIRECCION","ID"))
ID_TELEFONO=NUM(FATTR(FRM_SCREEN$,"TXT_TELEFONO","ID"))
ID_FECHA_ING=NUM(FATTR(FRM_SCREEN$,"TXT_FECHA_ING","ID"))
ID_LIMITE=NUM(FATTR(FRM_SCREEN$,"TXT_LIMITE","ID"))
ID_BUSCAR=NUM(FATTR(FRM_SCREEN$,"BTN_BUSCAR","ID"))
OBTENER_TEXTO=1
REM ' --------------------------------------------------------
REM 'Abre base de datos a ser usada
SQLCHAN=SQLUNT
SQLOPEN(SQLCHAN)"Cuentas por Cobrar"
GOSUB LISTA_NOMBRES
SQLPREP(SQLCHAN)"SELECT * FROM CLIENTES"
DIM CLIEN$:SQLTMPL(SQLCHAN)
PRINT (GB__SYSGUI)'FOCUS'(ID_CLIENTE)
8. La rutina LISTA_NOMBRES mencionada en la anterior rutina es la que nos carga
en memoria la lista con los nombres de todos los clientes. Si queremos podemos
escribirla de una vez, para lo cual abrimos el control de lista Object
y seleccionamos --- New Subroutine/Function ---. Nos aparece una ventana
Name Subroutine/Function para que digitemos:
LISTA NOMBRES
Le damos aceptar y procedemos a digitar el siguiente código:
rem ' --------------------------------------------------------
rem ' LISTA NOMBRES
rem ' --------------------------------------------------------
LISTA_NOMBRES:
SQLPREP(SQLCHAN)"SELECT CODIGO,NOMBRE FROM CLIENTES
: ORDER BY NOMBRE"
SQLEXEC(SQLCHAN)
DIM CLI$:SQLTMPL(SQLCHAN)
PRINT(GB__SYSGUI)'LISTCLR'(ID_NOMBRE)
LEE_CLIENTES:
CLI$=SQLFETCH(SQLCHAN,ERR=FIN_LISTA)
PRINT(GB__SYSGUI)'LISTADD'(ID_NOMBRE,-1,CLI.NOMBRE$+" "+CLI.CODIGO$)
GOTO LEE_CLIENTES
FIN_LISTA:
return
|