Generer un fichier texte

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

Generer un fichier texte

Messagepar PAT » 15 Oct 2003 à 14:55

Voici mon besoin : j'ai une base Notes avec certains documents, tous créés avec un même masque contenant un champs type Texte et un champs de type Liste.Je voudrais mettre dans ce masque un bouton permettant de générer sur le disque de l'utilisateur un fichier texte contenant :Texte1 (contenu du champs Texte du 1er document) (contenu du champs liste du 1er document : -------- -------- --------Texte2 (contenu du champs Texte du 2e document) (contenu du champs liste du 2e document : -------- -------- --------....Comment faire (je debute en dev) ?
PAT
 

Re: Generer un fichier texte

Messagepar PAT » 17 Oct 2003 à 12:25

Personne ne peut m'aider ? C'est si compliqué cela ?
PAT
 

Re: Generer un fichier texte

Messagepar Raziel » 17 Oct 2003 à 13:04

Salut,voici un bout de code qui devrait pouvoir t'aider.Tu place ce code soit dans un agent soit derrière un bouton.Soit CH1 mon champ texte et CH2 mon champ listeSoit MaVue le nom de la vue qui liste les docs devant être exportés.dim session as new notessessiondim db as notesdatabasedim vue as notesviewdim doc as notesdocumentDim fileNumber As Integerdim buffer as stringset db = session.currentdatabaseset vue = db.getview("MaVue")set doc = vue.getfirstdocument' Ouverture du fichierOpen "c:\export.txt" For OutPut As fileNumberwhile not doc is nothingbuffer = doc.getitemvalue("CH1")(0) + chr$(13)buffer = buffer + doc.getitemvalue("CH2")(0)' Ecriture dans le fichierPrint #fileNumber, buffer' Passage au doc suivantset doc = vue.getnextdocument (doc)wend' Fermeture du fichierclose #fileNumberJe ne l'ai pas testé mais je pense qu'il devrait fonctionner.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: Generer un fichier texte

Messagepar PAT » 24 Oct 2003 à 10:37

Merci, mais le pb c'est que ton code me renvoit que la premiere valeur du champs Liste.Comment obtenir toutes les valeurs de ce champs de type liste ?
PAT
 

Re: Generer un fichier texte

Messagepar Droad » 24 Oct 2003 à 11:02

remplaces:buffer = buffer + doc.getitemvalue("CH2")(0)par:buffer = buffer + doc.getfirstitem("CH2").Textça devrait le faire.[%sig%]
Droad
 

Re: Generer un fichier texte

Messagepar Raziel » 24 Oct 2003 à 11:05

Tout dépend de comment tu veux gérer ton champ multi val :Veux tu avoir une ligne pour chaque valeur du champ ?Veux tu toutes les valeurs du champ les une à côté des autres ? Dans ce cas, quelle sérateur utilisé ?
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: Generer un fichier texte

Messagepar PAT » 24 Oct 2003 à 11:13

Je voudrais une ligne pour chaque valeur du champs.
PAT
 

Re: Generer un fichier texte

Messagepar Raziel » 24 Oct 2003 à 13:50

Choix CH1 mon champ multi evaluédim session as new notessessiondim db as notesdatabasedim vue as notesviewdim doc as notesdocumentDim fileNumber As Integerdim buffer as stringdim indice as integerset db = session.currentdatabaseset vue = db.getview("MaVue")set doc = vue.getfirstdocument' Ouverture du fichierOpen "c:\export.txt" For OutPut As fileNumberwhile not doc is nothingfor indice=0 to ubound(doc.getitemvalue("CH1"))buffer = doc.getitemvalue("CH1")(indice) + chr$(13)buffer = buffer + doc.getitemvalue("CH2")(0)' Ecriture dans le fichierPrint #fileNumber, buffernext' Passage au doc suivantset doc = vue.getnextdocument (doc)wend' Fermeture du fichierclose #fileNumber
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: Generer un fichier texte

Messagepar PAT » 24 Oct 2003 à 14:05

Super, merci bien !Si ce n'est pas trop demander, comment faire en sorte que cette boucle n'agisse pas sur tous les documents de la vue mais seulement sur ceux sélectionnés par l'utilisateur ?
PAT
 

Re: Generer un fichier texte

Messagepar Raziel » 24 Oct 2003 à 14:29

Dans ce cas il faut que tu mettes le code dans un agent dont les propriétés sont les suivantes : "Exécuter sur les documents sélectionnées"Ensuite tu met le code suivant :dim session as new notessessiondim db as notesdatabasedim docCol as notesdocumentcollectiondim doc as notesdocumentDim fileNumber As Integerdim buffer as stringdim indice as integerset db = session.currentdatabaseset docCol = db.UnprocessedDocumentsset doc = docCol.getfirstdocument' Ouverture du fichierOpen "c:\export.txt" For OutPut As fileNumberwhile not doc is nothingfor indice=0 to ubound(doc.getitemvalue("CH1"))buffer = doc.getitemvalue("CH1")(indice) + chr$(13)buffer = buffer + doc.getitemvalue("CH2")(0)' Ecriture dans le fichierPrint #fileNumber, buffernext' Passage au doc suivantset doc = docCol.getnextdocument (doc)wend' Fermeture du fichierclose #fileNumber
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: Generer un fichier texte

Messagepar PAT » 24 Oct 2003 à 15:01

Je voulais eviter de faire un agent (j'ai mis ce code dans un bouton d'action rattaché à ma vue) ...J'avais entendu parlé d'une fonction du type UnprocessedDocuments.J'ai regardé l'aide en ligne mais n'y ai rien compris ...La connais tu ? Penses-tu qu'elle pourrait resoudre mon pb ?Sinon, comment programmer le bouton pour lui demander de lancer l'agent en question ?
PAT
 

Re: Generer un fichier texte

Messagepar Raziel » 24 Oct 2003 à 15:13

Pour ce qui est tu unprocesseddocument, je l'utilise dans le dernier code que je t'ai envoyé.Pour ce qui est de l'agent, je m'aperçois que je t'ai dis une bétise : tu peux mettre le dernier code derrière un bouton, ça marchera aussi.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: Generer un fichier texte

Messagepar PAT » 27 Oct 2003 à 11:50

Merci de ton aide precieuse Raziel. J'ai eu quand même quelques soucis avec ton dernier code, surtout dans le fichier généré qui cotenait des données un peu farfelues (certaines lignes se marchaient les unes sur les autres).Pour ceux que cela interesse, voici le code final :Sub Click(Source As Button) Dim session As New notessession Dim db As notesdatabase Dim docCol As notesdocumentcollection Dim doc As notesdocument Dim fileNumber As Integer Dim buffer As String Dim buffer2 As Variant Set db=session.currentdatabase Set docCol=db.UnprocessedDocuments Set doc = docCol.getfirstdocument fileNumber% = Freefile() 'Ouverture du fichier Open "c:\export.txt" For Output As fileNumber% While Not doc Is Nothing buffer=doc.getitemvalue("ListName")(0) + Chr$(13) 'Ecriture dans le fichier Print #fileNumber%, buffer buffer="" buffer2=doc.getitemvalue("Members") Forall m In buffer2 buffer=m + Chr$(13) 'Ecriture dans le fichier Print #fileNumber%, buffer buffer="" End Forall buffer=Chr$(13) 'Ecriture dans le fichier Print #fileNumber%, buffer buffer="" 'Passage au doc suivant Set doc=docCol.getnextdocument(doc) Wend 'Fermeture du fichier Close #fileNumber% End Sub
PAT
 


Retour vers Développement

cron