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

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