flexCombo Tipo: Object

Componente para armar un menú desplegable desde la BD (dado el id de una tabla maestra)

Permite ser enlazado

Componente para armar un menú desplegable desde la BD (dado el id de una tabla maestra). Este componente es utilizado por los componentes flexForm y flexGrid (en los buscadores). Principales funcionalidades (atributos):

  • Avanzado: Permite aplicar el plugin jquery que genera un buscador dentro del flexCombo
  • Agrupable: Permite agrupar (solo en un nivel) los registros.
  • Acciones: Se puede incorporar "botones" para actualizar el listado de registros, agregar un registro o editar un registro (cuando se selecciona una opción del menú desplegable).
  • Filtros simples y avanzados

Ejemplo de un flexCombo avanzado con botones para agregar/editar registro





Parámetros

idFlex

Campo id de la tabla maestra. El framework deduce el nombre de la tabla principal que se desea mostrar a través de este parámetro

Tipo: Id Database

Valor por defecto: null

CODIGO EJEMPLO
idFlex:'id_syspubl01',

// La consulta se realizará sobre

// sys_publ_01_XXX_XXXXXXXXX (prefijo único)
url

url a la cual se realizará el post para obtener la información de la BD

Tipo: Path file

Valor por defecto: lib/flex/flexComboXml.php

urlInterfaz

Path del archivo para agregar un registro. Si se coloca este parámetro se agrega un botón (+) al lado del campo.

El botón abre el archivo y le envía por post los parámetros
fflex=combo
el id_refresh=(formulario mas ID del campo)

El php a llamar debe recibir por POST el tipo de componente a recargar (onsubmit). Ver ejemplo

Tipo: Path file

Valor por defecto: false

CODIGO EJEMPLO
$fflex = $_POST['fflex']; 
if($fflex=="")
	$fflex = "grid";
optModel

Versiones mayores a 2.9 >>>>>>
Campos de la base de datos a mostrar en el combo

Todas las Versiones >>>>>>
Nombre del campo de la BD a mostrar. Para mostrar más de un campo se deben separar los campos por <@>

Si unos de los campos posee un prefijo diferente al de la tabla maestra, realiza un inner join a la tabla en cuestión. Si se desea establecer que tipo de join se deve realizar, se puede colocar left o right separando el nombre del campo con "-" (GUIÓN)

Tipo: Array Object

Valor por defecto: []

Subparámetros de optModel

display

Texto a mostrar adelante de cada optModel

Tipo: String

Valor por defecto: null


name

Nombre del campo en la BD

Tipo: Field Database

Valor por defecto: null


joinFk

Indica que la tabla que posee el rela NO es la tabla maestra, sino la tabla a joinear El valor a poner es "this"

Tipo: String

Valor por defecto: null


joinType

Cuando el campo a mostrar no pertenece a la tabla maestra. Determina el tipo de join a realizar en la consulta a la DB. Se utiliza solo cuando es necesario determinar un join particular. Si no por defecto se realiza un inner join.

Tipo: String

Valor por defecto: null


joinOrder

Cuando se realizan mas de un join a otras tablas, determina el orden en que se realizan los join

Tipo: Integer

Valor por defecto: null


joinPrefix

Se utiliza cuando al realizar un join, se necesita anteponer el nombre de la tabla El valor puede ser "this" (para poner el nombre de la tabla maestra) o el nombre completo de la otra tabla Ejemplo: inner join nombre_tabla on id_nombre_tabla=nombre_tabla.rela_nombre_tabla

Tipo: String

Valor por defecto: null


op

Para realizar operaciones en la consulta a la base. El attr name es tomado como el "as" [select (op) as name]

Tipo: String

Valor por defecto: null


format

Formato del texto a mostrar

Tipo: String

Valor por defecto: null

Valores aceptados: date | datetime | image | decimal-1 | decimal-2 | decimal-3 | decimal-4 | time


extraData

Al establecer la variable en true, el campo NO se muestra en el listado de registro, si no que se agrega como un atributo DATA (jquery) del campo en el formulario. Los valores de estos atributos pueden ser recuperados

Tipo: Boolean

Valor por defecto: false

CODIGO EJEMPLO
if($ ("#form_{form_abm} #field_name").val()!="")
	{
		var fieldData=$ ("#form_{form_abm} #field_name option:selected").data("attr_data");
	}
	else
	{
		var fieldData="";
	}

joinField

Campo tipo "rela" a utilizar (cuando la tabla posee un rela distinto del estandar, por ej: rela_sysname01_origen)

Tipo: Field Database

Valor por defecto: null

defaultvalue

Valor por defecto seleccionado

Tipo: String

Valor por defecto: null

sortname

ordenar por (nombre del campo en la BD)

Tipo: Field Database

Valor por defecto: null

sortorder

orden a direccionar el listado

Tipo: String

Valor por defecto: null

Valores aceptados: ASC | DESC

fieldKey

Permite colocar como "value" del combo un valor distinto al del ID de la tabla

Tipo: Field Database

Valor por defecto: null

filterby

Nombre del campo en la BD para realizar un filtro

Tipo: Field Database

Valor por defecto: null

filtervalue

Valor a buscar para realizar un filtro

Tipo: String

Valor por defecto: null

disableIds

Si el ID del registro, esta en el array, se desabilita. String, separado por coma

Tipo: String w/delimiter | Separar valores con ,

Valor por defecto: false

getAll

Determina si se deben traer todos los registros o solo mostrar cuando se aplica un filtro por defecto

Tipo: Boolean

Valor por defecto: false

whereAdvance

Para agregar parámetros al where en la consulta a la BD

Tipo: String

Valor por defecto: null

CODIGO EJEMPLO
rela_sysname01 IS NOT NULL
filterDefault

Este parámetro permite hacer un include de una url (php) para armar un where específico en la Query. El php debe devolver como como resultado $ wherefilterDefault

Tipo: Path file

Valor por defecto: false

CODIGO EJEMPLO
Include:
"modulos/name_module/php/filter.php"

Código (where):
"id_sysname=1 and sysname_habilitado=1"
showReloadBtn

Mostrar un botón al lado del menú desplegable para recargarlo

Tipo: Boolean

Valor por defecto: false

errormsg

Texto a mostrar cuando se produce un error

Tipo: String

Valor por defecto: Error de Conexión

procmsg

Texto a mostrar mientras se ejecuta el post

Tipo: String

Valor por defecto: Cargando ...

method

Método del envio de datos a URL

Tipo: String

Valor por defecto: POST

striped

Aplicar clases alternadas (erow) a las opciones

Tipo: Boolean

Valor por defecto: true

hideNull

Ocultar la primera opción (que posee el valor VACÍO)

Tipo: Boolean

Valor por defecto: false

hideNullOneRecord

Ocultar la primera opción si el combo posee un solo registro

Tipo: Boolean

Valor por defecto: false

selectitle

Nombre a mostrar en la primara opción (con el valor VACÍO)

Tipo: String

Valor por defecto: Seleccione

async

Permite realizar el POST a la url de manera asincrónica (al setear en false)

Tipo: Boolean

Valor por defecto: true

showColors

Para mostrar como fondo de cada opción el valor mostrado (value)

Tipo: Boolean

Valor por defecto: false

groupBoxId

ID de la tabla que agrupará los valores del flexCombo

Tipo: Field Database

Valor por defecto: false

CODIGO EJEMPLO
groupBoxId:'id_system', 
groupBoxField:'rela_system', 
groupBoxName:'system_nombre', 
groupBoxField

Nombre del campo (de la tabla maestra del flexCombo) que buscará machear con el groupBoxID

Tipo: Field Database

Valor por defecto: false

CODIGO EJEMPLO
groupBoxId:'id_system', 
groupBoxField:'rela_system', 
groupBoxName:'system_nombre', 
groupBoxName

Nombre del campo (de la tabla que agrupará los valores del flexCombo) a mostrar con label en el optgroup del flexCombo

Tipo: Field Database

Valor por defecto: false

CODIGO EJEMPLO
groupBoxId:'id_system', 
groupBoxField:'rela_system', 
groupBoxName:'system_nombre', 
advance

Permite aplicar el plugin jquery que aplica un buscador dentro del flexCombo.

Cuando se setean en true, el id del campo se concatena con el ID del subform o del form. Para recuperar el valor del campo se debe utilizar el atributo "name"

Tipo: Boolean

Valor por defecto: false

idMod

ID del módulo donde se encuentra el componente. Este valor será enviado como parámetro al php. Por defecto envía el id del TAB (modulo) activo. Puede establecer cualquier ID de módulo.

Tipo: Integer

Valor por defecto: idModActive()

urlInterfazAdd

Permite mostrar u ocultar boton AGREGAR cuando se utiliza el parámetro urlInterFaz

Tipo: Boolean

Valor por defecto: true

urlInterfazEdit

Permite mostrar u ocultar boton EDITAR cuando se utiliza el parámetro urlInterFaz

Tipo: Boolean

Valor por defecto: true

optModelSep

Separador de valores del combo

Tipo: String

Valor por defecto: -

Eventos

onSuccess

Agrega una función a ejecutar cuando se termina de cargar el componente

Tipo: String function

Valor por defecto: null

API - Funciones Accesibles

flexComboOptions

Función para actualizar opciones de un comboFlex


$("#field_name").flexComboOptions()
flexComboReload

Función para actualizar el combo, pero modificando ciertos parámetros a fin de traer nuevos registros (por ejemplo, filtrar dado un valor recibido). También se puede usar la función flexComboPopulate

$("#field_name").flexComboReload({ opts... }) 

/*Si se utiliza el parámetro advance true, se debe identificar el coponente de la siguiente forma:*/

$("select[name=field_name]").flexComboReload({ opts... })

Ejemplos

flexCombo
$('#form_{modulo}_id_sysname01').flexcombo({
	idFlex: 'id_sysname01',
	url: 'lib/flex/flexComboXml.php', 
	width:220,
	optModel:[
		{display: '', name: 'sysname01_name', width: 100 }, 
	],
	sortname:'sysname01_name', 
	sortorder:'ASC',
	showReloadBtn:false,
	advance:false,
	whereAdvance:'',
	advance:false,
	getAll: true
});

Actualizaciones

  • 4.0 Diseño: Se agregó la opción de ocultar el boton AGREGAR o EDITAR cuando se utiliza el parámetro urlInterFaz

    urlInterfazAdd:true,
    urlInterfazEdit:true,
    31-05-2018
  • 3.6 Funcionalidad: flexCombo. Se modificó el componente de manera de mostrar SIEMPRE los botones AGREGAR y EDITAR (cuando se utiliza la variable urlIntefaz).
    02-10-2015