Arrays of Arrays are not supported

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

Arrays of Arrays are not supported

Messagepar Jerome Capodano » 11 Oct 2010 à 14:29

Bonjour, je n'arrive plus à faire une chose assez simple
Quelle est la syntaxe à utiliser pour créer/mettre à jour un champ avec un tableau de plusieurs valeurs

A partir d'un formulaire, je veux aller rechercher tous les valideur d'un accès partagé via la vue sd


Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc=ws.CurrentDocument
Dim docbe As notesdocument ' doc en back end
Set docbe=uidoc.Document
Dim disques As Variant
disques=docbe.GetItemValue("dpdemandes")
Dim s As New NotesSession
Dim db As NotesDatabase
Set db = s.CurrentDatabase
Dim vuerecherche As NotesView
Set vuerecherche=db.GetView("sd") ' Shared Drive
Dim docatrouver As notesdocument
' Dim personnes As notesitem
Dim Personnes ()
indice=0 ' indice du tableau des valideurs
Redim personnes(Ubound(disques))
Forall unite In disques
' Aller récupérer le valideur de access partagé
Set docatrouver=vuerecherche.GetDocumentByKey(unite)
If Not docatrouver Is Nothing Then
' docbe.Personnes.Values(indice)=docatrouver.valideur
' Call Personnes.AppendToTexList(docatrouver.valideur)
Personnes(Indice)=docatrouver.valideur
indice=indice+1
' docbe.valideur(indice)=docatrouver.valideur
End If

End Forall
' L'ensemble des disques a été exploré
'*** Mettre à jour le champ Valideurs
Dim itm1 As NotesItem
' Set itm1= docbe.Replaceitemvalue("Valideurs",Arrayunique(Personnes))
Set itm1= docbe.Replaceitemvalue("Valideurs",Personnes)
' Set itm1= docbe.Replaceitemvalue("Personnes",Personnes)
docbe.Valideurs=Personnes
' docbe.Valideurs(0)=Personnes(0)
' Call docbe.CopyItem(Personnes,"Valideurs")
' docbe.Valideurs.Values=Personnes

J'essaye diverses variantes mais je n'arrive pas à mettre le contenu du tableau Personnes dans le champ Valideurs de mon document docbe

Je ne comprends pas pourquoi l'expression suivante
Set itm1= docbe.Replaceitemvalue("Valideurs",Arrayunique(Personnes))

ne fonctionne pas. C'est là ou j'ai un plantage a l'execution
J'ai ce message que le champ Valideurs existe ou non dans le formulaire
Jerome Capodano
Premier posts
Premier posts
 
Message(s) : 13
Inscrit(e) le : 20 Déc 2004 à 17:44
Localisation : Var

Messagepar roubech » 11 Oct 2010 à 19:56

à 1ère vue comme ça, à partir de ton message d'erreur, je dirais qu'il faut remplacer
Personnes(Indice)=docatrouver.valideur
par
Personnes(Indice)=docatrouver.valideur(0)
si ton champ valideur est bien monovalué, sinon, faudra le parcourir
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar LSong » 12 Oct 2010 à 14:14

c'est bien ca tu as instancier un tableau de variant (c'est mal si tu as besoin d'un tableau de string mette un tableau de string)

et tu y mette des array
Personnes(Indice)=docatrouver.valideur

un champs dans lotus est forcement multivalué en script (comprendre dans un tableau)


du coup tu mette des tableaux dans un variant
LSong
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 353
Inscrit(e) le : 07 Nov 2007 à 14:27
Localisation : Ile de france


Retour vers Développement