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