Page 1 sur 2

Fermer un document sans le quitter

MessagePublié: 22 Sep 2010 à 10:40
par poowie
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.

MessagePublié: 22 Sep 2010 à 11:04
par Michael DELIQUE
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

MessagePublié: 22 Sep 2010 à 12:40
par poowie
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.

MessagePublié: 22 Sep 2010 à 12:45
par Michael DELIQUE
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)

MessagePublié: 22 Sep 2010 à 13:02
par poowie
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.

MessagePublié: 22 Sep 2010 à 13:56
par nemrod93
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.

MessagePublié: 22 Sep 2010 à 14:04
par Michael DELIQUE
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

MessagePublié: 22 Sep 2010 à 14:20
par nemrod93
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.

MessagePublié: 22 Sep 2010 à 14:26
par Michael DELIQUE
pour ma part

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

MessagePublié: 22 Sep 2010 à 15:36
par nemrod93
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:

MessagePublié: 27 Sep 2010 à 14:30
par poowie
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.

MessagePublié: 27 Sep 2010 à 14:31
par Michael DELIQUE
salut

montre nous ton code

et dis nous ce qui cloche

MessagePublié: 27 Sep 2010 à 14:46
par poowie
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" .

MessagePublié: 27 Sep 2010 à 14:49
par Michael DELIQUE
tu peut monter ta fonction ?

MessagePublié: 27 Sep 2010 à 14:51
par poowie
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