Créer un document et le mettre en edition

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

Créer un document et le mettre en edition

Messagepar clementbp » 29 Avr 2011 à 10:10

Bonjour,

Pourriez vous m'aider je ne comprends pas ce qui pose problème dans mon code qui pourtant ne doit pas etre compliqué




Code : Tout sélectionner
Dim NewWorkspace As  New NotesUIWorkSpace
   Dim NouveauDoc As NotesUIDocument
   
   Set NouveauDoc = NewWorkspace.ComposeDocument(,,"mDemandeCotation")
   
   
   Set NouveauDoc = NewWorkspace.CurrentDocument
   NouveauDoc.EditMode = True
   
   If NouveauDoc.EditMode Then
      Call NouveauDoc.FieldSetText ( "Client", "test" )
   End If
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Messagepar Michael DELIQUE » 29 Avr 2011 à 10:17

salut

quel est le probleme ?

mais déjà ça c'est pas bon

Set NouveauDoc = NewWorkspace.ComposeDocument(,,"mDemandeCotation")


Set NouveauDoc = NewWorkspace.CurrentDocument


tu réinstancie ton doc


par contre tu devrais nomé tes objet UI avec UI genre NouveauDOCUI ou NouveauUIDOC, ça facilite la relecture
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 clementbp » 29 Avr 2011 à 10:26

Je voudrais mettre une valeur dans le champs désigné de mon nouveau document et je n'arrive pas a comprendre ce qui me pose problème.

Au début je pensais mettre le code suivant mais j'ai un message d'erreur qui me dis que le document doit etre en edition.

Pourriez vous m'aider ?

Code : Tout sélectionner
   Dim NewWorkspaceUI As  New NotesUIWorkSpace
   Dim NouveauUIDoc As NotesUIDocument
   
   Set NouveauUIDoc = NewWorkspaceUI.ComposeDocument(,,"mDemandeCotation")
      
   Call NouveauUIDoc.FieldSetText ( "Client", "test" )
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Messagepar Michael DELIQUE » 29 Avr 2011 à 10:29

rajoute un NouveauUIDOc.editeMode = True apres le compose
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 clementbp » 29 Avr 2011 à 10:36

J'ai essayé mais j'ai un message d'erreur :

La commande de document est indisponible


Code : Tout sélectionner
   Dim NewWorkspaceUI As  New NotesUIWorkSpace
   Dim NouveauUIDoc As NotesUIDocument
   
   Set NouveauUIDoc = NewWorkspaceUI.ComposeDocument(,,"mDemandeCotation")
   
   NouveauUIDoc.EditMode = True
   
   Call NouveauUIDoc.FieldSetText ( "Client", "test" )
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Messagepar Michael DELIQUE » 29 Avr 2011 à 10:37

dans les options de ton masque coche "edition à l'ouverture"
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 clementbp » 29 Avr 2011 à 10:51

Ca ne fonctionne pas non plus même en modifiant les proporiétés du masque.

J'ai toujours le message Erreur Notes vous devez être en mode edition pour modifier la valeur d'un champ

Voici mon code complet

Code : Tout sélectionner
Sub Click(Source As Button)
   
   
   'Défini les variables permettant de travailler dans le document qui est ouvert
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   
   'Récupère les valeurs des champs
   Dim ValeurChampClient As String
   ValeurChampClient = uidoc.FieldGetText( "Client" )
   
   
   'Créé un nouveau document Demande de cotation
   Dim NewWorkspaceUI As  New NotesUIWorkSpace
   Dim NouveauUIDoc As NotesUIDocument
   Set NouveauUIDoc = NewWorkspaceUI.ComposeDocument(,,"mDemandeCotation")
   
   Call NouveauUIDoc.FieldSetText ( "Client", "test" )
   
   
   
End Sub
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Messagepar roubech » 29 Avr 2011 à 11:05

Michael DELIQUE a écrit:dans les options de ton masque coche "edition à l'ouverture"

le pb c'est que du coup cette option s'appliquera à chaque fois que tu ouvrira un doc basé sur ce masque. Et si le user n'a pas les droits de passer en édition ...

Normalement le Compose ouvre le formulaire en édition (obligé, il existe pas encore de doc). Est-ce que par contre, le champ que tu essayes de modifier est éditable ?

Si ce n''est pas le cas, en travaillant en backend comme tu étais parti hier, ça devrait passer (au passage, tu n'es pas obliger de multiplier les post pour le même sujet)
http://forum.dominoarea.org/creation-du ... 26964.html

[syntax="LotusScript"] Dim ws As New NotesUIWorkspace
' Dim uidocClient As NotesUIDocument
Dim s As New NotesSession
Dim docClient As NotesDocument
Dim docDmd As NotesDocument
Dim sClient As String

%REM OK si tu es sur que ton doc est ouvert en éditin et que tu crains que le champ Client a été modifié
' Récupérer le nom du client dans le doc courant
Set uidocClient = ws.CurrentDocument
sClient = uidocClient.FieldGetText( "Client" )
%END REM

' Récupérer le nom du client dans le doc courant
Set docClient = s.DocumentContext
sClient = docClient.getItemValue( "Client" )(0)

'Créer un nouveau document Demande de cotation
Set docDmd = New NotesDocument( s.currentdatabase )
Call docDmd.setItemValue( "Form", "mDemandeCotation" )
Call docDmd.setItemValue( "Client", sClient )

' Afficher le masque de création du doc Demande de cotation
Call ws.EditDocument(true, docDmd) [/syntax]
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar clementbp » 29 Avr 2011 à 14:23

Merci c'est exactement ça je te remercie.

Voici mon code une fois terminé :

Code : Tout sélectionner
Sub Click(Source As Button)
   
   'Défini les variables permettant de travailler dans le document qui est ouvert
   Dim workspace As New NotesUIWorkspace
   Dim uidoc As NotesUIDocument
   Set uidoc = workspace.CurrentDocument
   
   'Récupère les valeurs des champs
   Dim ValeurChampClient As String
   ValeurChampClient = uidoc.FieldGetText( "Client" )
   Dim ValeurChampNCompteClient As String
   ValeurChampNCompteClient = uidoc.FieldGetText( "NCompteClient" )
   Dim ValeurChampAdresseLivraison As String
   ValeurChampAdresseLivraison = uidoc.FieldGetText( "AdresseLivraison" )
   Dim ValeurChampVille As String
   ValeurChampVille = uidoc.FieldGetText( "Ville" )
   Dim ValeurChampCP As String
   ValeurChampCP = uidoc.FieldGetText( "CP" )
   Dim ValeurChampPays As String
   ValeurChampPays = uidoc.FieldGetText( "Pays" )
   Dim ValeurChampNTelClient As String
   ValeurChampNTelClient = uidoc.FieldGetText( "NTelClient" )
   Dim ValeurChampNFaxClient As String
   ValeurChampNFaxClient = uidoc.FieldGetText( "NFaxClient" )
   Dim ValeurChampEMailClient As String
   ValeurChampEMailClient = uidoc.FieldGetText( "EMailClient" )
   
   
   'Créé le document en mettant les valeurs des variables dans les champs correspondant
   Dim Session As New NotesSession
   Dim NouveauDoc As NotesDocument
   Set NouveauDoc = New NotesDocument( Session.currentdatabase )
   NouveauDoc.Form = "mDemandeCotation"
   NouveauDoc.Client =  ValeurChampClient
   NouveauDoc.NCompteClient=ValeurChampNCompteClient
   NouveauDoc.AdresseLivraison=ValeurChampAdresseLivraison
   NouveauDoc.Ville=ValeurChampVille
   NouveauDoc.CP=ValeurChampCP
   NouveauDoc.Pays=ValeurChampPays
   NouveauDoc.NTelClient=ValeurChampNTelClient
   NouveauDoc.NFaxClient=ValeurChampNFaxClient
   NouveauDoc.EMailClient=ValeurChampEMailClient
   
   
   ' Afficher le masque de création du doc Demande de cotation
   Dim NotesUIWorkSpace As New NotesUIWorkspace
   Call NotesUIWorkSpace.EditDocument(True, NouveauDoc)
   
   
   
End Sub
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42


Retour vers Développement

cron