Informix - usar tabla en programa

 
Vista:

usar tabla en programa

Publicado por daniel (59 intervenciones) el 22/06/2005 20:23:06
saludos, tengo la duda acercar de si luego de crear una tabla con dbaccess, debo hacer algo adicional para manipularla en un programa. es decir hacer consultas y modificaciones.
esto viene de mi pregunta anterior. porque copie una rutina que si funciona, le cambie las cuestiones correspondientes a la tabla por la que quiero consultar,, y me sucede lo mismo , al llegar al display by name se sale.
logre capturar la pantalla y solo puedo ver que en la posicion del primer campo muestra "sh". por ejemplo:

numero de transaccion: sh
descripcion:
fecha:

y regresa al menu anterior. esto me tiene de cabeza.

GLOBALS
"banope_glo.4gl"

FUNCTION banopetr()

CALL clear_me()
OPEN FORM banopetr FROM "banopetr"
DISPLAY FORM banopetr
CALL marco(p_conparm.nomcia)
MESSAGE "Int. Criterio y Pulse <Esc> P' Iniciar o <Ctrl-Backspaces> P' Abandonar"
DISPLAY "CONSULTAR TRANSFERENCIAS ENTRE CUENTAS " AT 4, 2 ATTRIBUTE(CYAN)
CONSTRUCT criter ON bantrans.num_trans,bantrans.des_trans,bantrans.cue_ini,
bantrans.cue_fin,bantrans.fech_trans,
bantrans.mon_trans,bantrans.banco
FROM bantrans.num_trans,bantrans.des_trans,bantrans.cue_ini,
bantrans.cue_fin,bantrans.fech_trans,
bantrans.mon_trans,bantrans.banco

IF int_flag THEN
LET int_flag = FALSE
ERROR "Proceso Suspendido por el Usuario..."
SLEEP 2
RETURN
END IF
LET criter_bus = "SELECT bantrans.* FROM bantrans WHERE ",
criter CLIPPED,
" AND bantrans.cod_cia = ? ",
" ORDER BY bantrans.fech_trans "
PREPARE criter_pre FROM criter_bus
DECLARE bus_cur SCROLL CURSOR FOR criter_pre
OPEN bus_cur USING cod_cia
FETCH FIRST bus_cur INTO p_bantrans.*
CALL mos_trans()
CALL mos_menut()
END FUNCTION

FUNCTION mos_menut()
MENU "Buscar"
COMMAND "Primero" "Ver el Primer Banco en la Lista"
CALL mue_curt("P")
CALL mos_trans()
NEXT OPTION "Siguiente"
COMMAND "Siguiente" "Ver el Siguiente Banco en la Lista"
CALL mue_curt("S")
IF ok = FALSE THEN
ERROR "No hay mas Registros en esta Direccion..."
NEXT OPTION "Anterior"
ELSE
CALL mos_trans()
NEXT OPTION "Siguiente"
END IF
COMMAND "Anterior" "Ver el Banco Anterior en la Lista"
CALL mue_curt("A")
IF ok = FALSE THEN
ERROR "No hay mas Registros en esta Direccion..."
NEXT OPTION "Siguiente"
ELSE
CALL mos_trans()
NEXT OPTION "Anterior"
END IF
COMMAND "Ultimo" "Ver el Ultimo Banco en la Lista"
CALL mue_curt("U")
CALL mos_trans()
NEXT OPTION "Anterior"
COMMAND "/" "Regresar al Menu Anterior"
CLOSE bus_cur
EXIT MENU
END MENU
END FUNCTION

FUNCTION mue_curt(tipo)
DEFINE
tipo CHAR(1)
LET ok = TRUE
CASE tipo
WHEN "P"
FETCH FIRST bus_cur INTO p_bantrans.*
WHEN "S"
FETCH NEXT bus_cur INTO p_bantrans.*
IF status = NOTFOUND THEN
LET ok = FALSE
END IF
WHEN "A"
FETCH PREVIOUS bus_cur INTO p_bantrans.*
IF status = NOTFOUND THEN
LET ok = FALSE
END IF
WHEN "U"
FETCH LAST bus_cur INTO p_bantrans.*
END CASE
END FUNCTION

FUNCTION mos_trans()
DISPLAY BY NAME p_bantrans.num_trans,p_bantrans.des_trans,p_bantrans.cue_ini, p_bantrans.cue_fin,p_bantrans.fech_trans,p_bantrans.mon_trans,
p_bantrans.banco
END FUNCTION
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:usar tabla en programa

Publicado por daniel (59 intervenciones) el 22/06/2005 22:23:05
un avance, pude notar que con
display campo at n,n
display campo2 at n,n

muestra el primer campo y se sale. esto me da la impresion que el problema esta en la declaracion del cursor o algo relacionado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar