Mais pour verrouiller un champ sans condition spécifique, la règle métier doit être au niveau Entité, il est impossible de mettre la règle métier au niveau d’une vue ou d’une sous-grille directement…
En activant cette règle, les champs concernés sont bien verrouillés dans la sous-grille mais sur l’ensemble des formulaires également…
Après avoir activé la grille comme grille modifiable, le champ sujet est disponible à la modification :
function onrowselect(executionContext){
var entityObject = executionContext.getFormContext().data.entity;
var subject = entityObject.attributes.getByName(« name« );
subject.controls.get(0).setDisabled(true);
}
Pour ajouter un appel à cette fonction, ouvrir le formulaire Contact puis double cliquer dans la sous-grille éditable. Se rendre dans l’onglet Évènements.
Ajouter la librairie Javascript contenant la fonction ci-dessus.
Sur l’évènement OnRecordSelect, déclarer la fonction onrowselect. Sélectionner OnRecordSelect puis Ajouter.
Dans la fenêtre qui s’ouvre, ajouter le nom de la fonction et cocher la case Transmettre le contexte d’exécution comme premier paramètre.
Cliquer sur OK, sauvegarder et publier votre formulaire.
Après avoir effectué un rafraîchissement de votre page web (Vider le cache peut être nécessaire), ouvrir le formulaire contact et cliquer sur une ligne de la sous-grille Opportunité récente.
Le champ est maintenant verrouillé !
Beaucoup d’autres options concernant les sous-grilles sont disponibles, vous pouvez consulter ci-dessous :
- Supporter tous les types de champs sauf:
- Statut
- Type client
- Composite
- groupe d’activité
- Recherche
- Respecte la lecture seule pour les metadata
- Supporte les évènements Jvascript ci-dessous:
- OnRecordSelect
- OnSave
- OnChange
- Supporte les niveaux de règles métier ci-dessous:
- Montrer une message d’erreur
- Mettre une valeur par défaut
- Rendre obligatoire ou non
- Affecter une valeur
- Verrouiller ou non un champ