DialogBox

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

DialogBox

Messagepar steph1708 » 29 Sep 2009 à 15:27

Bonjour,

J'avais 2 petites questions et je vous remercie par avance pour vos réponses.

Y a t'il un équivalent du @DialogBox mais dans une vue. En clair, j'aimerais ouvrir une dialgbox mais à partir d'une vue et non d'un masque ?

Peut on activer un click sur un bouton. Un peu comme @Command AgenRun pour activer un agent, mais pour un bouton.

J'espère que j'ai été claire et vous remercie encore.
steph1708
Posteur néophyte
Posteur néophyte
 
Message(s) : 73
Inscrit(e) le : 11 Mai 2009 à 14:02
Localisation : Paris

Messagepar Michael DELIQUE » 29 Sep 2009 à 15:29

salut

en LS

notesUIWorkspace.PickListCollection ou notesUIWorkspace.PickListStrings

avec l'équivalent @PickList
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar steph1708 » 29 Sep 2009 à 15:59

J'ai du mal m'exprimer alors je vais essayer d'être plus clair.

J'ai créée une vue agenda et dans le postdragdrop, j'ai mis une formule avec @DialogBox, mais évidement, ça ne marche pas, puisque @DialogBox ne marche pas dans les formules de vue, donc je voulais savoir si il y a un equivalent.

Voici mon code qui marche très bien si je le mets dans un bouton dans le masque.

@Command([EditDocument]; "1" );
@DialogBox("replanification";[AutoHorzFit]:[AutoVertFit]:[SizeToTable]);
@Command([FileSave]);
@Command ([FileCloseWindow])


Merci
steph1708
Posteur néophyte
Posteur néophyte
 
Message(s) : 73
Inscrit(e) le : 11 Mai 2009 à 14:02
Localisation : Paris

Messagepar esolarc » 30 Sep 2009 à 09:01

Je comprends pas ton problème dans une vue tu réduit juste ton code à la ligne:

@DialogBox("replanification";[AutoHorzFit]:[AutoVertFit]:[SizeToTable]);

ton bouton travaillera avec le document courant de ta vue.

C'est tout cimple.

Pour être propre tu peuts ajouter juste avant ce code un test du style :

@if( Form="<nom de ton formulaire>"; ""; @Return(@Prompt([OK];"Erreur";"Pour éxécuter cette action vous devez sélectionner un document <nom de ton formulaire> !")))

Tu t'assure ainsi que le document que tu vas lire avec ta dialogbox est bien un document sur lequel s'applique ta dialogbox.
Avatar de l’utilisateur
esolarc
Modérateur
Modérateur
 
Message(s) : 522
Inscrit(e) le : 10 Oct 2006 à 08:23
Localisation : Genève

Messagepar steph1708 » 30 Sep 2009 à 11:27

la dialogbox s'ouvre bien, pas de soucis, mon problème est que ça ne met pas à jour mon doc parent.

exemple : quand je suis dans ma vue agenda je fais glisser un docrv (mask1) sur une autre date, à ce moment là ma dialogbox (mask2) s'ouvre et me demande ma nouvelle date. Je clique sur un bouton de zone sensible qui exécute la commande @ RefreshParentNote, mais mon docrv ne se met pas à jour.
En fait il ne prend pas du tout en compte la nouvelle date.


en revanche, si je créée un bouton de zone sensible directement dans le mask1 avec la même formule, ça fonctionne impec.

en esperant avoir été plus clair
merci d'avance
steph1708
Posteur néophyte
Posteur néophyte
 
Message(s) : 73
Inscrit(e) le : 11 Mai 2009 à 14:02
Localisation : Paris

Messagepar esolarc » 30 Sep 2009 à 12:59

Pourquoi utilise tu RefreshParentNote ???

Car si tu fait un sous-masque avec un champ correspondant à un champ de ton document, que tu sélectionne un document dans ta vue et click sur un bouton contenant le code:

@DialogBox("<nom>";[AutoHorzFit]:[AutoVertFit]:[SizeToTable]);

Et que l'utilisateur modifie le contenu du champ et click sur le bouton OK cela doit marcher (si l'utilisateur a bien accès en écriture sur le dit document biensurs).

J'ai fait un test cela marche.

A ma connaissance on utilise RefreshParentNote si on ne veut pas utiliser le bouton ok de la dialogbox mais vue ton appel à ta dialogbox tu ne supprime pas l'affichage du bouton OK.
Avatar de l’utilisateur
esolarc
Modérateur
Modérateur
 
Message(s) : 522
Inscrit(e) le : 10 Oct 2006 à 08:23
Localisation : Genève

Messagepar steph1708 » 30 Sep 2009 à 13:57

oui effectivement pour le RefreshParentNote, je n'ai pas à l'utiliser avec cet appel à la dialogbox. merci

et oui comme tu le dis le champ se met bien à jour si j'utilise cette formule dans un bouton dans mon mask,
mais ça ne marche pas quand je mets la formule dans ma vue agenda (postdragdrop). mon doc parent ne se met pas à jour
steph1708
Posteur néophyte
Posteur néophyte
 
Message(s) : 73
Inscrit(e) le : 11 Mai 2009 à 14:02
Localisation : Paris

Messagepar esolarc » 30 Sep 2009 à 16:24

??? moi cela marche très bien... avec une action dans une vue et un document sélectionné, le champ du document sélectionné est bien modifié.

Mais qu'entends tu par doc parent ? car sous notes il y a des documents, des document réponses et des réponses à réponses.

Sur ce principe quand on parle de document parent on parle du document principal auquel est rattaché un document réponse (ou document réponse si le document courant est une réponse à réponse).

Ce qui sous entendrait que tu sélectionne un document réponse par exemple et veuille mettre à jour un champ contenu dans son document parent...

Ou pour toi quand tu parle de doc parent tu veux parler du document sélectionné dans ta vue au moment ou tu click sur ton action ?
Avatar de l’utilisateur
esolarc
Modérateur
Modérateur
 
Message(s) : 522
Inscrit(e) le : 10 Oct 2006 à 08:23
Localisation : Genève

Messagepar steph1708 » 02 Oct 2009 à 10:29

si je mets un bouton d'action dans la vue oui effectivement ça fonctionne, mais je ne veux pas de bouton,
je veux juste mettre cette formule dans Postdragdrop

c'est pas vraiment un doc parent, je parlais du doc selectionné

merci
steph1708
Posteur néophyte
Posteur néophyte
 
Message(s) : 73
Inscrit(e) le : 11 Mai 2009 à 14:02
Localisation : Paris

Messagepar esolarc » 02 Oct 2009 à 16:40

Voila qui précise le problème...

Dans l'évènement Postdragdrop je serais plutôt tenté de faire le code en Lotuscript.
Avatar de l’utilisateur
esolarc
Modérateur
Modérateur
 
Message(s) : 522
Inscrit(e) le : 10 Oct 2006 à 08:23
Localisation : Genève

Messagepar steph1708 » 05 Oct 2009 à 10:28

ah !!! là en revanche ça se complique, car je suis nettement moins à l'aise en LotusScript
je vais essayer de faire qqchose, mais si je n'y arrive pas, je vais encore avoir besoin de votre aide

en tout cas, merci beaucoup d'avoir pris le temps
steph1708
Posteur néophyte
Posteur néophyte
 
Message(s) : 73
Inscrit(e) le : 11 Mai 2009 à 14:02
Localisation : Paris

Messagepar steph1708 » 13 Oct 2009 à 10:22

Bonjour,
Bon et bien me revoilà.
J'avoue que je suis larguée en lotusscript, donc après plusieurs tentatives, je n'arrive pas à faire ce que je veux. Je suis plus que débutante alors j'ai cherché mais.........il toit y avoir des subtilités qui m'échappe complètement.
Voici mon code en lotusscript.
Petit rappel : je souhaite faire glisser (postdragdrop) un document d'une vue agenda de la dateA à la dateB. Quand je fais glisser mon doc une dialogbox s'ouvre me demande la date et le nbjour mais quand je fais ok, il ne trouve pas mon document :-(

Sub Postdragdrop(Source As Notesuiview)

Dim session As NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim A As notesdocument '//demande
Dim B As notesdocument '/Dlgtest
Dim view As Notesview
Dim keys As String '//date debut
Dim jour As String '//nb jour

'//Initialisation de la session
Set session = New NotesSession
'//base active
Set db = session.CurrentDatabase
'//Initialisation de l'espace de travail
Set ws = New NotesUIWorkspace
'//Initialisation de la vue
Set view = db.GetView ("Agenda Créa")
If view Is Nothing Then
Msgbox "Vue non trouvée"
Exit Sub
End If

'//Initialisation du doc support de boite de dialogue
Set B = New NotesDocument (db)
Call ws.DialogBox("Dlgtest",True, True, False, False, False, False,"Changement de date",B)

'//Controle de saisie
keys = Format(B.datdebCR(0),"mm/dd/yy")
jour = Trim$ (B.nbjourCR(0))

'//Accès au document
Set A=view.getdocumentbykey(keys, True)
If A Is Nothing Then
Msgbox "demande non trouvée"
Exit Sub
End If
'//Initialisation
Set uidoc = ws.EditDocument (True, A)
ws.CurrentDocument.Document.jour=jour

End Sub


Je vous remercie par avance de votre aide.
steph1708
Posteur néophyte
Posteur néophyte
 
Message(s) : 73
Inscrit(e) le : 11 Mai 2009 à 14:02
Localisation : Paris

Messagepar Michael DELIQUE » 13 Oct 2009 à 10:33

salut

salut

ben c'est normale tu n'a pas instancié le document sélectionné dans la vue !

pour récupéré la liste des document sélectionné :

Code : Tout sélectionner
Dim Collection As NotesDocumentCollection
   Set COllection = Source.Documents
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Michael DELIQUE » 13 Oct 2009 à 10:37

j'ai modifié ton code vite fais

Code : Tout sélectionner
   Dim session As NotesSession
   Dim db As NotesDatabase
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Dim A As notesdocument '//demande
   Dim B As notesdocument '/Dlgtest
   Dim view As Notesview
   Dim keys As String '//date debut
   Dim jour As String '//nb jour
   Dim Collection As NotesDocumentCollection
   
'//Initialisation de la session
   Set session = New NotesSession
'//base active
   Set db = session.CurrentDatabase
'//Initialisation de l'espace de travail
   Set ws = New NotesUIWorkspace
'//Initialisation de la vue
   Set view = db.GetView ("Agenda Créa")
   If view Is Nothing Then
      Msgbox "Vue non trouvée"
      Exit Sub
   End If
   
   
   Set Collection = Source.Documents
   If Collection Is Nothing Then
      Exit Sub
   Elseif Collection.Count = 0 Then
      Exit Sub      
   End If
   
   
'//Initialisation du doc support de boite de dialogue
   Set B = New NotesDocument (db)
   Call ws.DialogBox("Dlgtest",True, True, False, False, False, False,"Changement de date",B)
   
'//Controle de saisie
   keys = Format(B.datdebCR(0),"mm/dd/yy")
   jour = Trim$ (B.nbjourCR(0))
   
'//Accès au document
   Set A=view.getdocumentbykey(keys, True)
   If A Is Nothing Then
      Msgbox "demande non trouvée"
      Exit Sub
   End If
'//Initialisation
'   Set uidoc = ws.EditDocument (True, A)
'   ws.CurrentDocument.Document.jour=jour
   Call Collection.StampAll("Jour",Jour)
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar steph1708 » 13 Oct 2009 à 14:09

Merci, merci, c'est très sympa, mais....
j'ai toujours le même message c'est à dire "demande non trouvée" de ma msgbox dans la partie accès au document
je ne comprends pas pourquoi il ne trouve pas le document
steph1708
Posteur néophyte
Posteur néophyte
 
Message(s) : 73
Inscrit(e) le : 11 Mai 2009 à 14:02
Localisation : Paris

Suivant

Retour vers Développement

cron