Dans le paramétrage de votre attribut ParticipationEntiteLibelleActionValFond1, vous avez choisi de n’afficher que la valeur du champ. Ceci implique que l’input de l’attribut est masqué et donc que la valeur est valorisée autrement que par une saisie utilisateur.
Dans votre capture d’écran, la valeur “test 1234” a été renseignée dans ce champ. Ma question est donc, comment avez vous valorisé/saisi cette valeur ?
Alors j’ai essayé plusieurs solutions mais voici celle qui est testée :
L’utilisateur déclenche une action pour insérer un texte dans le champ voulu (ce texte servira de libellé pour la rubrique en dessous)
L’utilisateur saisi le nouveau texte
La méthode insère le nouveau texte
/****************************************************************************
* Modification du libellé du "Solde à nouveau 01.01.xx" *
* Exécuté depuis l'action participationAcEntiteModificationLibelle0101xx *
* Fabrice Mouttet / 30.07.2021 *
* **************************************************************************/
public String modificationLibelleSoldeNouveau0101xx(Map<String,String> params){
AppLog.info(getClass(), " modificationLibelleSoldeNouveau0101xx a été appelé ", null, getGrant());
String nouveauLibelle = params.get("ParticipationEntiteSaisieTexte"); // L'utilisateur saisi le nouveau libellé dans la rubrique prévue pour ça
//si l'utilisateur ne saisi rien, il y a un libellé par défaut
if (nouveauLibelle.equals("")) {
setFieldValue("ParticipationEntiteLibelleSoldeNouveau0101xx", "Solde à nouveau 01.01.xx");
}
//sinon c'est le nouveau libellé qui est affiché
else
setFieldValue("ParticipationEntiteLibelleSoldeNouveau0101xx",nouveauLibelle);
try {
new BusinessObjectTool(this).validateAndSave();
} catch (Exception e) {
AppLog.error(getClass(), e.getStackTrace()[0].getMethodName() , " Erreur du nouveau libellé", e, null);
}
return null;
}
A ce stade, le nouveau libellé est bien présent sur le formulaire, mais au prochain enregistrement du formulaire, le champ est vidé.
Si dans mon formulaire le champ est configuré avec un affichage “input” ça fonctionne… s’il est configuré avec un affichage “value”, il est supprimé à chaque enregistrement…
Le problème avec cette méthode c’est que le libellé est changé pour tous les enregistrements et ce serait super (je viens de tester ) si c’était le cas. Mais, le libellé doit pouvoir être différent sur chaque enregistrement.
Concrètement, l’utilisateur entre des valeurs CHF dans les champs dont le libellé de départ est : Solde au 01.01.xx, Solde au 31.12.xx
Chaque année, les valeurs sont mises à jour et le libellé devient par exemple :
Solde au 01.01.2019, Solde au 31.12.2018 pour un enregistrement
Solde au 01.01.2019, Solde au 31.12.2019 pour un autre
ou encore Solde au 01.01.2021, Solde au 31.12.2020
etc.
Je ne vois pas comment me passer d’un champ pour saisir le nouveau libellé