Editions multiples

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

Editions multiples

Messagepar Mar.mack » 04 Mai 2011 à 09:07

Bonjour,

Nous avons pour des besoins d'archivage une base dans laquelle nous réalisons un import de documents word...
Nous importons le texte, mais aussi l'auteur, la date, le sujet, ...

Mais au gré des imports et de la provenance des fichiers, le contenu de certains champs n'est pas pas toujours correcte... à cause d'un espace, d'un accent, ...

J'aurais souhaiter ajouter une fonction permettant de corriger un champs donné sur une sélection de documents en une seule fois.
Mais ayant peu de connaissance en développement Notes, je ne sais pas comment faire.

Par avance merci
Dernière édition par Mar.mack le 18 Mai 2011 à 12:30, édité 1 fois.
Mar.mack
Posteur néophyte
Posteur néophyte
 
Message(s) : 52
Inscrit(e) le : 09 Juil 2007 à 09:59
Localisation : Argenteuil

Messagepar Michael DELIQUE » 04 Mai 2011 à 09:40

salut

tu comptes faire ça comment ? LS @formules ?

un tuto => http://forum.dominoarea.org/initiation- ... 12997.html
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 Mar.mack » 04 Mai 2011 à 10:18

A dire vrai, peu m'importe le langage.
Je viens de télécharger le tuto, je vais tâcher de le lire, mais à priori, je ne vois rien dans le sommaire qui explique comment manipuler plusieurs documents à la fois.
Mar.mack
Posteur néophyte
Posteur néophyte
 
Message(s) : 52
Inscrit(e) le : 09 Juil 2007 à 09:59
Localisation : Argenteuil

Messagepar Michael DELIQUE » 04 Mai 2011 à 11:50

re,

regarde à

NotesDocumentCollection.Stampall sinon il faut boucler sur chacque document
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 Mar.mack » 05 Mai 2011 à 17:39

Je me suis inspiré d'un bout de code trouvé sur les forums IBM, voilà le résultat en LS:

Code : Tout sélectionner
Sub Initialize

   'Variables
   Dim session1 As New NotesSession
   Dim workspace1 As New NotesUIWorkspace
   Dim db1 As NotesDatabase
   Dim collection1 As NotesDocumentCollection
   Dim doc1 As NotesDocument
   Dim newAuteur As String, newCategorie As String, newRubrique As String, newSujet As String, newDateRedac As String
   Dim title1 As String
   
   'Definition des variables
   Set db1 = session1.CurrentDatabase
   Set collection1 = db1.UnprocessedDocuments
   Set doc1 = collection1.GetFirstDocument
   title1 = "Editions multiples"
   
   'Définition des nouvelles valeurs (saisie d'une valeur à la fois)
   newAuteur = workspace1.Prompt(3, title1, "Modifier le rédacteur ?")
   newCategorie = workspace1.Prompt(3, title1, "Modifier le numéro de magazine ?")
   newRubrique = workspace1.Prompt(3, title1, "Modifier la rubrique ?")
   newSujet = workspace1.Prompt(3, title1, "Modifier le sujet ?")
   newDateRedac = workspace1.Prompt(3, title1, "Modifier la date (format: jj/mm/aaaa) ?")

   'Modification des documents sélectionnés
   Do While Not (doc1 Is Nothing)
      With doc1
         If newAuteur (remplacer par le sigle différent) "" Then .Auteur = newAuteur
         If newCategorie (remplacer par le sigle différent) "" Then .Categorie = newCategorie
         If newRubrique (remplacer par le sigle différent) "" Then .Rubrique = newRubrique
         If newSujet (remplacer par le sigle différent) "" Then .Sujet = newSujet
         If newDateRedac (remplacer par le sigle différent) "" Then .DateRedac = newDateRedac
      End With
      Call doc1.Save(True, True)
      Set doc1 = collection1.GetNextDocument(doc1)
   Loop

   'Actualisation de la vue
   Call workspace1.Viewrefresh()

End sub

Les champs de mon masque étant Auteur, Sujet, Rubrique, DateRedac et Categorie.
Mais j'ai pas encore trouvé comment créer une fenêtre avec plusieurs champs...
Dernière édition par Mar.mack le 06 Mai 2011 à 11:29, édité 4 fois.
Mar.mack
Posteur néophyte
Posteur néophyte
 
Message(s) : 52
Inscrit(e) le : 09 Juil 2007 à 09:59
Localisation : Argenteuil

Messagepar Michael DELIQUE » 05 Mai 2011 à 20:31

re,

pas mal le code, pour le ton probleme de champ multiple; regarde a notesuiworkspace.dialogbox
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 Mar.mack » 06 Mai 2011 à 10:43

Bon, j'ai revue un peu mon code pour que ce soit plus propre et pour que la vue soit rafraichie... (voir message avec le code plus haut)

J'ai essayer d'utiliser dialogbox, mais sans succès...
Il semble nécessaire de lui donner un document...
Mar.mack
Posteur néophyte
Posteur néophyte
 
Message(s) : 52
Inscrit(e) le : 09 Juil 2007 à 09:59
Localisation : Argenteuil

Messagepar Michael DELIQUE » 06 Mai 2011 à 11:08

re,

en effat mais tu créé un NotesDocument temporaire que tu n'enregistre pas et ensuite tu n'as plus qu'a passer les champs
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 Mar.mack » 06 Mai 2011 à 13:06

Là encore j'ai essayé de trouver un exemple de code...
Ce qui m'a conduit à écrire un truc du genre :
Code : Tout sélectionner
   Dim tempDoc1 As NotesDocument
   Set tempDoc1 = db1.Createdocument()
   tempDoc1.Form = "multiedit"
   If Not workspace.DialogBox ( "multiedit", True, True, False, False, False, False,title1, tempDoc1, False, False, False ) Then
      Exit Sub
   End If


J'ai bien sur créer un masque appelé "multiedit" avec les champs adéquate... mais ça ne fonctionne pas à cause de createdocument & de form ...
Peut-être parce que c'est pour du notes 7 et que j'ai la version 8.5 ...
Mais dans ce cas, faut que je trouve comment le faire fonctionner avec les 2 versions, car j'ai encore beaucoup de postes en v7.
Mar.mack
Posteur néophyte
Posteur néophyte
 
Message(s) : 52
Inscrit(e) le : 09 Juil 2007 à 09:59
Localisation : Argenteuil

Messagepar Mar.mack » 06 Mai 2011 à 13:15

Arf... ça y est j'ai réussi.
C'était une variable mal nommée...
Mar.mack
Posteur néophyte
Posteur néophyte
 
Message(s) : 52
Inscrit(e) le : 09 Juil 2007 à 09:59
Localisation : Argenteuil

Messagepar Smicky » 06 Mai 2011 à 14:09

StampAll sera la méthode bien plus rapide...
Smicky
Posteur habitué
Posteur habitué
 
Message(s) : 232
Inscrit(e) le : 09 Déc 2006 à 15:27
Localisation : Paris

Messagepar Mar.mack » 06 Mai 2011 à 14:12

Voilà le code avec le formulaire qui remplace la section ou les valeurs sont demandées une à une.
Code : Tout sélectionner
   'Définition des nouvelles valeurs (saisie de toutes les valeurs depuis un formulaire)
   Dim tempDoc1 As NotesDocument
   Set tempDoc1 = db1.Createdocument()
   Call tempDoc1.Replaceitemvalue("Form","Multiedit")
   If Not workspace1.DialogBox ( "Multiedit", True, True, False, False, False, False, title1, tempDoc1, True, False, False ) Then Exit Sub
   newAuteur = tempDoc1.getitemvalue("Auteur")(0)
   newCategorie = tempDoc1.getitemvalue("Categorie")(0)
   newRubrique = tempDoc1.getitemvalue("Rubrique")(0)
   newSujet = tempDoc1.getitemvalue("Sujet")(0)
   newDateRedac = tempDoc1.getitemvalue("DateRedac")(0)



Smicky, StampAll semble plus efficace en effet, mais il semble aussi s'appliquer à tous les éléments d'une vue si j'en crois la doc. Ce qui n'est pas ce que je veux.


Merci de votre aide.
Mar.mack
Posteur néophyte
Posteur néophyte
 
Message(s) : 52
Inscrit(e) le : 09 Juil 2007 à 09:59
Localisation : Argenteuil

Messagepar Michael DELIQUE » 06 Mai 2011 à 15:04

salut

tous les éléments de la collection (ya pas la possibilité directement pour les vues)
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


Retour vers Développement

cron