Page 1 sur 2

Liste dans un masque pour ajouter des valeurs dedans ?

MessagePublié: 26 Mai 2011 à 10:08
par madani
Bonjour à tous ,


J'ai un soucis, je voudrais ajouter des valeurs dans mon champ de type liste.

Malheureusement le doc.replaceitemvalue("monchamp","mavaleur")
ne permet pas de changer la valeur ???

Si quelqu'un a une idée merci.

Je préfère le langage lotuscript plus simple que formule.

Le but de tous ceci est de créer un masque qui permet de gérer aisément le contrôle de la base en donnant accès à un gestionnaire du service, il pourra ajouter des personnes leur données des droits et donc de créer un document pour chaque personnes.

MessagePublié: 26 Mai 2011 à 10:44
par Michael DELIQUE
salut

version simple

Code : Tout sélectionner
doc.replaceitemvalue("monchamp",ArrayAppend(doc.getitemvalue("monchamp"),"mavaleur ou mon tableau de valeur))

MessagePublié: 26 Mai 2011 à 10:47
par madani
ok merci

MessagePublié: 26 Mai 2011 à 11:10
par madani
sa marche pas ?

sa met rien du tout :(

MessagePublié: 26 Mai 2011 à 11:22
par madani
j'ai fait ceci :

Code : Tout sélectionner
        Dim arresult
   arresult = Arrayappend(doc.getitemvalue("affRole"),"toto")
   Call doc.ReplaceItemValue(affRole,arresult )


il y a pas erreur mais il ya pas non plus ma valeur toto mis dans la liste

MessagePublié: 26 Mai 2011 à 11:39
par Michael DELIQUE
re,

ça fonction ce que je t'ai donnée (je l'utilise régulierement)

on pb viens d'ailleur

MessagePublié: 26 Mai 2011 à 12:59
par madani
Code : Tout sélectionner
Ok voici mon code
Sub Click(Source As Button)
   '//-------------------------------------------------------------------------------
'// Déclaration pour gérer le document et la base
'//---------------------------------------------------------------------------------
   Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim uidoc As NotesUIDocument
   Dim doc As NotesDocument   
   Dim user As String
'//-------------------------------------------------------------------------------
'// Initialisation du document et de la base
'//---------------------------------------------------------------------------------
   Set db = session.CurrentDatabase
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   Set db= session.CurrentDatabase
   user = session.UserName 'on récupère le nom de la personne
   Dim arresult As Variant
   arresult = Arrayappend(doc.getitemvalue("affRole"),"mavaleur")
   Call doc.ReplaceItemValue("affRole", arresult)
   Call uidoc.Refresh
End Sub


Je vois pas ou est mon erreur en sachant que "affRole" est un champ de type zone de liste

MessagePublié: 26 Mai 2011 à 13:11
par gouff
avec un doc.computewithform, plutôt qu'un uidoc.refresh?

MessagePublié: 26 Mai 2011 à 13:18
par fripouille76
moi je dirai que en faisant "ReplaceItemValue" tu modifie la valeur du back end de ton doc, et la tu travaille en front avec uidoc, un uidoc.fieldSetText serait plus approprié ? non ?

MessagePublié: 26 Mai 2011 à 13:37
par madani
nan sa marche pas

le uidoc.refresh c pour rafraichir mon masque mais merci comme même.

faut que je trouve sa doit pas être grand chose en attendant je continue mon masque au pire je rajouterai un champ et je ferai tous transiter dedans.

MessagePublié: 26 Mai 2011 à 13:54
par madani
Voici le masque en question et vous comprenez mon intéret.

Le but rendre les bases plus ou moins autonome, nommé un gestionnaire dans un service et celui-ci ce chargera de rajouter et d'attribuer.

Vous allez me dire que ceci est rondondant, oui mais ceci permet a un utilisateur non informaticien de pouvoir donné et gérer les droits accés.

Dés que j'aurai fini je mettrais sur le forum la solution, car souvent on a des bases qui sont autonome et une personne "les gères".

MessagePublié: 26 Mai 2011 à 14:01
par gouff
euh, là tu ré-invente la roue!!!

Pourquoi ne pas utiliser @Command( [FileDatabaseACL] ) pour afficher la liste de contrôle d'accès?

MessagePublié: 26 Mai 2011 à 14:06
par roubech
pour tes 2 zonnes "les roles presents dans la base" et "les roles qu'on lui affecte" si tu metes de simples champs texte multivalués, tu va pouvoir ajouter et retirer des valeurs avec un truc du gente FIELD affRole := affRole : "mavaleur" ou le code LS de Michael (arrayAppend)
mais ça ne permet pas à l'utilisateur de selectioner une de ces valeur pour la passer d'une zone à l'autre, comme j'imagine c'est ton but d'apres les boutons que je vosi entre les 2 zones
pour cela, il faut combiner un champ multivalué caché avec un champ de type liste de dialogue. Tu utilises le champ multivalué caché pour alimenter la liste de choix. Et c'est également ce champ qui contient toutes les valeurs retenues que tu va utiliser dans ton code ensuite pour le traitement

MessagePublié: 26 Mai 2011 à 14:12
par madani
Merci pour vos réponse oui Roubech c'est tout a fait sa ok toute façon c'est ce que je pensais faire merci.

gouff, je connais déjà cette manip mais merci comme même.
Elle n'est pas convivial , j'ai des utilisateurs novice en lotus.

MessagePublié: 26 Mai 2011 à 14:26
par roubech
madani a écrit:Elle n'est pas convivial , j'ai des utilisateurs novice en lotus.


désolé, mais je ne voit pas ce qu'elle a de plus convivial
si tes user sont novices, il faudrait plutôt lister les différents profils fonctionnel dispo pour chaque base du genre :
gestionnaire fonctionnel
parametrage
contributeur
valideur
valideur avec acces parametrage
...
et traduire ça de façon transparente en acces Auteur + role [Param] par exemple ...


et au passage, si c'est un novice qui utilises cet interface, je ne lui permettrai pas de donner des accès Gestionnaire et Designer