Fermer un document sans le quitter

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

Messagepar Michael DELIQUE » 27 Sep 2010 à 14:59

j'ai corrigé ta fonction

Code : Tout sélectionner
Function F_Verif(answer As Integer) As Integer
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Set uidoc = ws.CurrentDocument
   
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   
   Set db = s.currentdatabase
   Set doc = db.CreateDocument
   Set doc=uidoc.document
   
   If(uidoc.FieldGetText("DIntervention") ="") And (uidoc.FieldGetText("DResolution")<>"")Then
      Messagebox("Attention! Veuillez assigner un intervenant ainsi que la date d'intervention avant de fermer le ticket.")
      uidoc.GotoField("Intervenant")
      Call uidoc.Refresh
      answer = Messagebox ( "Souhaitez vous quitter le document ?", 4, "Document" )
      If answer = 6 Then
         doc.SaveOptions = "0"
         Call doc.Save(True,True)
   '      Call uidoc.Close
      Else
         Call uidoc.refresh
   '      Call uidoc.Close
      End If
   End If
   
End Function


pour info :

- éviter de mélanger la programmation en frontale (UI) et dorsale, ça évite les surprise
- a quoi sert ta variable answer que tu passe dans ta fonction
- cette fonction sert a déterminer si un document peut etre fermé ou pas. donc fautpas y mettre de close sinon il sera toujours fermé.

la fonction doit renvoyer true ou false et passer cette réponse a la variale continue de ton evenement postclose


j'espere que je suis claire :wink:
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 » 27 Sep 2010 à 15:09

je t'es envoyé une exemple simple en mp
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 poowie » 27 Sep 2010 à 15:10

Michael DELIQUE a écrit:j'ai corrigé ta fonction

Code : Tout sélectionner
Function F_Verif(answer As Integer) As Integer
   
   Dim ws As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   
   Set uidoc = ws.CurrentDocument
   
   Dim s As New NotesSession
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   
   Set db = s.currentdatabase
   Set doc = db.CreateDocument
   Set doc=uidoc.document
   
   If(uidoc.FieldGetText("DIntervention") ="") And (uidoc.FieldGetText("DResolution")<>"")Then
      Messagebox("Attention! Veuillez assigner un intervenant ainsi que la date d'intervention avant de fermer le ticket.")
      uidoc.GotoField("Intervenant")
      Call uidoc.Refresh
      answer = Messagebox ( "Souhaitez vous quitter le document ?", 4, "Document" )
      If answer = 6 Then
         doc.SaveOptions = "0"
         Call doc.Save(True,True)
   '      Call uidoc.Close
      Else
         Call uidoc.refresh
   '      Call uidoc.Close
      End If
   End If
   
End Function


pour info :

- éviter de mélanger la programmation en frontale (UI) et dorsale, ça évite les surprise
- a quoi sert ta variable answer que tu passe dans ta fonction
- cette fonction sert a déterminer si un document peut etre fermé ou pas. donc fautpas y mettre de close sinon il sera toujours fermé.

la fonction doit renvoyer true ou false et passer cette réponse a la variale continue de ton evenement postclose


j'espere que je suis claire :wink:


Voilà comment fonctionne mon code, je doit faire des tests sur des champs, par exemple:
si date intervention saisie est supérieure à celle de résolution, l'utilisateur reçoit un message lui informant que sa saisie est erronée.
à partir de ça, l'utilisateur a le choix en cliquant sur OK de continuer sa saisie en initialisant les champ à 0 est donc le document doit rester ouvert.
une fois toute la saisie et effectué et correcte, en cliquant sur un bouton valider, l'utilisateur est prier de confirmer soit la validation en cliquant sur ok ou non, d'où la variable answer qui permet de valider la réponse de l'utilisateur soit à enregistrer son ticket ou à annuler la saisie en cours.

merci pour l'aide, je vais reprendre la fonction et faire les tests.
cdlt.
poowie
Premier posts
Premier posts
 
Message(s) : 32
Inscrit(e) le : 17 Sep 2010 à 12:44

Messagepar Michael DELIQUE » 27 Sep 2010 à 15:14

re,

tu veux faire les teste apres la saisie de chaque champ ?
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 poowie » 29 Sep 2010 à 13:58

Michael DELIQUE a écrit:salut

tu fais une petite function qui teste tes champs et qui affiche ton message et qui renvois true ou false

et dans le Queryclose tu fais ça

Continue = MafunctiondeTeste(Source.document)

fermeture bloqué si false


Bonjour,

dans le Queryclose, j'ai déclaré:
continue=F_Verif(source.Document).
j'obtiens l'erreur -->Illegal parenthezeid réference, F_verif
on enlevant les parenthèse ou on mettant continue=F_Verif(), j'obtiens toujours un message d'erreur.
quelqu'un a une idée. merci d'avance.

Cdlt.
poowie
Premier posts
Premier posts
 
Message(s) : 32
Inscrit(e) le : 17 Sep 2010 à 12:44

Messagepar Michael DELIQUE » 29 Sep 2010 à 14:10

re,

Source.document est un objet NotesDocument et toi en variable tu as mis un integer
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 poowie » 29 Sep 2010 à 14:24

Michael DELIQUE a écrit:re,

Source.document est un objet NotesDocument et toi en variable tu as mis un integer


Ok, merci, je vais revoir ma fonction.
Cdlt
poowie
Premier posts
Premier posts
 
Message(s) : 32
Inscrit(e) le : 17 Sep 2010 à 12:44

Précédent

Retour vers Développement

cron