45 lines
1.2 KiB
Plaintext
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 |