Page 1 sur 1

Prompt OkCancelListMult

MessagePublié: 07 Sep 2010 à 16:38
par edcj
Bonjour,
J'ai fait un bouton depuis une vue qui permet de faire une sélection depuis un prompt que je souhaite récupérer le résultat et mettre à jour les documents sélectionnés de la vue par un agent:

Voici le code du bouton:

FIELD param := @Prompt( [OkCancelListMult] ;"Selectionner de niveaux";"Selectionner un ou deux niveaux" ;"Level2_3";"Level0_1" :"Level1_2" :"Level2_3":"Level3_4" );
@Command([ToolsRunMacro];"(Majniveau)")

Le code de l'agent:
FIELD niveau := param;
SELECT @All

Parmi les documents sélectionnés, il met toujours un seul à jour, c'est la ligne qui semble etre soulignée.

Pouvez vous m'aider svp.

Sincères salutations

MessagePublié: 07 Sep 2010 à 21:33
par Michael DELIQUE
normale

la formule est evaluer pour chaque ligne, je te conseil de passer par du LS

MessagePublié: 07 Sep 2010 à 23:02
par edcj
Salut,

Si à la place du champ param dans l'agent je met une constante, les documents sélectionnés se mettent bien à jour avec cette valeur, comment expliquer celà.

Si je ne peux pas faire comme j'ai exposé mon problème et n'étant un pro de LS, avez vous un bout de code en LS pouvant traiter mon problème svp. Un grand merci d'avance .

Cordialement

MessagePublié: 08 Sep 2010 à 07:44
par Michael DELIQUE
re

ben oui que FIELD param ne marche pas, si tu regarde ta liste des champ sur ton premier doc, tu devrais voir un champ param apparaite (sauf si tu veux vraiment le créer sur tout les docs)

et comme je te l'ai dis, la dialogbox est ne s'affiche que pour le premier et donc n'éalue que lepremier document.

un petit tuto d'initiation au Ls => http://forum.dominoarea.org/initiation- ... 12997.html

MessagePublié: 09 Sep 2010 à 16:47
par edcj
Bonjour,

Merci pour la documentation, en m'inspirant de différents exemples, je suis parvenu à écrire ce code en LS qui fonctionne, mais je souhaite rafraichir ma vue à la fin, çà ne fonctionne pas, pouvez vous svp.

Ce code permet à partir d'un prompt de sélectionner des paramètres et de modifier des champs de documents sélectionnés depuis une vue.
Salutations

Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim askme As Variant
Dim names(3) As Variant
Dim wVue As NotesView

Dim Session As NotesSession
Dim DB As NotesDatabase
Dim Doc As NotesDocument

Dim dc As NotesdocumentCollection

On Error Goto ErrorHandler

Set Session = New NotesSession
Set DB = Session.currentdatabase
Set dc = DB.unprocessedDocuments
Set vwVue = DB.GetView("Titre")

names(0) = "Level0_1"
names(1) = "Level1_2"
names(2) = "Level2_3"
names(3) = "Level3_4"
askme = ws.Prompt(PROMPT_OKCANCELLISTMULT, _
"Selection de Niveaux", _
"Selectionner un ou 2 niveaux.", _
names(2), names)
If Isempty(askme) Then
Messagebox "User canceled", , "Aucune sélection"
Else
Forall ask In askme
asklist = asklist & ask & Chr(10)
End Forall
Messagebox asklist, , "Sélection"
End If

Set doc = dc.GetFirstDocument
While Not Doc Is Nothing
Msgbox doc.universalid
Msgbox asklist
Doc.form="test"
Doc.niveau = asklist
Call Doc.Save(False,False)

Set doc = dc.GetNextDocument( doc )
Wend

If Not vwVue Is Nothing Then
' Call uiwork.ViewRefresh
Call vwVue.Refresh
'Exit Sub

End If

Exit Sub

ErrorHandler :
Msgbox "Erreur " & Err & " ligne " & Erl & " : " & Error
Exit Sub

End Sub

MessagePublié: 10 Sep 2010 à 07:55
par Michael DELIQUE
re,

essais ça

If Not vwVue Is Nothing Then
Call vwVue.Refresh
End If

Call ws.ViewRefresh


mais ilf aut que le form "test" (Doc.form="test") soit dans le select de la vue pour apparaitre

MessagePublié: 10 Sep 2010 à 14:50
par edcj
merci beaucoup, j'ai testé le call ws.viewrefresh fonctionne même sans préciser le select form = "test", encore merci pour aide précieuse

MessagePublié: 10 Sep 2010 à 15:23
par edcj
Merci, voici le code complet qui fonctionne, seléction de paramètres, mise à jour de documents sélectionnés, raffraichissement de la vue, désélection des documents. Merci de votre aide et espère être utile à d'autres. Salutations


Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim askme As Variant
Dim names(3) As Variant
Dim wVue As NotesView

Dim Session As NotesSession
Dim DB As NotesDatabase
Dim Doc As NotesDocument

Dim dc As NotesdocumentCollection

Dim uiview As NotesUIView

On Error Goto ErrorHandler

Set uiview = ws.CurrentView
Set Session = New NotesSession
Set DB = Session.currentdatabase
Set dc = DB.unprocessedDocuments
Set vwVue = DB.GetView("Titre")

names(0) = "Level0_1"
names(1) = "Level1_2"
names(2) = "Level2_3"
names(3) = "Level3_4"
askme = ws.Prompt(PROMPT_OKCANCELLISTMULT, _
"Selection de Niveaux", _
"Selectionner un ou 2 niveaux.", _
names(2), names)

If Isempty(askme) Then
Messagebox "User canceled", , "Aucune sélection"
Exit Sub
Else
Forall ask In askme
asklist = asklist & ask & Chr(10)
End Forall
'Messagebox asklist, , "Sélection"

End If

Set doc = dc.GetFirstDocument
While Not doc Is Nothing
'Msgbox doc.universalid
'Msgbox asklist
Doc.form="test"
Doc.niveau = asklist
Call Doc.Save(True,True)

Set doc = dc.GetNextDocument( doc )
Wend


'If Not vwVue Is Nothing Then
'Call ws.ViewRefresh
'Call vwVue.Refresh
'Exit Sub

'End If

Call ws.ViewRefresh
Call UIView.DeselectAll

Exit Sub

ErrorHandler :
Msgbox "Erreur " & Err & " ligne " & Erl & " : " & Error
Exit Sub

End Sub