S’applique à :
- Winshuttle Foundation
Fonctions de formulaire JavaScript Winshuttle Composer
Guides de référence JavaScript
Les fonctions de formulaire sont généralement utilisées pour manipuler les champs et les éléments d’un formulaire, et exécuter des tâches telle que créer ou masquer des groupes, recharger des options de liste déroulante, définit des valeurs dans des champs, etc. Ces fonctions sont généralement créées via l’interface Winshuttle Composer.
Cliquez sur une entrée ci-dessous pour afficher une description, des paramètres et un exemple de code JavaScript de base.
$form.copyLikeRows(fromGroupXPath, selectorXPath, toGroupXPath, prefix, action) |
$form.getRepeatingContentValue (repeatingGroup,colName,filterString,unique) |
$form.addNewRow(binding)
Retour au débutAjoute une nouvelle ligne au groupe répétitif défini par le paramètre de liaison. Retourne l’index de la nouvelle ligne.
Paramètres
- binding : Liaison d’un groupe répétitif
$form.collapseGroup(name)
Retour au débutRéduire le groupe contenant le champ identifié par le paramètre de nom.
Paramètres
- name : Liaison d’un champ dans le groupe à réduire
$form.copyLikeRows(fromGroupXPath, selectorXPath, toGroupXPath, prefix, action)
La règle copie le contenu répétitif source qui se trouve dans « fromGroupXPath ». « selectorXPath » nécessite une case à cocher avec une valeur true/false. Si la valeur est true, la ligne est copiée vers le contenu répétitif de destination « toGroupXPath ».
Les champs de chaque ligne copiés dépendent de leur convention de dénomination.
Pour copier le champ, cette fonction vérifie que le nom de champ de destination est égal au « préfixe » + le nom du champ source. Si cette valeur est true, la valeur est copiée.
L’argument « action » détermine si les lignes sont ajoutées ou remplacées dans le contenu répétitif de destination « toGroupXPath ».
Paramètres
- fromGroupXPath = XPath du contenu répétitif source (par exemple, '/my:myFields/my:Plant_Info')
- selectorXPath = XPath vers un champ booléen utilisé pour indiquer si le contenu doit être copié. Si la chaîne est null ou vide, toutes les lignes seront copiées (à savoir, '/my:myFields/my:Plant_Info/my:Repeating_Content/my:Copy')
- toGroupXPath = XPath du contenu répétitif de destination (par exemple, '/my:myFields/my:Plant_Info_1')
- prefix = Préfixe des champs source et cible de correspondant/mappage (par exemple. ‘Ext_’)
- action = « append » ou « overwrite ». La valeur par défaut est « overwrite » si null ou manquant
Exemple
Exemple de schéma
myFields
- myRepeating_Table1
- Repeating_Content
- Field1 (text)
- Field2 (text)
- Checkbox1 (Booléen)
- 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
Exemple d’appel de fonction
$form.copyLikeRows(
‘/my:myFields/my:Repeating_Table1’,
‘/my:myFields/my:Repeating_Table1/my:Repeating_Content/my:Checkbox1’,
‘/my:myFields/my:Repeating_Table2’,
‘ABC_’,
‘overwrite’);
L’exécution de cet appel copie toutes les lignes du contenu répétitif source (myRepeatingTable1) vers le contenu répétitif de destination (myRepeatingTable2) où le champ source Checkbox1 a la valeur true. Pour chacune de ces lignes, les valeurs de Field1 sont copiées vers ABC_Field1, celles de Field3, vers ABC_Field3, et celles de Field4, vers ABC_Field4. Toutes les lignes sources où Checkbox1 a la valeur false, et tous les autres champs sont ignorés.
$form.disableControl(name)
Retour au débutDésactive le contrôle (élément d’entrée, libellé et sous-libellé) lié au champ défini depuis l’entrée utilisateur.
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
Exemple
$form.disableControl('/my:myFields/my:field_1');
$form.disableGroup(name)
Retour au débutDésactive tous les éléments d’entrée dans le groupe contenant l’élément d’entrée lié au champ défini. Si tous les éléments sont déjà désactivés, cette fonction n’exécute aucune opération.
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
Exemple
$form.disableGroup('/my:myFields/my:field_2');
$form.displayError(name,text)
Retour au débutAffiche le message défini sous l’élément d’entrée défini
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
- Text : Texte du message à afficher sous l’élément d’entrée
Exemple
$form.displayError('/my:myFields/my:field_1', 'This value must be greater than 0');
$form.emptyTable(repeatingGroup)
Retour au débutSupprime toutes les lignes dans le groupe répétitif défini par le paramètre repeatingGroup
Paramètres
- repeatingGroup : Liaison d’un groupe répétitif
$form.enableControl(name)
Retour au débutActive le contrôle (élément d’entrée, libellé et sous-libellé) lié au champ défini pour l’entrée utilisateur.
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
Exemple
$form.enableControl('/my:myFields/my:field_1');
$form.enableGroup(name)
Retour au débutActive tous les éléments d’entrée dans le groupe contenant l’élément d’entrée lié au champ défini. Si tous les éléments sont déjà activés, cette fonction n’exécute aucune opération.
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
Exemple
$form.enableGroup('/my:myFields/my:field_2');
$form.executeQuery(queryName)
Exécute le contrôle Requête défini par queryName.
Remarque : Doit être exécuté comme dernière instruction dans une règle, car le retour est asynchrone.
Paramètres
- queryName : Nom unique du contrôle Requête dans la solution
Exemple
$form.executeQuery('ProductDetailsQuery');
$form.executeWebService (webServiceName)
Retour au débutExécute le service Web défini par webServiceName.
Remarque : Doit être exécuté comme dernière instruction dans une règle, car le retour est asynchrone.
Paramètres
- webServiceName : Nom unique du contrôle Service Web dans la solution
Exemple
$form.executeWebService('CreateVendorInSAP');
$form.expandGroup(name)
Retour au débutDéveloppe le groupe contenant le champ identifié par le paramètre name.
Paramètres
- name : Liaison d’un champ dans le groupe à développer
$form.getExternalValue(dcName, colName, filterString)
Extrait des valeurs d’une connexion de données.
Paramètres
- dcName : Nom de la connexion de données dans la solution
- colName : Nom de la colonne/du champ à extraire de la connexion de données
- filterString : Expression Xquery pour filtrer les résultats de la connexion de données définie
Exemple
var val = $form.getExternalValue('ExtData', 'Title', '@identifier=20');
$form.setValue('/my:myFields/my_field1', val);
$form.getRepeatingContentValue(repeatingGroup,colName, filterString, unique, delimiter)
Retour au débutObtient la valeur d’un champ de colonne de contenu répétitif.
Paramètres
- repeatingGroup : Liaison d’un groupe répétitif
- colName : Nom de la colonne dans un groupe répétitif
- filterString : Filtre XPath à exécuter sur le groupe répétitif
- unique : Valeur booléenne indiquant d’obtenir ou non uniquement les valeurs uniques de la source. La valeur par défaut est True.
- delimiter : Valeur de chaîne à utiliser comme délimiteur. La valeur par défaut est une virgule.
Syntaxe :
$form.getRepeatingContentValue("/my:myFields/my:Repeating_Table_2","/my:myFields/my:Repeating_Table_2/my:field_2", "",false, "-")
$form.getValue(name)
Retour au débutExtrait la valeur en cours de l’élément d’entrée lié au champ défini.
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
Exemple
var value = $form.getValue('/my:myFields/my:field_2');
$form.hideControl(name)
Retour au débutMasque le contrôle (élément d’entrée, libellé et sous libellé) lié au champ défini.
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
Exemple
$form.hideControl('/my:myFields/my:field_2');
$form.hideGroup(name)
Retour au débutMasque l’ensemble d’un groupe (y compris l’en-tête) contenant l’élément d’entrée lié au champ défini. Si le groupe est déjà masqué, cette fonction n’exécute aucune opération.
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
Exemple
$form.hideGroup('/my:myFields/my:field_1');
$form.language
Retour au début$form.language n’est pas une fonction. Il s’agit d’une valeur de propriété. Contient le code de la langue préférée de l’instance de navigateur en cours.
Peut être utilisé comme argument dans une requête de connexion de données pour localiser les valeurs de liste déroulante dynamique (par exemple).
Les valeurs possibles se trouvent dans cette page W3schools.
Utilisation de $form.language pour traduire les listes déroulantes
Vous pouvez utiliser la variable $form.language pour filtrer les options de liste déroulante par langue.
Pour ce faire, vous devez ajouter un champ à une connexion de données externe (par exemple, à une liste SharePoint, une table SQL Server Table, etc.) qui contient le code de langue (limité à en, fr, es, it et de). En outre, la connexion de données doit avoir un champ value qui peut être répliqué pour chaque option dans chaque langue, et un champ de label qui contient le libellé traduit de chaque option déroulante.
Un exemple d’utilisation d’une liste SharePoint figure ci-dessous :
Dans le formulaire, les options déroulantes correspondant à la table ci-dessus se présentent comme suit:
$form.reloadDropDownOptions(name)
Retour au débutRecharge la liste d’options dans l’élément de liste déroulante ou de zone modifiable déroulante lié au champ défini. Cette fonction peut être utilisée pour déclencher le rechargement des options dynamiques dans une liste déroulante ou une zone modifiable déroulante depuis une source de données externe.
Paramètres
- name : Xpath du champ lié à la liste déroulante ou la zone modifiable déroulante
Exemple
$form.reloadDropDownOptions('/my:myFields/my:dynamicDropDownField');
$form.regExpExtract(pattern, text)
Retour au débutExtrait une sous-chaîne d’un texte en utilisant un groupe de capture d’expression régulière.
Paramètres
- Pattern : Expression régulière pour capturer des données
- Source : Données source pour appliquer une expression régulière
Exemples
Pour obtenir le premier groupe de chiffres contigus (comme décrit dans le tableau Fonctions dans la page du plug-in Définir une colonne) :
regExpExtract(/(\d+)/,$form.getValue('/my:myFields/my:field_x'))
Dans cet exemple, si la valeur du champ est « SomeFormName09032015AndSomething Else 00001133 », la fonction retourne 09032015.
L’exemple suivant extrait les 6 premiers chiffres :
regExpExtract(/(\d{6})/,$form.getValue('/my:myFields/my:field_x'))
Dans cet exemple, si le champ a la valeur « SomeFormName09032015AndSomething Else 00001133 », la fonction retourne 0903201
$form.removeError(xpath)
Retour au débutSupprime le message d’erreur sous l’élément d’entrée spécifié
Paramètre
- xpath : Xpath du champ lié à l’élément d’entrée
Exemple
$form.removeError('/my:myFields/my:field_1')
$form.setControlRequired(name, required)
Retour au débutModifie l’élément d’entrée lié au champ défini qui nécessite ou non une valeur.
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
- required : True ou False pour indiquer si ce contrôle nécessite une valeur
Exemple
$form.setControlRequired('/my:myFields/my:needThisField', true);
$form.setControlRequired('/my:myFields/my:dontNeedThisField', false);
$form.setDeleteRow(binding, enable)
Retour au débutActiver ou désactiver l’icône « Supprimer une ligne » pour un groupe ou une table répétitive.
Paramètres
- binding : Liaison d’un groupe répétitif
- enable : True pour activer, ou False pour désactiver
$form.setNewRow(binding, enable)
Retour au débutActiver ou désactiver le lien d’ajout de nouvel élément pour un groupe ou une table répétitive.
Paramètres
- binding : Liaison d’un groupe répétitif
- enable : True pour activer, ou False pour désactiver
$form.setStyle(name, styleName, styleValue)
Retour au débutModifie le style CSS de l’élément lié au champ défini.
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
- styleName : Nom du style CSS
- styleValue : Valeur de style CSS
Exemple
if ($form.getValue('/my:myFields/my:field_3')
$form.setStyle('/my:myFields/my:field_3', 'color', 'red');
$form.setValue(name, value)
Retour au débutModifie la valeur actuelle de l’élément d’entrée lié au champ spécifié
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
- value : Nouvelle valeur à attribuer à l’élément d’entrée
Exemples
$form.setValue(‘/my:myFields/my:field_1’,’Yes’);
(Cet exemple définit la « yes » comme valeur de champ.)
$form.getValue(‘/my:myFields/my:field_1’);
(Cet exemple obtient la valeur de Field _1)
Vous pouvez également utiliser des variables et un nom de variable. Par exemple :
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);
Cet exemple lit une valeur dans le formulaire (getValue) et l’affecte à la variable readmatno. Ensuite, il définit un autre champ avec cette valeur (setValue) et l’affecte à ReadMaterialNumber.
$form.showControl(name)
Retour au débutAffiche le contrôle (élément d’entrée, libellé et sous-libellé) lié au texte défini
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
Exemple
$form.showControl('/my:myFields/my:field_2');
$form.showGroup(name)
Retour au débutMasque l’ensemble d’un groupe (y compris l’en-tête) contenant l’élément d’entrée lié au champ défini. Si le groupe est déjà visible, cette fonction n’exécute aucune opération.
Paramètres
- name : Xpath du champ lié à l’élément d’entrée
Exemple
$form.showGroup('/my:myFields/my:field_1');