Fermer un document sans le quitter

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

Fermer un document sans le quitter

Messagepar poowie » 22 Sep 2010 à 10:40

Bonjour :) ,

Je verifie si les champs obligatoires sont bien renseignés, si ce n'est pas le cas un message s'affiche et informe l'utilisateur que des champs ont vides. lorsque l'utilisateur clique sur ok les champs sont recalculés (j’utilise un refresh) et le document se ferme.
Je souhaite pouvoir revenir à ma saisie sans quitter le document, j'ai regardé dans l'aide et je n'ai pas trouvé de formule. Auriez vous une solution à me proposer.

ci joint une partie de mon code:
Elseif ( uidoc.FieldGetText("DIntervention")<>"") And (uidoc.FieldGetText("Intervenant")="") Then
Messagebox("Attention! vous n'avez pas assigné un intervenant.")
uidoc.GotoField("Intervenant")
Call uidoc.Refresh


Merci d'avance.
Cordialement.
poowie
Premier posts
Premier posts
 
Message(s) : 32
Inscrit(e) le : 17 Sep 2010 à 12:44

Messagepar Michael DELIQUE » 22 Sep 2010 à 11:04

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
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 » 22 Sep 2010 à 12:40

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


re,
j'ai créé une fonction et j'ai mis le code suivant:

****************************************
Function F_reponse(answer As Integer) As intger

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 ?", MB_YESNO, "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
*******************************************
j'obtiens le message d'erreur suivant:
F_reponse:21:variable not declared:MB_YESNO

merci d'avance,
Cordialement.
poowie
Premier posts
Premier posts
 
Message(s) : 32
Inscrit(e) le : 17 Sep 2010 à 12:44

Messagepar Michael DELIQUE » 22 Sep 2010 à 12:45

re,

tu n'as pas du appeller (use) le fichier lss qui contient se variables, pour mapart je ne l'utilise jamais ja passe directement la valeur qui va bien (cf aide en ligne)
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 » 22 Sep 2010 à 13:02

Michael DELIQUE a écrit:re,

tu n'as pas du appeller (use) le fichier lss qui contient se variables, pour mapart je ne l'utilise jamais ja passe directement la valeur qui va bien (cf aide en ligne)

Ok, merci.
je vais faire des recherches en ligne.
cordialement.
poowie
Premier posts
Premier posts
 
Message(s) : 32
Inscrit(e) le : 17 Sep 2010 à 12:44

Messagepar nemrod93 » 22 Sep 2010 à 13:56

Bonjor,
personnellement, j'abuse dans chaque formulaire d'un champ validOk et dedans, il est calculé, je place toutes mes formules de vérification, si une formule est ok alors 0, sinon x + 1. Donc si validOK > 0 alors erreur.
Juste une manière de procéder.
Ensuite si validOk > 0 alors je poste un @commande([ToolsRunMacro];"agent") qui effectue la fin du traitement.
cdlt

Alain

On ne voit que ce qu'on veut voir, et on trouve rarement si on ne cherche pas
Avatar de l’utilisateur
nemrod93
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 378
Inscrit(e) le : 04 Déc 2008 à 10:26
Localisation : Saint Malo

Messagepar Michael DELIQUE » 22 Sep 2010 à 14:04

Nemrod93 a écrit: il est calculé, je place toutes mes formules de vérification


Bonjour la maintenance si les contrôle sont complexe ou nombreux
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 nemrod93 » 22 Sep 2010 à 14:20

En effet, mais c'est un truc que j'emploie depuis la v3. En écrivant correctement le programme (avec les REM) c'est pas si dûr.
cdlt

Alain

On ne voit que ce qu'on veut voir, et on trouve rarement si on ne cherche pas
Avatar de l’utilisateur
nemrod93
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 378
Inscrit(e) le : 04 Déc 2008 à 10:26
Localisation : Saint Malo

Messagepar Michael DELIQUE » 22 Sep 2010 à 14:26

pour ma part

j'utilise un fonction Ls qui renvois true/false et avec je peut bloquer le save, ou le close.
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 nemrod93 » 22 Sep 2010 à 15:36

Bah oui,
Vu mon grand âge, j'utilise des trucs comme ça car si ça ne marche pas c'est dans un seul champ que je dois investiguer :) :D

Enfin l'important c'est aussi et d'abord le résultat.

:app008:
cdlt

Alain

On ne voit que ce qu'on veut voir, et on trouve rarement si on ne cherche pas
Avatar de l’utilisateur
nemrod93
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 378
Inscrit(e) le : 04 Déc 2008 à 10:26
Localisation : Saint Malo

Messagepar poowie » 27 Sep 2010 à 14:30

Michael DELIQUE a écrit:pour ma part

j'utilise un fonction Ls qui renvois true/false et avec je peut bloquer le save, ou le close.


Bonjour,
j'ai essayé de trouver la solution, mais sans résultat.
pourriez vous m'éclairer SVP, car je suis vraiment débutante dans la programmation LS et les seuls notions que j'ai eu, je l'ai prise des tuto sur ce site.
merci d'avance.
Cordialement.
poowie
Premier posts
Premier posts
 
Message(s) : 32
Inscrit(e) le : 17 Sep 2010 à 12:44

Messagepar Michael DELIQUE » 27 Sep 2010 à 14:31

salut

montre nous ton code

et dis nous ce qui cloche
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 à 14:46

Michael DELIQUE a écrit:salut

montre nous ton code

et dis nous ce qui cloche


comme vous l'avez conseillé j'ai créé la fonction, que j'ai nommé F_Verif, le problème est que je n'arrive même pas à enregistrer cette fonction, erreur variable not declared :( le code est le même que celui là haut), avec la même erreur.
voila ce que j'ai défini en global:

%INCLUDE "LSCONST.LSS" .
poowie
Premier posts
Premier posts
 
Message(s) : 32
Inscrit(e) le : 17 Sep 2010 à 12:44

Messagepar Michael DELIQUE » 27 Sep 2010 à 14:49

tu peut monter ta fonction ?
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 à 14:51

Michael DELIQUE a écrit:tu peut monter ta fonction ?

re,
Function F_Verif(answer As Integer) As intger

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 ?", MB_YESNO, "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

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

Suivant

Retour vers Développement

cron