flexForm Tipo: Object

Componente para generar un formulario dinámico

El framework permite generar formularios de ALTA y MODIFICACIÓN de registros sin necesidad de programar los INSERT, UPDATE o DELETE a la base de datos. 


Los formularios son generados dinámicamente en tiempo de ejecución. Cada formulario contiene diferentes tipos de "campos", que incluyen funcionalidades complejas como ser: menú desplegable diníamicos, arbol de contenidos, coordenadas geográficas en google maps, subir archivos, etc.

Con flexmind se pueden generar formularios simples que insertan datos en una tabla y formularios complejos que inserten datos en una tabla de cabecera y en una o más de tablas relacionadas (formulario con uno o varios "subforms"). El framework permite incorporar una cantidad ilimitada de subforms y el proceso de insertar, actualizar o borrar se realiza atómicamente en la base de datos,  dentro de una única transacción.


Ejemplo 1 - Formulario Simple 
En el siguiente ejemplo, se visualiza un formulario para dar de alta (agregar) un proveedor


Ejemplo 2 - Formulario Complejo 
La tabla cabecera en este ejemplo es un "proveedor" y el detalle los "teléfonos" relacionados al mismo.




En todo subform hay acciones establecidas:

  • Por cada registro del subform, es posible borrar o agregar un nuevo registro abajo. Tambíen es posible agregar un botón para "ordenar" cada registro del subform.
  • A nivel general, es posible agregar un nuevo registro abajo al inicio del subform, al final o borrar todos los registros.

Ejemplo 3 - Formulario con Varios Subforms

Un ejemplo con multiples subforms es un formulario de PAGOS, donde existen dos subforms son: Facturas e Instrumentos de Pagos.
La tabla cabecera registra el pago, incluyendo información básica como: fecha de pago, comprobante, etc. Cada subform representan registros de una tabla que se encuentra relacionada a la tabla cabecera.


  • El primer subform son las facturas que se están por pagar. Cada elemento de este subform hace referencia a la factura y el importe a pagar.
  • El segundo subform son los instrumentos de pagos, es decir, como se paga las facturas. Cada elemento del subform es un instrumento de pago, por ejemplo, un conjunto de facturas podría pagarse la mitad al contado, un porcentaje con cheque y el resto por transferencia bancaria.

Este tipo de estructura permite almacenar atómicamente en la base de datos todos estos registros, insertando la cabecera y después lo relacionado en una misma transacción.


Tipos de Campos, separadores y tabs
El flexmind cuenta con un conjunto de tipo de campos ya definidos. El programador sólo tiene que decir el tipo de campo y el framework se encarga del resto, por ejemplo, si el programador quiere un campo tipo mapa, solo tiene que definir el parámetro type en "map" (type:map). Con esto el framework crea un componente como el siguiente:


Como se puede ver en el ejemplo, el componente incluye muchas funcionalidades, por ejemplo: abrir o cerrar el mapa, buscar por dirección, marcar manualmente un punto. Los tipos de campos disponibles pueden visualizarse en la documentación del framework.


El flexmind® permite al programador poner separadores entre campos, lo cuales pueden incluir un label (para separar la información del formulario). Programar con este componente ayuda a que el programador respete un estandar de diseño del formulario, evitando cambios em la interfaz visual para el usuario final. Esta premisa es válida para cada componente del flexmind.





Parámetros

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()

classForm

grid / classic / inline

Tipo: String

Valor por defecto: classic

title

Titulo del formulario

Tipo: String

Valor por defecto: null

classFields

Tamaño de los campos (o cualquier otra clase css que se desea agregar)

Tipo: String

Valor por defecto: sm

urlInterfaz

Path del archivo a ejecutar

Tipo: Path file

Valor por defecto: 'path/to/file'

urlAction

Parámetro a enviar a la urlInterfaz (se envía como action)

Tipo: String

Valor por defecto: null

Valores aceptados: add | update

urlValidator

path del archivo donde se realizan validaciones especiales

Tipo: Path file

Valor por defecto: ''

CODIGO EJEMPLO
{"request"}->{"fields"}; 
$ids=utf8_decode(urldecode($fields[0]->{"value"}));
$idsArray=explode("-","$ids");

foreach ($idsArray as $id_sysname01)
{
	// validar cada registro a eliminar
}

if ($error!="")
{
	$resultid="error";
	$resulttext=utf8_encode("No se puede eliminar ");
	$resultdebug="No se puede eliminar ";
	
	$xml = "";
	$xml .= "";
	$xml .= "$resultid";
	$xml .= "$resulttext";
	
	$xml .= "$resultdebug";
	$xml .= "";
	echo $xml;
	flex_query("ROLLBACK;",$link_msq);
	agregar_control("ABM",$action,$xml,$json_request,$link_msq);		
	exit;		
}
?>
{"request"}->{"fields"}; // array de subforms (puede haber varios)

// $fields >> array de campos recibidos por post
//recuperar valores de los campos de la cabecera
foreach ($fields as $row => $field)
{
	$field=$fields[$row]->{"field"};
	$value=utf8_decode(urldecode($fields[$row]->{"value"}));
	$fieldsForm[$field]=$value;
}
$id_sysname01=$fieldsForm["id_sysname01"];

// ejemplo >> validar que se reciba al menos un registro del subform
if ($error)
{
	$resultid="error";
	$resulttext=utf8_encode("Texto a mostrar");
	$resultdebug=utf8_encode("Texto debug");

	$xml = "";
	$xml .= "";
		$xml .= "$resultid";
		$xml .= "$resulttext";
		$xml .= "$resultdebug";
	$xml .= "";
	echo $xml;
	$result =flex_query("ROLLBACK",$link_msq);
	agregar_control("ABM",$action,$xml,$json_request,$link_msq);		
	exit;
}

?>
{"request"}->{"fields"}; 

$id_sysname01=utf8_decode(urldecode($fields[0]->{"value"}));
$sysname_fieldToUpdate=utf8_decode(urldecode($fields[1]->{"value"}));

if($error)
{
	$resultid="error";
	$resulttext=utf8_encode("No se puede Modificar");
	$resultdebug="No se puede Modificar";
	
	$xml = "";
	$xml .= "";
	$xml .= "$resultid";
	$xml .= "$resulttext";
	$xml .= "$resultdebug";
	$xml .= "";
	echo $xml;
	mysql_query("ROLLBACK;",$link_msq);
	agregar_control("ABM",$action,$xml,$json_request,$link_msq);		
	exit;		
}
?>
logAction

nombre de la operación a guardar en el log de control

Tipo: String

Valor por defecto: null

method

Método del envio de datos a URL

Tipo: String

Valor por defecto: POST

Valores aceptados: POST

resultText

Texto a mostrar cuando el submit se realiza correctamente.

Tipo: String

Valor por defecto: null

saveContinue

Permite que al ejecutar el submit del formulario, se limpie el formulario en vez de cerrar la ventana.

Se dio de baja esta opción desde la versión 3.7. Para hacer esto utilizar los buttons con el onpress en "saveContinue" (ver documentación de buttons)

Deshabilitado!

Tipo: Boolean

Valor por defecto: false

onSubmitExecute

path de un archivo php para ejecutar (mediante include) una acción al finalizar el submit.

El ID del registro insertado puede recuperarse de la variable key_value.

En el caso de error hay que devolver el error en formato XML, hacer un ROLLBACK, agregar LOG al control y hacer un EXIT.

En el caso de éxito no hay que devolver nada.

Tipo: Path file

Valor por defecto: ''

CODIGO EJEMPLO
>>
$result_insert =flex_query($sql,$link_msq);
if (!$result_insert>0) 
{
	$resultid="error";
	$resulttext="Hubo un error al modificar el registro. Consulte al administrador.";
	$resultdebug="Se ha producido un error al ejecutar $sql - ".flex_error();

	$xml = "";
	$xml .= "";
	$xml .= "$resultid";
	$xml .= "$resulttext";
	$xml .= "$resultdebug";
	$xml .= "";
	echo $xml;
	$result =flex_query("ROLLBACK",$link_msq);
	agregar_control("ABM",$action,$xml,$json_request,$link_msq);			
	exit;			
}	
?>
showToggleBtn

Mostrar boton para ocultar/mostrar el formulario

Tipo: Boolean

Valor por defecto: false

height

Alto del formulario

Tipo: Integer

Valor por defecto: auto

width

Ancho del formulario

Tipo: Integer

Valor por defecto: auto

checkUnsave

Permite verificar que el formulario (cualquier campo del mismo) ha cambiado, y preguntar (promp) antes de cerrar la ventana o de recargar el sitio, si esta seguro que desea cerrar el formulario.

Tipo: Boolean

Valor por defecto: false

checkUnsaveSubmit

Habilitar GUARDAR el formulario solo cuando se modificó algún campo.

Tipo: Boolean

Valor por defecto: false

tabsWizard

Permite tomar los tabs como un wizard, validando cada TAB con el submit del form. Al llegar al último tab se habilita el boton guardado
Deshabilitado en versións 5

Deshabilitado!

Tipo: Boolean

Valor por defecto: false

tabsActiveOnly

Permite "ocultar" los tab inactivos, de modo que solo se vea el tab activo

Deshabilitado!

Tipo: Boolean

Valor por defecto: false

autocompleteOff

Para evitar el autocomplete del navegador (cache)

Tipo: Boolean

Valor por defecto: false

buttonsOptions

Opciones para los botones del formulario. Solo para versiónes >5

Tipo: Object

Valor por defecto: []

CODIGO EJEMPLO
buttonsOptions:{
			baseClass: 'btn ',
			tabClass:'btn  btn-primary ',
			subformClass:'btn btn-sm btn-default mr-5',
			position:'right',
		}
Subparámetros de buttonsOptions

baseClass

Clase por defecto inicial de los botones. Si el tipo de formulario es REPORT, se agrega la clase btn-outline

Tipo: String

Valor por defecto: btn btn-sm mr-5


tabClass

Clase de los botones de los TABS

Tipo: String

Valor por defecto: btn btn-sm btn-defaul


subformClass

Clase por defecto de los subforms

Tipo: String

Valor por defecto: btn btn-sm btn-default mr-5


position

Posición de la botonera inferior

Tipo: String

Valor por defecto: left

Valores aceptados: left | right

buttons

Botones a mostrar abajo del formulario

Tipo: Object

Valor por defecto: null

CODIGO EJEMPLO
Subparámetros de buttons

name

Nombre a mostrar en el botón

Tipo: String

Valor por defecto: null


bclass

Clase (CSS) del botón. Versión 3.2: Esta clase puede ser cualquiera de las clases de los iconos css (ver documentación)

Tipo: String

Valor por defecto: null

Valores aceptados: delete | clean | save | addSubform | print | report


type

Tipo de botón

Tipo: String

Valor por defecto: null

Valores aceptados: reset | submit | button


onpress

Para ejecutar acciones predefinidas.

Tipo: String Conditional

Valor por defecto: false Atención! Aplicable cuando: type es igual a button

Valores aceptados: close | reset | saveContinue | anyfunction | reportWindow | reportIframe | reportSelf | removeForm | reportAddSelf | reportAddIframe | saveReload | saveKeep | reportFlexBox


separator

Convierte el boton en un separador

Tipo: Boolean

Valor por defecto: null

CODIGO EJEMPLO
{separator: true},

idSubForm

Cuando se utiliza addsubform (que permite agregar un conjunto de campos de un subformlario) permite especificar a cual de los subformularios se agregará el conjunto de campos. Si no se declara se agrega al primer subform.

Tipo: String Conditional

Valor por defecto: null 89


url

Utilizado cuando el componente flexForm se aplica para realizar filtros en un módulo de reporte. Path del archivo. En este caso no debe utilizarse el parámetro urlInterfaz. Tambien se utiliza para cuando el onpress en saveReload. En este caso en este parámetro se coloca el path del .php a cargar en el contenedor del formulario (por lo general una ventana flexbox)

Tipo: Path file

Valor por defecto: false Atención! Aplicable cuando: type es igual a button


ask

Realizar un "prompt" para confirmar la acción (en los formularios tipo reportes)

Tipo: String

Valor por defecto: false


requestPin

Soliciar PIN del usuario para confirmar la acción (en los formularios tipo reportes)

Tipo: Boolean

Valor por defecto: false


tab

Si el botón esta dentro de un tab, solo envia los parametros de dicho tab (solo para formReport) A partir de la versión 5

Tipo: String

Valor por defecto: false

tabs

Permite crear tabs para dividir en el formulario

Tipo: Array Object

Valor por defecto: false

Subparámetros de tabs

display

Nombre visualizado en el tab

Tipo: String

Valor por defecto: null


id

ID del tab

Tipo: String

Valor por defecto: null


onClick

Función javascript a ejecutar al hacer clic en la pestaña, ANTES de ACTIVAR la pestaña

Tipo: String function

Valor por defecto: false

reloadCallback

Para recargar componentes y/o elementos del DOM mediante ajax

Tipo: Array Object

Valor por defecto: null

Subparámetros de reloadCallback

id

ID del componente o del elemento DOM a recargar

Tipo: String

Valor por defecto: null


url

Path del archivo a cargar en el ID del DOM seleccionado. Si si ingresa un valor, este prevalece sobre la opción de recargar un componente FLEX (salvo para el flexBox)

Tipo: Path file

Valor por defecto: 'path/to/file'


fflex

Componente flex a recargar. Tambien se puede intrudicir cualquier función javascript

Tipo: String

Valor por defecto: null

Valores aceptados: tree | combo | grid | box | removeForm | calendar | gridAll | openwindow


method

método de envío de datos (cuando se utiliza el parámetro URL)

Tipo: String

Valor por defecto: POST

Valores aceptados: POST


vars

Parámetros adicionales a enviar (cuando se utiliza el parámetro URL)

Tipo: String

Valor por defecto: null

CODIGO EJEMPLO
id=$id&idTree=$idTree

op

Determina como se recarga el componente flexTree

Tipo: String Conditional

Valor por defecto: null Atención! Aplicable cuando: fflex es igual a tree

Valores aceptados: reload | addNode | refreshNode | deleteNode

fields

Contiene todos los campos a colocar dentro del formulario. El primer campo debe ser el ID de la tabla maestra

Tipo: Array Object

Valor por defecto: null

Permite ser enlazado

Subparámetros de fields

label

Texto a mostrar al lado del campo

Tipo: String

Valor por defecto: null


invertLabel

Esta opción permiteinvertir el orden en que se muestran los labels y los campos del formulario (primero el campo, luego el label).

Tipo: Boolean

Valor por defecto: false


hideLabel

Permite ocultar el label del campo

Tipo: Boolean

Valor por defecto: false


field

Campo de la BD

Tipo: Field Database

Valor por defecto: null


type

Tipo de campo

Tipo: String

Valor por defecto: null

Valores aceptados: int | float | varchar | map | pass | text | html | check | date | datetime | time | option | tree | enum | autocomplete | colorpicker | singleupload | multipleupload | imagecrop | autoGridComplete | protected | knob | htmlSimple | slide | htmlFroala | mapOL | labeled


defaultvalue

Valor por defecto asignado

Tipo: String

Valor por defecto: null


placeholder

Permite agregar un texto (en un color más claro) dentro del campo de texto. Útil para mostrar sugerencias de como completarlo

Tipo: String

Valor por defecto: null


appendToPrev

Permite colocar el campo al lado del campo inmediato anterior

Tipo: Boolean

Valor por defecto: false


hide

Permite ocultar el campo

Tipo: Boolean

Valor por defecto: null


readonly

Permite asignar el atributo readonly al campo

Tipo: Boolean

Valor por defecto: null


disabled

Permite asignar el atributo disabled al campo

Tipo: Boolean

Valor por defecto: null


enableOnDuplicate

Permite quitar los atributos disabled y readonly cuando se agregar subforms manualmente (addSubforms)

Tipo: Boolean

Valor por defecto: false


removeDisabled

Solo aplicable al campo ID de un subform. Permite ocultar el boton BORRAR de un determinado registro del subform

Tipo: Boolean

Valor por defecto: false


autocompleteOff

Para evitar el autocomplete del navegador (cache)

Tipo: Boolean

Valor por defecto: false


nosubmit

Permite que el campo no sea enviado al urlInterfaz (no se lo incluye en el submit)

Tipo: Boolean

Valor por defecto: false


noprocess

Si es true la variable se envia pero no forma parte de la query.

Tipo: Boolean

Valor por defecto: false


addbutton

Permite agregar un botón al lado del campo para ejecutar funciones específicas.

Tipo: Array Object

Valor por defecto: false

Subparámetros de addbutton

title

Título a mostrar

Tipo: String

Valor por defecto: null


onclick

Función JS a ejecutar. Puede ser una fución string (se ejectua con un eval) o el nombre de una función js ya declarada (se envia this como parametro)

Tipo: String function

Valor por defecto: null


icon

Nombre del ícono a mostrar (ver documentación)

Tipo: String

Valor por defecto: null


align

Determinar si el boton se coloca a la derecha o a la izquierda del campo.

Tipo: String

Valor por defecto: left

Valores aceptados: left | right


label

Permite poner un label al lado del botón

Tipo: String

Valor por defecto: false


paramsType

Parámetros del campo

Tipo: Object

Valor por defecto: []

Subparámetros de paramsType

onlyOne

Permite definir un grupo de checkbox de los cuales solo uno podrá esta tildado a la vez.

Tipo: String

Valor por defecto: null


width

Ancho del campo

Tipo: Integer

Valor por defecto: null


dateStart

fecha inicial seleccionada al abrir el calendario

Tipo: String

Valor por defecto: false Atención! Aplicable cuando: type es igual a date

CODIGO EJEMPLO
Para poner "Mañana"
dateMin:'+1D', 

dateMin

fecha desde la cual se puede seleccionar

Tipo: String

Valor por defecto: false Atención! Aplicable cuando: type es igual a date

CODIGO EJEMPLO
Para poner "Una semana atras"
dateMin:'-1W', 

dateMax

fecha hasta la cual se puede seleccionar

Tipo: String

Valor por defecto: null Atención! Aplicable cuando: type es igual a date

CODIGO EJEMPLO
Para poner "Hasta dentro de una semana"
dateMax:'+1W', 

formatDisplay

Formato de la fecha a mostrar

Tipo: String

Valor por defecto: dd-mm-yy Atención! Aplicable cuando: type es igual a date


formatSend

Formato de la fecha a enviar

Tipo: String

Valor por defecto: dd-mm-yy Atención! Aplicable cuando: type es igual a date


setMin

En este parámetro se setea el nombre del campo que, al seleccionar la fecha, se aplica el dateMin. Utilizado cuando se aplican "fechas desde y hasta"

Tipo: String

Valor por defecto: false Atención! Aplicable cuando: type es igual a date

CODIGO EJEMPLO
// campo > fecha desde

 {
    label: 'label_field', 
    hide:false, 
    readonly:false, 
    disabled:false, 
    onchange:false, 
    defaultvalue:'$sysname_field', 
    field: 'sysname_field', 
    type:'date', 
    paramsType:
    {
      width: 70, 
      setMin:'sysname_field', // campo >> fecha hasta
      formatDisplay:'dd-mm-yy',
      formatSend:false,
      validate:
      {
        required:false,
        custom:null
      }
    }
  },

setMax

En este parámetro se setea el nombre del campo que, al seleccionar la fecha, se aplica el dateMax. Utilizado cuando se aplican "fechas desde y hasta"

Tipo: String

Valor por defecto: false Atención! Aplicable cuando: type es igual a date

CODIGO EJEMPLO
// campo > fecha hasta

 {
    label: 'label_field', 
    hide:false, 
    readonly:false, 
    disabled:false, 
    onchange:false, 
    defaultvalue:'$sysname_field', 
    field: 'sysname_field', 
    type:'date', 
    paramsType:
    {
      width: 70, 
      setMax:'sysname_field', // campo >> fecha dsde
      formatDisplay:'dd-mm-yy',
      formatSend:false,
      validate:
      {
        required:false,
        custom:null
      }
    }
  },

stepHour

Candidad de Horas incremental

Tipo: Integer

Valor por defecto: 1 Atención! Aplicable cuando: type es igual a time


stepMinute

Cantidad de Minutos incremental

Tipo: Integer

Valor por defecto: 10 Atención! Aplicable cuando: type es igual a time


stepSecond

Cantidad de segundos incremental

Tipo: Integer

Valor por defecto: 10 Atención! Aplicable cuando: type es igual a time


noCheck

Permite NO mostrar el indicador de fuerza de contraseñas

Tipo: Boolean

Valor por defecto: false Atención! Aplicable cuando: type es igual a pass


showlabel

Muestra el label "Abrir/cerrar mapa" en el boton

Tipo: Boolean

Valor por defecto: true Atención! Aplicable cuando: type es igual a map


mode

Formato de las coordenadas a almancenar (punto, polígono o polilínea)

Tipo: String

Valor por defecto: point Atención! Aplicable cuando: type es igual a map

Valores aceptados: polygon | point | polyline


mask

Permite poner una mascara determinada. La mpascara solo se aplicará a campos tipo varchar, integer o float.

Tipo: String

Valor por defecto: false

Valores aceptados: phone | phone-ba | cuit | dni | date | time | cc | integer | decimal | decimal-1 | decimal-2 | decimal-3 | decimal-4 | plandecuentas | integer-1 | integer-2


limiter

Permite mostrar un contador de los caracteres escritos y cuantos les quedan por escribir de acuerdo al lengthmax establecido. Solo para campos tipo varchar y text

Tipo: Boolean

Valor por defecto: false


height

Alto del campo (solo campos text o html)

Tipo: Integer

Valor por defecto: null


maxHeight

Permite limitar el "alto maximo" que puede "crecer" el textarea (autoGrow:true)

Tipo: Integer

Valor por defecto: null Atención! Aplicable cuando: type es igual a text


autoGrow

Permite que el textarea "crezca" a medida que se escriben más lineas de texto

Tipo: Boolean

Valor por defecto: false Atención! Aplicable cuando: type es igual a text


validate

Validaciones

Tipo: Object

Valor por defecto: []

Subparámetros de validate

required

Obliga a no dejar el campo vacío

Tipo: Boolean

Valor por defecto: false


unique

Valida que no exista otro registro en la BD con el mismo valor

Tipo: Boolean

Valor por defecto: false


uniqueGroup

Permite realizar validaciones de un conjunto de campos, para que sean únicos. Por ejemplo, no repetir personas con MISMO DNI Y SEXO

Tipo: String

Valor por defecto: false


lengthmin

Cantidad mínima de caracteres que debe contener

Tipo: Integer

Valor por defecto: null


lengthmax

Cantidad máxima de caracteres que debe contener

Tipo: Integer

Valor por defecto: null


custom

Validaciones específicas

Tipo: String

Valor por defecto: null Atención! Aplicable cuando: type es igual a varchar

Valores aceptados: mail | web | youtubeId | cuit | strongPlus | strong


AutoCompleteOps

Tipo: Object

Valor por defecto: [] Atención! Aplicable cuando: type es igual a autocomplete

Subparámetros de AutoCompleteOps

url

Archivo que devuelve el array de valores macheados

Tipo: Path file

Valor por defecto: 'path/to/file'


defaultLabel

Texto a mostrar en el campo de texto

Tipo: String

Valor por defecto: null


getValue

Si se setea en true, el autocomplete espera recibir en el array un value. Se crea un campo de texto oculto que recibe ese id y el campo mostrado es solo descriptivo (label).

Tipo: Boolean

Valor por defecto: null


multiple

Permite concatenar valores. En caso de setear en true, este campo no será enviado con el submit. Este campo se utilizará para generar subforms. Los valores posibles a rellenar se obtienen del atributo field y del fillValueTo. Por lo tanto se deben setear en el subform dos campos con los mismos valores en el atributo field

Tipo: Boolean

Valor por defecto: false


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 la variable fflex=autocomplete

Tipo: Path file

Valor por defecto: false


extraVars

permite recuperar los valores de otros campos en el formulario en enviarlos al php utilizado en el autocomplete

Tipo: String w/delimiter | Separar valores con <@>

Valor por defecto: null

CODIGO EJEMPLO
//en el form:

extraVars:'syspres01_resumen<@>syspres01_titulo',

//en el php:

$ extraVars = $ _GET["extraVars"];
$ fields=split("<@>",$ extraVars);
$ where=" where 1=1 ";
for($ i=0;$ i<count($ fields)-1;$ i++)
{
	$ where.=" AND ".$ fields[$ i];
}

minLength

El número mínimo de caracteres que un usuario tiene que escribir antes de que se active el Autocompletar. Si es false, o se no se setea, el valor es UNO

Tipo: Integer

Valor por defecto: 3


delay

El retardo en milisegundos entre que se produce el keypress y cuando se realiza la búsqueda.

Tipo: Integer

Valor por defecto: 500


usePager

Desde la versión 3.5, permite paginar los resultados del autocomplete

Tipo: Boolean

Valor por defecto: false

Valores aceptados: true | false


display

Cuando se utiliza el autocomplete paginado, permite cambiar la visualización por defecto a una vista de tabla

Tipo: String

Valor por defecto: default Atención! Aplicable cuando: usePager es igual a true

Valores aceptados: default | table


align

Cuando se utiliza el autocomplete paginado, en vista de tabla, permite alinear las celdas

Tipo: String

Valor por defecto: left


colModel

Versiones mayores a 3.7 >>>>>> OBJECT: Campos de la base de datos a mostrar Todas las Versiones >>>>>> STRING: 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) Cuando se utilza lib/flex/flexAutocomplete.php

Tipo: Object

Valor por defecto: []

Subparámetros de colModel

name

Nombre (de la tabla) del campo a mostrar

Tipo: Field Database

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: left


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


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

Tipo: String

Valor por defecto: null


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


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


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: null

CODIGO EJEMPLO
function getFieldInfo(field)
{
	if($ (field).prev().val()!="")
	{
		var attr_name=$ (field).prev().data("attr_name");
	}
	else
	{
		var attr_name="";
	}
	$ (field).parent().parent().find("#attr_name").val(attr_name);
}

sortname

Campo por el cual se ordenan los registros. Cuando se utilza lib/flex/flexAutocomplete.php

Tipo: Field Database

Valor por defecto: null


sortorder

Orden (asc o desc). Cuando se utilza lib/flex/flexAutocomplete.php

Tipo: String

Valor por defecto: null


searchIn

Campos donde se realizará la busqueda. Cuando se utilza lib/flex/flexAutocomplete.php

Tipo: Field Database w/delimiter | Separar valores con <@>

Valor por defecto: null


rp

Cuando se paginan los resultados, cantidad de registros a mostrar por página.

Tipo: Integer

Valor por defecto: 10


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: String

Valor por defecto: false

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

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

urlInterfazAdd

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

Tipo: Boolean

Valor por defecto: false


urlInterfazEdit

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

Tipo: Boolean

Valor por defecto: false


autoGridCompleteOps

Tipo: Object

Valor por defecto: [] Atención! Aplicable cuando: type es igual a autoGridComplete

CODIGO EJEMPLO
{
		label: 'label_field', 
		hide:false, 
		readonly:false, 
		disabled:false, 
		onchange:false, 
		deafultvalue:'$sysname_field', 
		field: 'sysname_field',  
		appendToPrev:false,
		type:'autoGridComplete',
		paramsType:
		{
			width: 250,
			autoGridCompleteOps:
			{
				defaultLabel:'$sysname01_display',
				rowGetLabel:'sysname01_display',
			},
			flexGrid:
			{
				title: 'Registros',
				idFlex: 'id_sysname01',
				url: 'lib/flex/flexGridXml.php',
				sortname: 'sysname01_sort',
				sortorder: 'asc',
				width:200,
				colModel : [
					{display: 'Titulo', name: 'sysname01_display', width: 100, sortable: true, align: 'left', sumpage: false, sumtotal: false, agregator: ''}, 
				],
				searchItems : [
					{display: 'Titulo', name: 'sysname01_display', isdefault: true},

				],
			},
			validate:
			{
				required:false,
				custom:null
			}
		}
	},
Subparámetros de autoGridCompleteOps

rowGetLabel

Campo (columna) de donde se obtiene el label (texto) a colocar en el campo de texto del formulario

Tipo: Field Database

Valor por defecto: null


defaultLabel

Texto a mostrar en el campo de texto

Tipo: String

Valor por defecto: null


enumOptions

Opciones del enum

Tipo: Array Object

Valor por defecto: [] Atención! Aplicable cuando: type es igual a enum

Subparámetros de enumOptions

value

Valor de la opción (valor que se envía en el submit del form)

Tipo: String

Valor por defecto: null


display

Texto a mostrar

Tipo: String

Valor por defecto: null


isdefault

Determina el valor seleccionado por defecto

Tipo: Boolean

Valor por defecto: false


slideOps

Opciones del slide

Tipo: Object

Valor por defecto: [] Atención! Aplicable cuando: type es igual a slide

CODIGO EJEMPLO
slideOps:{
				min: 1000,
				max: 10000,
				step: 500,
				width: 250, 
			}
Subparámetros de slideOps

min

Valor minimo

Tipo: Integer

Valor por defecto: null


max

Valor máximo

Tipo: Integer

Valor por defecto: null


width

Ancho del slide

Tipo: Integer

Valor por defecto: null


step

Determina el tamaño o la cantidad de cada intervalo o paso del slide entre el mínimo y máximo

Tipo: Integer

Valor por defecto: null


setMaxTo

Permite armar un RANGO de valores ENTEROS

Tipo: Field Database

Valor por defecto: false


knobOps

Opciones

Tipo: Array Object

Valor por defecto: [] Atención! Aplicable cuando: type es igual a knob

CODIGO EJEMPLO
knobOps:
			{
				min:0,
				max:12,
				step:1,
				angleOffset:0,
				angleArc:360,		
				thickness:'0.35',
				width:60,
				height:60,
				displayInput:true,
				displayPrevious:true,
				fgColor:'#D14836',
				inputColor:'#D14836',
				bgColor:'#CCC',	
			},
Subparámetros de knobOps

min

Valor mínimo posible

Tipo: Integer

Valor por defecto: null


max

Valor máximo posible

Tipo: Integer

Valor por defecto: 100


step

Tamaño del "paso". Cantidad en la se se puede modificar el valor. Por ej: de 10 en 10, de 100 en 100, etc.

Tipo: Integer

Valor por defecto: 1


angleOffset

Ángulo inicial en grados

Tipo: Float

Valor por defecto: null


angleArc

Tamaño del círculo en grados.

Tipo: Integer

Valor por defecto: 360


thickness

Grosor indicador. Permite valores del 0.1 al 1

Tipo: Float

Valor por defecto: 0.35


width

Alto del circulo

Tipo: Integer

Valor por defecto: 100


displayInput

Mostrar el campo de texto (en el medio del circulo) para escribir el valor manualmente

Tipo: Boolean

Valor por defecto: true


displayPrevious

Muestra el valor anterior seleccionado con transparencia.

Tipo: Boolean

Valor por defecto: false


fgcolor

Color del indicador.

Tipo: String

Valor por defecto: #3079ED


inputColor

Color del "valor" numérico.

Tipo: String

Valor por defecto: #3079ED


bgColor

Color del fondo del indicador.

Tipo: String

Valor por defecto: #FFFFFF


editorHtml

Cuando type es html (es sus diferentes versiones)

Tipo: Object

Valor por defecto: [] Atención! Aplicable cuando: toolbar es igual a basic

Subparámetros de editorHtml

toolbar

Permite seleccionar el tipo de barra de herramienas del componente

Tipo: String

Valor por defecto: basic Atención! Aplicable cuando: type es igual a html

Valores aceptados: basic | full


insertImage

muestra el botón para insertar (upload) una imagen al campo de texto html

Tipo: Boolean

Valor por defecto: false Atención! Aplicable cuando: type es igual a html


insertFile

muestra el botón para insertar (upload) un acrhivo (como enlace) al campo de texto html

Tipo: Boolean

Valor por defecto: false Atención! Aplicable cuando: type es igual a html


insertVideo

muestra el botón para insertar un video (codigo embed) al campo de texto html

Tipo: Boolean

Valor por defecto: false Atención! Aplicable cuando: type es igual a html


insertTable

muestra el botón para insertar una tabla (filas, columnas, etc) al campo de texto html

Tipo: Boolean

Valor por defecto: false Atención! Aplicable cuando: type es igual a html


crop

Para asociarlo a un campo type:imagecrop

Tipo: Object

Valor por defecto: [] Atención! Aplicable cuando: extensions es igual a images

Subparámetros de crop

fieldToCrop

Nombre del campo a asociar para realizar un crop de la imagen cargada

Tipo: Field Database

Valor por defecto: null Atención! Aplicable cuando: extensions es igual a images


thumbWidth

Ancho de la imagen a recortar

Tipo: Integer

Valor por defecto: null Atención! Aplicable cuando: extensions es igual a images


thumbHeight

Alto de la imagen a recortar

Tipo: Integer

Valor por defecto: null Atención! Aplicable cuando: extensions es igual a images


flexGrid

Puente al parámetro: flexGrid

Tipo: flexBridge

Valor por defecto: null Atención! Aplicable cuando: type es igual a autoGridComplete


flexOps

Parámetros del componente Puente al parámetro: flexCombo

Tipo: flexBridge

Valor por defecto: null Atención! Aplicable cuando: type es igual a option


flexOps

Puente al parámetro: flexTree

Tipo: flexBridge

Valor por defecto: null Atención! Aplicable cuando: type es igual a tree


multiple

SI se setea en true, permite múltiples selecciones

Tipo: Boolean

Valor por defecto: false Atención! Aplicable cuando: type es igual a option


size

Si se setea multiple:true, determina la cantidad de opciones visibles a la vez

Tipo: Integer

Valor por defecto: 2 Atención! Aplicable cuando: type es igual a option


urlUploader

Path del archivo que realiza el upload

Tipo: Path file

Valor por defecto: lib/flex/flexUpload.php Atención! Aplicable cuando: type es igual a singleupload


getField

Nombre del campo (del formulario) para recuperar el valor del mismo e introducirlo en el nombre del archivo subido (ejemplo: nombre de un cliente, CUIT de una persona, etc).

Tipo: Field Database

Valor por defecto: false Atención! Aplicable cuando: type es igual a singleupload


keepName

Permite MANTENER el nombre el original del archivo subido (siempre y cuando ya no exista uno con el mismo nombre en el directorio final).

Tipo: Boolean

Valor por defecto: false Atención! Aplicable cuando: type es igual a singleupload


nameFile

Nombre del archivo (para renombrar el archivo original)

Tipo: String

Valor por defecto: null Atención! Aplicable cuando: type es igual a singleupload


pathTmp

Path de la carpeta temporal

Tipo: Path folder

Valor por defecto: tmp/ Atención! Aplicable cuando: type es igual a singleupload


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' Atención! Aplicable cuando: type es igual a singleupload


extensions

Extensiones de archivos permitidas

Tipo: String

Valor por defecto: null Atención! Aplicable cuando: type es igual a singleupload

Valores aceptados: doc | images | pdf | false, null, o por defecto | video | music


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. Este atributo puede ser usado tanto para campos tipo singleupload como para campos tipo crop.

Tipo: String w/delimiter | Separar valores con <@>

Valor por defecto: null Atención! Aplicable cuando: type es igual a singleupload


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 Atención! Aplicable cuando: extensions es igual a images


saveOriginal

Guarda el archivo original (cuando se realizan copias del mismo)

Tipo: Boolean

Valor por defecto: null Atención! Aplicable cuando: extensions es igual a images


wmImage

path imagen de la marca de agua a aplicar. Si se realizan resizes de las imagens, se pueden colocar distintas marcas de agua por cada tamaño. Los nombres de los archivos de marca de agua deben terminar en -h y -v (para las proporciones horizontales y verticales). En el FORM se colocan las -h por defecto. Si se desea se puede colocar marcas de agua a determinados tamaños de los resizes, para ello se debe dejar vacío el lugar correspondiente.

Tipo: String w/delimiter | Separar valores con <@>

Valor por defecto: null Atención! Aplicable cuando: extensions es igual a images

CODIGO EJEMPLO
resizes: '100<@>300<@>600', 
wmImage:'<@>wm_1-h.png<@>wm_2-h.png',

wmOpacity

Transparencia de la marca de agua

Tipo: Integer

Valor por defecto: 50 Atención! Aplicable cuando: extensions es igual a images


wmPosition

Posición de la marca de agua

Tipo: String

Valor por defecto: center Atención! Aplicable cuando: extensions es igual a images

Valores aceptados: topLeft | topCenter | topRight | bottomLeft | bottomCenter | bottomRight | center


minWidth

Ancho mímimo a verificar

Tipo: Integer

Valor por defecto: null Atención! Aplicable cuando: extensions es igual a images


minHeight

Alto mímimo a verificar

Tipo: Integer

Valor por defecto: null Atención! Aplicable cuando: extensions es igual a images


validateSize

Tipo de validación a realizar (advertencia o arrojar error)

Tipo: String

Valor por defecto: null Atención! Aplicable cuando: extensions es igual a images

Valores aceptados: error | warning


from

Nombre del campo type:singleupload a vincular para realizar el crop

Tipo: Field Database

Valor por defecto: null Atención! Aplicable cuando: type es igual a imagecrop


formatNow

Permite para forzar que el campo en la base de datos sea almacenado con la fecha y/o hora en que se realiza el submit del formulario.

Tipo: Boolean

Valor por defecto: false


onSelect

Función a ejecutar onSelect del componente date, datetime o autocomplete

Tipo: String function

Valor por defecto: null


advance

Para los campos tipo ENUM, permite aplicar el plugin chosen

Tipo: Boolean

Valor por defecto: false


mobil

A partir de versión 5.0 Permite definir parámetros del field SOLO cuando se visualiza en monitores menores a 480px

Tipo: Array Object

Valor por defecto: null

Subparámetros de mobil

cssLabel

Permiti modifica cualquier regla css del LABEL del campo en un formulario

Tipo: Object

Valor por defecto: []


css

Permite setear uno o más propiedades CSS al field.

Tipo: Object

Valor por defecto: []


help

Permite asignar un tooltip al campo con el texto (por lo general sugerencias) ingresado

Tipo: String

Valor por defecto: null


suggest

Agrega un botón que abre el contenido del path en un tooltip.

Tipo: Path file

Valor por defecto: 'path/to/file'


suggestPos

Permite modificar la posición del tooltip.

Tipo: String

Valor por defecto: nw

Valores aceptados: nw | n | ne | w | e | sw | s | se


onchange

Permite asignar el atributo onchange al campo. Si el campo es varchar, int, float o pass, se agrega la funcion onkeypress: si presiona el enter se ejecuta la misma función establecida para el onchange

Tipo: String function

Valor por defecto: null


onclick

Permite asignar el atributo onclick al campo.

Tipo: String function

Valor por defecto: null


onfocus

Permite asignar el atributo onfocus al campo.

Tipo: String function

Valor por defecto: null


onblur

Permite asignar el atributo onblur al campo. Si no se asigna esta parámetro, y el campo es del tipo text o varchar, se aplica una función especial para eliminar caracteres extraños de los archivos .doc

Tipo: String function

Valor por defecto: null


onKeyPressEnterNext

Permite que al presionar la tecla enter se haga focus en el campo de texto, menú o textarea siguiente. Se setea en true

Tipo: Boolean

Valor por defecto: false


onkeypress

Permite asignar el atributo onkeypress al campo.

Tipo: function js

Valor por defecto: false


onpresskeycode

Codigo (key) a verificar para ejecutar una función en el onkeypress. En el ejemplo, pueden visualizar como ejecutar una función el presionar la tecla ENTER:

Tipo: Integer

Valor por defecto: null

CODIGO EJEMPLO
onpresskeycode:13,
onkeypress:'myFunction()',

arrowFindSiblings

Permite hacer focus en el campo (cuando tenemos un subform) con el mismo ID, con las flechas del teclado, abajo y derecha al siguiente campo, arriba e izquierda: al campo anterior

Tipo: Boolean

Valor por defecto: null


noclean

evita que el campo se borre al limpiar el formulario

Tipo: Boolean

Valor por defecto: false


tab

id del tab donde se colocará el campo (seteado en el parámetro TABS)

Tipo: String

Valor por defecto: false


persistDefaultValue

en subforms, permite copiar el valor seteado inicialmente en el campo cuando se clonan subformularios (con la función addsubform)

Tipo: Boolean

Valor por defecto: false


copyFromLast

en subforms, permite copiar el valor del campo del último subform agregado, cuando se clonan subformularios (con la función addsubform)

Tipo: Boolean

Valor por defecto: false


separator

Si es true, crea un DIV con un borde para insertar un separador en el formulario. Si se setea en true acepta los valores: label, css y class

Tipo: Boolean

Valor por defecto: false

Valores aceptados: true | false


css

Permite setear uno o más propiedades CSS al field. Para mas información ver: http://api.jquery.com/css/

Tipo: Object

Valor por defecto: false

CODIGO EJEMPLO
css:{
	fontSize:'12px',
	color:'#FFF',
	background:'#C53727',
},

colSize

Tamaño de los campos, para formularios con classForm: grid Utliza las reglas css de bootrap para grids

Tipo: String

Valor por defecto: false


class

Agrega una clase css predefinida

Tipo: String

Valor por defecto: false

Valores aceptados: red | blue | green | grey


cssSubform

Solo aplicable al campo ID de un subform. Permite agregar reglas CSS al div contenedor de un subform (por cada registro)

Tipo: Object

Valor por defecto: []


classSubform

Solo aplicable al campo ID de un subform. Permite agregar una clase (css) al div contenedor de un subform (por cada registro)

Tipo: String

Valor por defecto: null


cssLabel

Permiti modifica cualquier regla css del LABEL del campo en un formulario https://api.jquery.com/css/

Tipo: Object

Valor por defecto: false

CODIGO EJEMPLO
cssLabel:{
	fontSize:'12px',
	color:'#FFF',
	background:'#C53727',
},

group

Agrupar campos para ocultar/mostrar/requerir

Tipo: Object

Valor por defecto: null

CODIGO EJEMPLO
group:{
				hide:'soporte',
				required:'soporte',
			},
Subparámetros de group

hide

nombre del grupo para ocultar/mostrar

Tipo: String

Valor por defecto: null


required

nombre del grupo para requerir/no requerir

Tipo: String

Valor por defecto: false


labelsAsPlasceholders

Permite ocultar todos los labels y utilizarlos como placeholderd También se puede setear a nivel subForm

Tipo: Boolean

Valor por defecto: false

subFormFlex

Crea múltiples subformularios, los cuales permiten agregar modificar o eliminar registros asociados a la tabla maestra del flexForm

Tipo: Array Object

Valor por defecto: []

Subparámetros de subFormFlex

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

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

labelsAsPlaceholders

Convierte los labels en placeholders

Tipo: Boolean

Valor por defecto: null

tabsOptions

Opciones del tab

Tipo: Object

Valor por defecto: []

Subparámetros de tabsOptions

wizard

Tipo: Boolean

Valor por defecto: false


showActiveOnly

Tipo: Boolean

Valor por defecto: false


position

Tipo: String

Valor por defecto: top


prevLabel

Tipo: String

Valor por defecto: false


nextLabel

Tipo: String

Valor por defecto: false

Eventos

onShow

función javasript que se ejecuta cuanto de termina de cargar el formulario

Tipo: String function

Valor por defecto: false

API - Funciones Accesibles

addSubForm

Permite agregar todo un subform completo (con encabezados, botones, pies, "N" registros y "N" campos


$("#form_{form_abm}").addSubForm(subform)
addSubFormFields

Función para agregar un conjunto de campos ("N" registros) de un subformulario ya generado en el formulario principal o de cabecera. El parámetro subform debe ser un array de "fields"

/* Ejemplo de la función, recuperano un subform desde un php (el php deberá devolver un xml con las etiquetas result > subform */

var subFormFlex=eval("subFormFlex:[ {idSubForm:'id_subform', subforms: ["+$("result subform",response).text()+"]}]")
var subform=subFormFlex[0]
$("#form_{form_abm}").addSubFormFields(subform)
flexformOptions

Función para actualizar opciones de un formulario

$("#form_{form_abm}").flexformOptions({ opts... })

Ejemplos

ver_form.html
<script type="text/javascript">
$(document).ready(function(){
	$("#form_{form_abm}").flexform({
			urlInterfaz: 'lib/flex/flexFormSubmit.php',
			title: '{title}',
			urlAction: '{action}',
			disabled:{disabled},
			urlValidator: '{urlValidator}',
			onSubmitExecute: '{onSubmitExecute}',
			reloadCallback: [
				{reloadCallback}
				],
			fields: [
				{fields}
			],
			buttons: [
				{name: 'Cancelar', bclass: 'delete', type:"button", onpress: 'close'},
				{separator: true},
				{name: 'Guardar', bclass: 'save', type:"submit", onpress: false},
			]
	});   
});   
</script>	
<form id="form_{form_abm}" name="form_{form_abm}" class="formular" method="post" action=""></form>
ver_form.php
set_file(array(
	"ver"			=> "ver_form.html",
));

$id = $_POST['id']; // id del registro a modificar
$id_refresh = $_POST['id_refresh']; // id a actualizar en el submit

/* -- VARIABLES GENERALES -- */
$title_s="title_sing_module";
$modulo="folder_module";
$form_abm="ver_folder_module_abm"; 
$urlValidator="";
$onSubmitExecute="";

$reloadCallback="
	{id: '$id_refresh',url:false, fflex:'grid', method:'post',vars:''},
";
//$_SESSION["sysname_adjunto"]["file"]=""; //  BORRAR SESSION DE ARCHIVOS
/* ------------------------ */
	
$disabled="false";

if ($id!="")
{
	if ($_SESSION['sesion_acceso']["modificacion"]!=1)	
		$disabled="true";

	$qr="Select * from sys_name_01_table
	where id_sysname01=$id";
	$result = flex_query($qr,$link_msq);
	$num_rows = flex_num_rows($result);
    if ($num_rows>0)
     {
		$row = flex_fetch_assoc($result);

		
	}	
	$title="Modificar $title_s"; 
	$action="update"; 
}
else
{
	$title="Agregar $title_s"; 
	$action="add"; 
}

$fields="
	{
		label: 'id', 
		deafultvalue:'$id_sysname01',
		field: 'id_sysname01', 
		type:'int', 
		hide:true, 
		readonly:true, 
		disabled:false, 
		onchange:false, 
		paramsType:
		{
			width: 40, 
			validate:
			{
				required: false,
				custom:null
			}					
		}
	},
";

$t->set_var("disabled",$disabled);
$t->set_var("tabs",$tabs);
$t->set_var("id_refresh",$id_refresh);	
$t->set_var("title_add_subform",$title_add_subform);	
$t->set_var("reloadCallback",$reloadCallback);	
$t->set_var("form_abm",$form_abm);	
$t->set_var("action",$action);	
$t->set_var("title",$title);			
$t->set_var("fields",$fields);
$t->set_var("urlValidator",$urlValidator);	
$t->set_var("onSubmitExecute",$onSubmitExecute);	
$t->set_var("subFormFlex",$subFormFlex);	
$t->pparse("OUT", "ver");
?>

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 Diseño: FormReport con tabs. Cuando el boton es reportSelf y esta en un TAB, el reporte se pone DENTRO del tab donde esta el boton
    10-05-2022
  • 4.8 Funcionalidad: Se agrega la opción en el headerSubform de ordenar los subform al hacer clic
    07-04-2022
  • 4.8 Bug - subFormFlex: Se soluciona el problema al mostrar errores en subform cuando un mismo campo se usa en multiples subform.
    04-01-2021
  • 4.8 Bug: Se soluciona un problema que existia al agregar subform con imagenes con mas de dos registros de subform.
    03-09-2020
  • 4.5 Bug: Se modifica el comportamiento del ONCHAGE del autoGridComplete
    Cuando el campo era VACIO y REQUERIDO, no se ejectuba la función onchange
    29-08-2019
  • 4.4 Funcionalidad: Se agrega el parametro onAddFocus, que permite que se haga FOCO en el primer campo habilitado del subform, cuando se agrega manualmente (al hacer clic en agregar)
    05-08-2019
  • 4.4 Funcionalidad: Se agrega el parámetro autocompleteOff para evitar el autocomplete del navegador (cache)
    04-06-2019
  • 4.0 Funcionalidad: Se agregó la opcion requestPin y Ask a los botones de los formularios tipo REPORTES.
    15-01-2018
  • 3.9 Funcionalidad: Se agrega el parametro hideLabal que Permite ocultar el label del campo
    06-10-2017
  • 3.9 Bug: Se corrigió un error que se producía al intentar marcar los CAMPOS con errores de un subform. No motraba correctamente al buscar por ID. Se cambio para que buscue por * NAME [ ]
    23-08-2017
  • 3.9 Funcionalidad - subFormFlex: 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
  • 3.8 Bug: Se corrigió un problema que ocurría cuando se agregaba un registro (a travez del parámetro urlInterfaz) en los autocomplete paginados. Al agregar un registro, el nombre y ID agregados se "colocaban" en el formulario origen, pero al hacer focus y blur sobre el campo, los mismos se borraban
    23-11-2016
  • 3.6 Funcionalidad: Se agregó una opción en los uploads de archivos (solo para documentos o imagenes sin resizes) para MANTENER el nombre el original del archivo subido (siempre y cuando ya no exista uno con el mismo nombre en el directorio final).
    keepName:true
    08-03-2016
  • 3.6 Funcionalidad: Se agregó una etiqueta en el xml devuelto por el flexForm: resultstatus. Esto permite cambiar el COLOR del mensaje de respuesta de un abm (cuando queremos alertar al usuario con algun mensaje, aun cuando el registro se guardo correctamente)

    Esta variable puede ser seteada SOLO en el onSubmitExecute.php

    $ resultstatus="warning";
    $ resulttext="AVISO";
    10-02-2016
  • 3.5 Funcionalidad - type: flexForm. Se agregó un tipo de campo: "slide". Permite generar un slide jquery para campos tipo integer. Permite seleccionar el valor del campo, seteando un valor mínimo y máximo (incluso un step)
    02-07-2015
  • 3.3 Funcionalidad: flexForm. En los campos INT y FLOAT, se habilitaron los eventos
    shift+tab
    shift+inicio
    shift+fin
    control+c
    control+v
    control+x

    Adicionalmente se agregó la validación para detectar valores NO numericos en en estos campos (ocasionados por pegar texto en vez de numero)
    20-11-2014