Se aplica a:
- Winshuttle Foundation
Funciones de formulario de Winshuttle Composer JavaScript
Guías de referencia de JavaScript
Las funciones de los formularios se suelen usar para manipular campos y elementos de formularios, además de para realizar tareas como crear u ocultar grupos, volver a cargar opciones de desplegables, configurar valores en campos y mucho más. Estas funciones se suelen crear desde la interfaz de Winshuttle Composer.
Haga clic en una de las entradas siguientes para ver una descripción, los parámetros y una muestra de código de JavaScript básico.
$form.copyLikeRows(fromGroupXPath, selectorXPath, toGroupXPath, prefix, action) |
$form.getRepeatingContentValue (repeatingGroup,colName,filterString,unique) |
$form.addNewRow(binding)
Volver al principioAñade una nueva fila al grupo de repetición especificado por el parámetro binding. Devuelve el índice de la nueva fila.
Parámetros
- binding: Enlace de un grupo de repetición
$form.collapseGroup(name)
Volver al principioContrae el grupo que contiene el campo identificado por el parámetro name.
Parámetros
- name: enlace de un campo del grupo que se va a contraer
$form.copyLikeRows(fromGroupXPath, selectorXPath, toGroupXPath, prefix, action)
La regla copia el contenido de repetición de origen que hay dentro de «fromGroupXPath». «selectorXPath» obliga a tener una casilla con valores verdadero/falso. Si es verdadero, la fila se copia en destino con el contenido de repetición «toGroupXPath».
Los campos de cada fila que se copian dependen de su convención de nomenclatura.
Para copiar el campo, esta función hace una comprobación para determinar si el nombre del campo de destino es igual a «prefix» + nombre del campo de origen. Si es verdadero, se copia el valor.
El argumento «action» determina si las filas se adjuntarán o se sustituirán en el contenido repetido de destino «toGroupXPath».
Parámetros
- fromGroupXPath = XPath del contenido de repetición de origen (por ejemplo, '/my:myFields/my:Plant_Info')
- selectorXPath = XPath a campo booleano que se usa para especificar si copiar o no el contenido. Si la cadena es nula o está vacía, se copiarán todas las filas (e.g. '/my:myFields/my:Plant_Info/my:Repeating_Content/my:Copy')
- toGroupXPath = XPath del contenido de repetición de destino (por ejemplo, «/my:myFields/my:Plant_Info_1»)
- prefix = prefijo del campo para asignar o combinar los campos de origen y destino (es decir, «Ext_»)
- action = el valor predeterminado de «append» u «overwrite» es «overwrite» si es nulo o falta
Ejemplo
Ejemplo de esquema
myFields
- myRepeating_Table1
- Repeating_Content
- Field1 (text)
- Field2 (text)
- Checkbox1 (Boolean)
- Field3 (text)
- Field4 (text)
- Field5 (double)
- Repeating_Content
- myRepeating_Table2
- Repeating_Content
- ABC_Field1 (text)
- Field7 (text)
- ABC_Field3 (text)
- ABC_Field4 (text)
- Field11 (double)
- Repeating_Content
Ejemplo de llamada de función
$form.copyLikeRows(
‘/my:myFields/my:Repeating_Table1’,
‘/my:myFields/my:Repeating_Table1/my:Repeating_Content/my:Checkbox1’,
‘/my:myFields/my:Repeating_Table2’,
‘ABC_’,
‘overwrite’);
Al ejecutar esta llamada se copiarán todas las filas del contenido de repetición de origen (myRepeatingTable1) en el contenido repetido de destino (myRepeatingTable2) en que el campo de origen Checkbox1 es true. Para cada una de estas filas, los valores de Field1 se copiarán en ABC_Field1, Field3 se copiará en ABC_Field3 y Field4 se copiará en ABC_Field4. Todas las filas de origen en que Checkbox1 es false y todos los demás campos se omitirán.
$form.disableControl(name)
Volver al principioDeshabilita el control (elemento de entrada, etiqueta y subetiqueta) enlazado al campo especificado para la entrada del usuario.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
Ejemplo
$form.disableControl('/my:myFields/my:field_1');
$form.disableGroup(name)
Volver al principioDeshabilita todos los elementos de entrada del grupo que contiene el elemento de entrada enlazado al campo especificado. Si todos los elementos ya están deshabilitados, esta función no hace nada.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
Ejemplo
$form.disableGroup('/my:myFields/my:field_2');
$form.displayError(name,text)
Volver al principioMuestra el mensaje especificado debajo del elemento de entrada especificado.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
- text: Texto del mensaje que se mostrará debajo del elemento de entrada
Ejemplo
$form.displayError('/my:myFields/my:field_1', 'This value must be greater than 0');
$form.emptyTable(repeatingGroup)
Volver al principioQuita todas las filas del grupo de repetición especificado por el parámetro repeatingGroup.
Parámetros
- repeatingGroup: Enlace de un grupo de repetición
$form.enableControl(name)
Volver al principioHabilita el control (elemento de entrada, etiqueta y subetiqueta) vinculado al campo especificado para la entrada del usuario.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
Ejemplo
$form.enableControl('/my:myFields/my:field_1');
$form.enableGroup(name)
Volver al principioHabilita todos los elementos de entrada del grupo que contienen el elemento de entrada enlazado al campo especificado. Si todos los elementos ya están habilitados, esta función no hace nada.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
Ejemplo
$form.enableGroup('/my:myFields/my:field_2');
$form.executeQuery(queryName)
Ejecuta el control de Query especificado por queryName.
Nota: Debe ser el control especificado como la última instrucción de la regla, ya que el retorno es asíncrono.
Parámetros
- queryName: Nombre exclusivo del control de Query de la solución
Ejemplo
$form.executeQuery('ProductDetailsQuery');
$form.executeWebService (webServiceName)
Volver al principioEjecuta el control de servicio web especificado por webServiceName.
Nota: Debe ser el control especificado como la última instrucción de la regla, ya que el retorno es asíncrono.
Parámetros
- webServiceName: Nombre exclusivo del control de servicio web de la solución
Ejemplo
$form.executeWebService('CreateVendorInSAP');
$form.expandGroup(name)
Volver al principioAmplía el grupo que contiene el campo identificado por el parámetro name.
Parámetros
- name: Enlace de un campo del grupo que se va a ampliar
$form.getExternalValue(dcName, colName, filterString)
Recupera valores de una conexión de datos.
Parámetros
- dcName: Nombre de la conexión de datos de la solución
- colName: Nombre de la columna o el campo que se va a recuperar de la conexión de datos
- filterString: Expresión Xquery para filtrar los resultados del conjunto de conexiones de datos
Ejemplo
var val = $form.getExternalValue('ExtData', 'Title', '@identifier=20');
$form.setValue('/my:myFields/my_field1', val);
$form.getRepeatingContentValue(repeatingGroup,colName, filterString, unique, delimiter)
Volver al principioObtiene el valor de un campo de la columna del contenido de repetición.
Parámetros
- repeatingGroup: Enlace de un grupo de repetición
- colName: Nombre de la columna de un grupo de repetición
- filterString: Un filtro de XPath que se va a ejecutar en el grupo de repetición
- unique: Valor booleano que especifica si se van a obtener o no solo valores exclusivos del origen. El valor predeterminado es true.
- delimiter: Valor de cadena que se va a usar como el delimitador. El valor predeterminado es una coma.
Uso:
$form.getRepeatingContentValue("/my:myFields/my:Repeating_Table_2","/my:myFields/my:Repeating_Table_2/my:field_2", "",false, "-")
$form.getValue(name)
Volver al principioRecupera el valor actual del elemento de entrada enlazado al campo especificado.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
Ejemplo
var value = $form.getValue('/my:myFields/my:field_2');
$form.hideControl(name)
Volver al principioOculta el control (elemento de entrada, etiqueta y subetiqueta) enlazado al campo especificado.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
Ejemplo
$form.hideControl('/my:myFields/my:field_2');
$form.hideGroup(name)
Volver al principioOculta un grupo entero (incluido el encabezado del grupo) que contiene el elemento de entrada enlazado al campo especificado. Si el grupo ya está oculto, esta función no hace nada.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
Ejemplo
$form.hideGroup('/my:myFields/my:field_1');
$form.language
Volver al principio$form.language no es una función, es un valor de propiedad. Contiene el código del idioma preferido de la instancia del explorador actual.
Se puede usar como un argumento para una consulta de conexión de datos con el fin de localizar los valores dinámicos de la lista desplegable (por ejemplo).
Los posibles valores se pueden encontrar en esta página de W3schools.
Usar $form.language para traducir listas desplegables
Puede usar la variable $form.language para filtrar opciones de desplegable por idioma.
Para hacerlo, debe añadir un campo a una conexión de datos externa (por ejemplo, a una lista de SharePoint, una tabla de SQL Server, etc.) que contiene el código de idioma (limitado a en, fr, es, it y de). Además, la conexión de datos debe tener un campo de valor que se pueda replicar para cada opción en cada idioma y un campo de etiqueta que contiene la etiqueta traducida de cada opción desplegable.
A continuación se muestra un ejemplo con una lista de SharePoint:
En el formulario, las opciones de desplegable correspondientes a la tabla anterior deberían tener el aspecto siguiente:
$form.reloadDropDownOptions(name)
Volver al principioVuelve a cargar la lista de opciones del elemento del desplegable o el cuadro combinado enlazado al campo especificado. Esta opción se puede usar para desencadenar una nueva carga de opciones dinámicas en una lista desplegable o un cuadro combinado de un origen de datos externo.
Parámetros
- name: Xpath del campo enlazado a la lista desplegable o el cuadro combinado
Ejemplo
$form.reloadDropDownOptions('/my:myFields/my:dynamicDropDownField');
$form.regExpExtract(pattern, text)
Volver al principioExtraer una subcadena de un determinado texto con un grupo de captura de expresión regular.
Parámetros
- Pattern: Expresión regular para capturar datos
- Source: Datos de origen que se aplicarán a la expresión regular
Ejemplos
Para obtener el primer conjunto contiguo de dígitos (como se describe en la tabla Funciones de la página del complemento Establecer columna):
regExpExtract(/(\d+)/,$form.getValue('/my:myFields/my:field_x'))
En este ejemplo, si el valor de campo era «SomeFormName09032015AndSomething Else 00001133», la función devolverá 09032015.
En el ejemplo siguiente se recuperarán los seis primeros dígitos:
regExpExtract(/(\d{6})/,$form.getValue('/my:myFields/my:field_x'))
En este ejemplo, si el valor de campo era «SomeFormName09032015AndSomething Else 00001133», la función devolverá 0903201
$form.removeError(xpath)
Volver al principioQuita el mensaje de error especificado debajo del elemento de entrada especificado.
Parámetro
- xpath: Xpath del campo enlazado al elemento de entrada
Ejemplo
$form.removeError('/my:myFields/my:field_1')
$form.setControlRequired(name, required)
Volver al principioModifica el elemento de entrada enlazado al campo especificado de modo que requiera o no un valor.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
- required: True o false para indicar si este control requiere un valor
Ejemplo
$form.setControlRequired('/my:myFields/my:needThisField', true);
$form.setControlRequired('/my:myFields/my:dontNeedThisField', false);
$form.setDeleteRow(binding, enable)
Volver al principioHabilitar o deshabilitar el icono de la fila «Eliminar» para una tabla o un grupo de repetición.
Parámetros
- binding: Enlace de un grupo de repetición
- enable: True para habilitarlo y false para deshabilitarlo
$form.setNewRow(binding, enable)
Volver al principioHabilitar o deshabilitar el vínculo «Añadir nuevo elemento» para un grupo o una tabla de repetición.
Parámetros
- binding: Enlace de un grupo de repetición
- enable: True para habilitarlo y false para deshabilitarlo
$form.setStyle(name, styleName, styleValue)
Volver al principioModifica el estilo de CSS del elemento de entrada enlazado al campo especificado.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
- styleName: Nombre del estilo de CSS
- styleValue: Valor del estilo de CSS
Ejemplo
if ($form.getValue('/my:myFields/my:field_3')
$form.setStyle('/my:myFields/my:field_3', 'color', 'red');
$form.setValue(name, value)
Volver al principioModifica el valor actual del elemento de entrada enlazado al campo especificado
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
- value: Nuevo valor que se asignará al elemento de entrada
Ejemplos
$form.setValue(‘/my:myFields/my:field_1’,’Yes’);
(Este ejemplo establece el valor del campo en «sí»)
$form.getValue(‘/my:myFields/my:field_1’);
(Este ejemplo obtendrá el valor de Campo _1)
También puede usar variables y un nombre de una variable. Por ejemplo:
var readmatno = $form.getValue('/my:myFields/my:ReadMaterial/my:ReadMaterial_Input/my:Material_Number');
$form.setValue('/my:myFields/my:BAPIAlternateUOMs/my:BAPIAlternateUOMs_Input/my:Repeating_Content/my:ReadMaterialNumber', readmatno);
Este ejemplo lee un valor desde el formulario (getValue) y lo asigna a la variable readmatno. Luego, establece otro campo para ese valor (setValue) y lo asigna a ReadMaterialNumber.
$form.showControl(name)
Volver al principioMuestra el control (elemento de entrada, etiqueta y subetiqueta) enlazado al campo especificado.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
Ejemplo
$form.showControl('/my:myFields/my:field_2');
$form.showGroup(name)
Volver al principioMuestra un grupo entero (incluido el encabezado del grupo) que contiene el elemento de entrada enlazado al campo especificado. Si el grupo ya está visible, esta función no hace nada.
Parámetros
- name: Xpath del campo enlazado al elemento de entrada
Ejemplo
$form.showGroup('/my:myFields/my:field_1');