subFormFlex Tipo: Array Object
Ubicación: flexForm > subFormFlex
Crea múltiples subformularios, los cuales permiten agregar modificar o eliminar registros asociados a la tabla maestra del flexForm Valor por defecto: |
Parámetros
idSubForm
Id de la tabla relacionada a la tabla maestra
Tipo: Id Database
Valor por defecto: null
tab
id del tab donde se colocará el subformulario (seteado en el parámetro TABS)
Tipo: String
Valor por defecto: false
hideDelete
Oculta el botón para eliminar cada subformulario
Deshabilitado!
Tipo: Boolean
Valor por defecto: false
fieldRela
Indica cual el es campo que posee la relación a la tabla cabecera. Si no se setea, por defecta se obtiene del campo ID de la tabla cabecera (reemplazando "id_" por "rela_")
Tipo: Field Database
Valor por defecto: false
noprocess
Permite evitar que se procese el subform (no se realizan validaciones, insert, update ni delete). Sirve para usar validaciones o procesos posteriores al submit
Tipo: Boolean
Valor por defecto: false
hide
Oculta todo el SubForm. Si el parámetro allowToggleSubForm es true, se ocultan los botones y los registros dentro del subform, pero se muestra el encabezado y boton "Mostrar"
Tipo: Boolean
Valor por defecto: false
allowToggleSubForm
Permite agregar el boton para ocultar y mostrar un subForm.
Si el subform posee headerSubForm, se coloca en el header, si no se coloca en el mismo contentedor de los botones "Agregar" y "Borrar Todos"
Tipo: Boolean
Valor por defecto: false
height
Tipo: Integer
Valor por defecto: false
hideEmptyForm
Permite que si el primer subform esta vacío (cuando la accion del form es add, por ejemplo) no se muestre el subform. Solo se agrega con el boton "ADD"
Tipo: String
Valor por defecto: false
onAddFocus
Permite que se haga FOCO en el primer campo habilitado del subform, cuando se agrega manualmente (al hacer clic en agregar)
Tipo: Boolean
Valor por defecto: false
onAdd
funcion js que se ejecuta cuando se agrega un subform
Tipo: function js
Valor por defecto: false
onDelete
funcion js que se ejecuta cuando se borra un subform
Tipo: function js
Valor por defecto: false
onDuplicate
funcion js que se ejecuta cuando se agrega un subform manualmente (al hacer clic en agregar)
Tipo: String function
Valor por defecto: false
onMov
funcion js que se ejecuta cuando se mueve un subform.
Para que funcione este evento tiene que estar la variable sortable en true
Tipo: function js
Valor por defecto: false
allowRemove
Determina si se muestra o no el botón para borrar cada subformulario. Reemplaza la opcion hideDelete.
Tipo: Boolean
Valor por defecto: false
allowRemoveAll
Determina si se muestra o no el botón para borrar todos subformularios. Se ubica al final de cada subform
Tipo: Boolean
Valor por defecto: false
allowAdd
Determina si se muestra o no el botón para agregar un subformulario. Se ubica al final de cada subform
Tipo: Boolean
Valor por defecto: false
askRemove
Texto a mostrar para realizar un confirm antes de aliminar cada subform
Tipo: String
Valor por defecto: false
askRemoveAll
Texto a mostrar para realizar un confirm antes de aliminar todos los subforms
Tipo: String
Valor por defecto: false
sortableField
Permite que cuando se setea el parámetro "sortable:true", al ordenar un subform se actualice el valor del campo en forma correlativa.
Tipo: Field Database
Valor por defecto: false
sortable
Permite ordenar (mover) cada uno de los subform.
Tipo: Boolean
Valor por defecto: false
hideTopButtons
Permite OCULTAR los BOTONES SUPERIORES de cada subform (botones de AGREGAR y/o BORRAR TODO)
Tipo: Boolean
Valor por defecto: false
hideBottomButtons
Permite OCULTAR los BOTONES INFERIORES de cada subform (botones de AGREGAR y/o BORRAR TODO)
Tipo: Boolean
Valor por defecto: false
checkMin
Permite validar que al momento de BORRAR un registro del subform, exitan al menos una determinada cantidad de registros (para que no borren todos, por ejemplo.
Tipo: Integer
Valor por defecto: null
CODIGO EJEMPLO
checkMin: 1
multipleUploader
Permite generar crear un multipleUploader a través de un subform. En este caso el subformulario inicialmente no se encuentra visible. Una vez que se realiza la carga de archivo(s) se muestra cada uno de los subformularios (uno por cada archivo cargado)
Tipo: Object
Valor por defecto: []
Subparámetros de multipleUploader
labelfieldurlUploadernameFilepathTmppathDestinyextensionsresizesuseResizesNameswmImagewmOpacitywmPositionsaveOriginalvalidateSizeminWidthminHeight
label
Texto a mostrar al lado del botón para hacer el upload
Tipo: String
Valor por defecto:
null
field
Nombre del campo en la BD de la imagen a cargar. Este campo debe ser incluido en el subformulario obligatoriamente
Tipo: Field Database
Valor por defecto:
null
urlUploader
Path del archivo que realiza el upload
Tipo: Path file
Valor por defecto:
lib/flex/flexMultiUpload.php
nameFile
Nombre del archivo (para renombrar el archivo original)
Tipo: String
Valor por defecto:
null
pathTmp
Path de la carpeta temporal
Tipo: Path folder
Valor por defecto:
tmp/
pathDestiny
Nombre de la carpeta donde se guardará el archivo. La carpeta debe estar dentro de media/uploads, caso contrario el flexUpload creará la carpeta
Tipo: Path folder
Valor por defecto:
'path/to/folder'
extensions
Extensiones de archivos permitidas. Por ahora solo Imagenes
Tipo: String
Valor por defecto:
null
Valores aceptados: images
resizes
Tamaños a los que deberán realizarse las copias del archivo. Si el campo es vacío no se realizarán copias del archivo original
Tipo: String w/delimiter | Separar valores con
<@>
Valor por defecto:
null
useResizesNames
Permite que al momento de renombrar los archivos (los resizes) ponga el tamaño de resize en vez del -0.jpg
Tipo: Boolean
Valor por defecto:
false
wmImage
path imagen de la marca de agua a aplicar
Tipo: Path file
Valor por defecto:
'path/to/file'
wmOpacity
Transparencia de la marca de agua
Tipo: Integer
Valor por defecto:
null
wmPosition
Posición de la marca de agua
Tipo: String
Valor por defecto:
center
Valores aceptados: bottomCenter | bottomLeft | bottomRight | center | topCenter | topLeft | topRight
saveOriginal
Guarda el archivo original (cuando se realizan copias del mismo)
Tipo: Boolean
Valor por defecto:
false
validateSize
Tipo de validación a realizar (advertencia o arrojar error)
Tipo: String
Valor por defecto:
null
Valores aceptados: error | warning
minWidth
Ancho mímimo a verificar
Tipo: Integer
Valor por defecto:
null
minHeight
Alto mímimo a verificar
Tipo: Integer
Valor por defecto:
null
subforms
Contenedor de cada subformulario a colocar
Tipo: Array Object
Valor por defecto: []
Subparámetros de subforms
fields
Puente al parámetro: fields
Tipo: flexBridge
Valor por defecto:
null
headerSubForm
Permite colocar un encabezado a los subformularios. Permite agregar tantos divs como se deseen, especificando el ancho y la alineación deseada. Utilizado cuando el formulario se muestra en forma horizontal (un campo al lado del otro).
Tipo: Array Object
Valor por defecto: false
CODIGO EJEMPLO
headerSubForm:[
{display: 'Item ', width: '28%', align: 'left'},
{display: 'Producto', width: 100, align: 'left'},
{display: 'Titulo', width: 230, align: 'left'},
{display: 'Detalle', width: 274, align: 'left'},
{display: 'Precio', width: 40, align: 'right'},
],
Subparámetros de headerSubForm
display
Texto a mostrar
Tipo: String
Valor por defecto:
null
width
Puede ser integer (pixeles) o porcentajes. El tamaño del primer div puede conicidir con el tamaño del primer label, colocando 28% como ancho del mismo.
Tipo: String
Valor por defecto:
null
align
Alienación del texto
Tipo: String
Valor por defecto:
null
Valores aceptados: left | right | center
sortable
Permite ordenar los subforms
Tipo: Boolean
Valor por defecto:
false
sortby
Nombre del campo a considerar para ordernar los subforms
Tipo: String
Valor por defecto:
null
footerSubForm
Permite armar un pie de formulario. Permite agregar tantos divs como se deseen, especificando el ancho y la alineación deseada. Permite agregar etiquetas html.
Se puede utilizar para, por ejemplo, agregar una función en el onchage de un campo y mostrar la suma de los campos de cada subformulario.
Tipo: Array Object
Valor por defecto: []
CODIGO EJEMPLO
footerSubForm:[
{display: 'Total ', width: '100%', align: 'right'},
],
function sumSubforms(){
var total=0;
$ ("#form_{form_abm} #syspres02_precio").each(function(){
if($ (this).val())
total=total+parseFloat($ (this).val());
});
$ ("#form_{form_abm} #total_presupuesto").text("$ "+total);
}
Subparámetros de footerSubForm
display
Texto a mostrar
Tipo: String
Valor por defecto:
null
width
Puede ser integer (pixeles) o porcentajes. El tamaño del primer div puede conicidir con el tamaño del primer label, colocando 28% como ancho del mismo.
Tipo: String
Valor por defecto:
null
align
Alienación del texto
Tipo: String
Valor por defecto:
null
Valores aceptados: left | right | center
buttons
Configuración de botones del subform
Tipo: Object
Valor por defecto: []
CODIGO EJEMPLO
buttons:{
top:true,
bottom:true,
toggle:{
enabled:false,
labelVisible:'Ocultar',
labelHidden:'Mostrar',
},
removeAll:{
enabled:true,
label:'Quitar todos',
},
removeOne:{
enabled:true,
label:'Quitar',
},
addAfter:{
enabled:true,
label:'Agregar abajo',
},
add:{
enabled:true,
label:'Agregar',
},
},
labelsAsPlaceholders
Convierte los labels en placeholders
Tipo: Boolean
Valor por defecto: null
Actualizaciones
- 5.0.0 Bug - checkMin: Checkmin de subforms no andaba bien al EDITAR
var recordsInSubForm=ts.parents(".SubFormWrapInner").eq(0).find(".divForm:visible").length;
19-05-2022 - 4.8 Bug: Se soluciona el problema al mostrar errores en subform cuando un mismo campo se usa en multiples subform.
04-01-2021 - 3.9 Funcionalidad: Se agregaron dos parámatros para OCULTAR los BOTONES SUPERIORES y/o INFERIORES de cada subform (botones de AGREGAR y/o BORRAR TODO)
hideTopButtons y hideBottomButtons
31-07-2017