Files
MBS/PROYECTO/otrodir/combodin.4gl
T

45 lines
1.2 KiB
Plaintext

FUNCTION combo_din(vl_campo, vl_query)
DEFINE vl_campo string
DEFINE vl_query string
DEFINE vl_lista char(500)
DEFINE vl_metodo string
DEFINE vl_valor string
DEFINE vl_combo ui.ComboBox
DEFINE vl_lista_nodb base.StringTokenizer
LET vl_campo = vl_campo.trim()
LET vl_query = vl_query.trim()
#-- Obtiene el nodo del metodo Combo de la clase ui
LET vl_combo = ui.ComboBox.forName(vl_campo)
IF vl_combo IS NULL
THEN
RETURN
END IF
#-- Limpia los registros anteriores del combo
CALL vl_combo.clear()
#-- Procesa segun el metodo convirtiENDo a mayusculas para mejor tratamiento
LET vl_metodo = vl_query.toUpperCase()
IF vl_metodo MATCHES "SELECT*" THEN
#--Prepara el query
PREPARE q_comboList FROM vl_query
DECLARE c_comboList CURSOR FOR q_comboList
#-- Obtiene la lista de valores de la tabla segun el query enviado
FOREACH c_comboList INTO vl_lista
LET vl_valor = vl_lista CLIPPED
CALL vl_combo.addItem(vl_valor, vl_valor)
END FOREACH
ELSE
#-- Obtiene la lista de valores que no son de base de datos
LET vl_lista_nodb = base.StringTokenizer.create(vl_query, "|")
WHILE vl_lista_nodb.hasMoreTokens()
LET vl_valor = vl_lista_nodb.nextToken()
CALL vl_combo.addItem(vl_valor, vl_valor)
END WHILE
END IF
END FUNCTION