Question

Je ne suis pas un programmeur Notes, cependant, pour mes péchés, ont travaillé sur certaines fonctions Notes pour un projet en interne récemment. Je dois activer / désactiver l'édition d'un champ en fonction des circonstances. Il me semble être une caractéristique assez standard, j'ai besoin, mais je ne peux trouver aucune information sur la façon de le faire partout.

Dans le code configuration de forme (et d'autres le onchange de champ), quelque chose comme ce qui suit:

if some requirement = true then
    textField.enable = true
else
    textField.enable = false
end if

Je l'ai vu d'autres endroits où il y a une solution de contournement de cacher conditionnellement paragraphes sur la base du code, ayant 2 paragraphes avec des conditions de masquage opposées, l'une avec un champ modifiable, l'autre avec un champ calculé. Cependant, je ne sais pas assez sur les notes pour voir comment est mis en œuvre ce (je peux le voir fait sur d'autres formes, mais il semble y avoir quelques étapes « magiques » au notes que je ne peux pas non plus voir ou ne soient pas ).

[EDIT] La réponse de Kerr semble être ce que je cherche, mais je ne peux toujours pas savoir où se trouve la propriété InputEnabled. Aurait dit dans la question initiale, j'utilise Remarques 7.0.3.

En toute justice, il n'a pas d'importance ce que les circonstances sont quand pour activer / désactiver le champ, il est juste une condition booléenne qui est définie, dans mon cas que sur la forme de chargement, donc je n'ai même pas à vous soucier cette modification dynamique alors que la forme est affichée.

J'ai quelques problèmes avec notes, mon plus grand croquemitaine étant qu'il est tellement lié si étroitement à l'interface utilisateur de Designer, qui est totale shite. Je peux faire ce genre de chose dans la plupart des langues par programmation de l'interface graphique (C #, Java, Delphi, même VB), mais je dois ouvrir des boîtes de propriété dans les notes et les placer correctement.

Ce serait OK comme option méthode, mais forcer vous aller dans cette voie signifie que vous ne pouvez travailler ainsi que l'IDE vous permet dans ce cas, et l'IDE semble ici pour travailler activement contre vous. Vous ne pouvez pas ouvrir plusieurs fonctions / scripts, vous ne pouvez pas échanger d'un script à une autre sans revenir aux menus sur la gauche, vous ne pouvez pas rechercher facilement le code de base pour les occurrences de variables / champs (et croyez-moi, ce est un défaut majeur pour moi parce que soit notes ou la base de code interne dans mon cas semble faire beaucoup d'utilisation de variables globales!), vous ne pouvez travailler avec des champs à travers les boîtes de propriétés qui s'affichent, vous ne pouvez pas modifier le code dans designer lors du débogage par le principal client notes.

Alors que le côté Java du codage est mieux que LotusScript, il est encore assez merdique (pourquoi ne pouvez pas vous déboguer en code Java ?? Pourquoi avez-vous besoin de ré-importer des fichiers JAR pour chaque classe Java, fait chaque classe ont un autre CLASSPATH ???). Peut-être cela a été amélioré dans les notes 8, je l'entends est basé sur Eclipse. Est-ce que quelqu'un sait si cela est vrai ou non?

Était-ce utile?

La solution

Il serait utile d'entendre plus de détails sur les « circonstances », mais la façon la plus courante de traiter est d'utiliser une peau quand la formule sur le terrain que vous souhaitez activer / désactiver.

Techniquement, vous n'êtes pas activez ou désactivez le champ, juste le cacher, mais en général qui fonctionne tout aussi bien.

Comme il y a peu d'événements pour travailler avec dans les notes, les développeurs utilisent couramment le document refresh comme « événement » pour que le champ pour masquer ou afficher.

Supposons que vous avez deux champs appelés TriggerField et le sujet. Dites aussi vous souhaitez désactiver le sujet sur la base d'une valeur dans le TriggerField. La meilleure façon de le faire est de définir la TriggerField comme un type de dialogue Liste et cochez l'option « champs Actualiser sur le changement mot-clé ». Cela signifie que lorsque la valeur de la liste de dialogue change, le document entier est remise à.

Ensuite, dans votre peau quand la formule pour le champ Objet, vous indiquez vos critères pour le moment de montrer ou masquer ce champ. les valeurs de champ Anytime changent, suivi d'un rafraîchissement du document (par exemple sous forme), qui cache lorsque la formule sera réévaluée.

Il existe d'autres façons, en fonction de votre situation, pour résoudre ce problème. Si vous voulez laisser l'utilisateur rafraîchir la forme eux-mêmes, mettre un bouton sur le formulaire qui appelle la commande @Command ([ViewRefreshFields]). Vous pouvez ajouter d'autres formules à ce bouton avant que la commande de rafraîchissement si vous voulez effectuer d'autres modifications à la forme en même temps.

Une autre option est de faire un certain domaine en lecture seule. Ensuite, créez un bouton qui exécute LotusScript pour permettre aux utilisateurs de modifier ce champ d'affichage uniquement. Dans le script, vous pouvez propmt l'utilisateur pour une valeur, définissez le champ d'affichage uniquement, puis demander une actualisation du document.

Autres conseils

Dans ND7 et si vous voulez simplement désactiver le champ pour l'entrée, écrire une formule appropriée dans la section InputEnabled du champ que vous souhaitez désactiver.

J'ai deux champs un appelé Trigger, une case à cocher avec la valeur « On » et un autre sujet qui est un champ de texte. Lorsque Trigger est cochée, je veux le sujet de la valeur à activer.

Je mets simplement la formule suivante dans l'élément activé d'entrée du champ Objet:

Trigger = "On"

Je veux aussi que cela soit recalculé chaque fois que la valeur de déclenchement change si je sélectionne l'option « champs Actualiser sur le changement de mot-clé » sur le champ de déclenchement.

Si vous êtes coincé dans une version plus ancienne, vous devez cacher les paragraphes de manière appropriée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top