Peut-on connaitre le nombre de champ d'un document ?

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

Peut-on connaitre le nombre de champ d'un document ?

Messagepar jordane45 » 03 Nov 2010 à 11:06

Bonjour,

Est-il possible (en lotusscript ) de connaitre dans le document en cours :
- Le nombre de champs
- Leurs noms
- Leurs valeurs

j'ai parcourue l'aide du desiner ainsi que le net, mais sans résultat.

Cordialement
Jordane.
jordane45
Premier posts
Premier posts
 
Message(s) : 16
Inscrit(e) le : 12 Fév 2010 à 17:54

Messagepar amahi » 03 Nov 2010 à 11:24

Bonjour
Tu as la methode items qui te renvoie l'ensemble des champs dans un tableau.
A partir de la tu as le nombre champ (= la taille de ton tableau) et pour chaque item tu as les propriété Name et Values qui te renvoie respectivement le nom et les valeurs de ton champ.
@Novaliance
amahi
Empereur des posts
Empereur des posts
 
Message(s) : 1032
Inscrit(e) le : 08 Jan 2007 à 16:57
Localisation : Region parisienne

Messagepar Michael DELIQUE » 03 Nov 2010 à 11:43

salut

une vieille fonction qui renvois le nom de tous les champs présent dans un document


Code : Tout sélectionner
Function FieldList(wDB As NotesDatabase, wForm As String, wDoc As NotesDocument) As Variant
   
   'Déclaration de variables
   Dim lstValue List As String
   Dim Selection As String
   Dim i As Integer
   Dim DB2 As NotesDatabase
   Dim FRM As NotesForm
   Dim vrItem As Variant
   
   On Error Goto ErreurHandle
   
   Erase lstValue
   lstValue(0) = ""
   i = -1
   
   If Trim(wForm) = "" And (wDoc Is Nothing) Then
      FieldList = lstValue
      Erase lstValue
      Exit Function   
   Elseif Trim(wForm) <> "" And (Not wDoc Is Nothing) Then
      FieldList = lstValue
      Erase lstValue
      Exit Function   
   End If
   
   If wDB Is Nothing Then
      Set Session = Nothing
      Set Session = New NotesSession
      Set Db2 = Session.CUrrentdatabase
   Else
      Set Db2 = wDB
   End If
   
   
   If Trim(wForm)<>"" Then
      'recherche sur un masque/form
      Set FRM = Db2.GetForm( Trim(wForm) )
      
      If FRM Is Nothing Then
   '   Mess = "Formulaire introuvable.",48," ATTENTION !"
         FieldList = lstValue
         Erase lstValue
         Exit Function   
      End If
      
      Forall Value In FRM.fields
         i = i+1
         lstValue(i) = Value
      End Forall
   Else
      'recherche sur un document
      If wDoc Is Nothing Then
      '      Mess = "Document is nothing",48," ATTENTION !"
         FieldList = lstValue
         Erase lstValue
         Exit Function   
      Else
         vrItem = wDoc.Items
         Forall value In vrItem
            i = i+1
            lstValue(i) = Value.name
         End Forall
         vrItem = Null
      End If      
   End If
   
   i = 0
   Selection = ""
   FieldList = lstValue
   Erase lstValue
   Set Db2 = Nothing
   
   Exit Function
ErreurHandle:
   Msgbox "("+Structure_Log+" : "+Cstr(Getthreadinfo (1))+" Call by "+Cstr(Getthreadinfo(10))+")"+Chr(10)+"Erreur " + Str(Err) + " : "+Chr(10) + Cstr(Error)+". "+Chr(10)+"Ligne N° "+Cstr(Erl),16," ERREUR !"
   lstValue(0) = ""
   FieldList = lstValue
   Erase lstValue
   Exit Function   
End Function
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 Michael DELIQUE » 03 Nov 2010 à 11:46

sinon un exemple plus simple


Code : Tout sélectionner
   Dim Doc As NotesDocument
   Dim item As NotesItem
   Dim nbfield As Integer
   
   nbField = Ubound(Doc.Items)
   
   Msgbox "nb fields : "+Cstr(nbField)
   
   Forall value In Doc.Items
      Set Item = value
      Msgbox "Champ : "+Item.Name+Chr(10)+"Valeur : "+item.Text      
   End Forall
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 jordane45 » 03 Nov 2010 à 11:58

Merci beaucoup.

amahi, j'ai testé avec ta proposition et c'est ok. je récupère bien les informations dont j'avais besoin.

Michael DELIQUE : je viens juste de voir ta réponse. Je vais m'y pencher car cela à l'air très interessant.


Encore merci à vous deux.

Bonne journée.
Jordane
jordane45
Premier posts
Premier posts
 
Message(s) : 16
Inscrit(e) le : 12 Fév 2010 à 17:54

Messagepar jordane45 » 03 Nov 2010 à 12:13

Bon, je viens de voir que ton exemple (plus simple);.; c'est ce que je venais de faire.

Parfait !
Merci encore.
jordane45
Premier posts
Premier posts
 
Message(s) : 16
Inscrit(e) le : 12 Fév 2010 à 17:54


Retour vers Développement

cron