Page 1 sur 1
vue

Publié:
22 Mai 2003 à 13:43
par leilka
comment on fait pour récupérer le nom des colonnes d'une vue sous Notes... en Lotus script pa en formuleMerci
Re: vue

Publié:
22 Mai 2003 à 14:30
par philippeG
c'est la propriété title de la classe NotesViewColumn
Re: vue

Publié:
22 Mai 2003 à 14:57
par leilka
ok, mercimais je veux récupérer tous noms de colonnes d'une vueet les stocker dans un tableau mais je ne sais pas comment faire.qui aurait une idée?????????????
Re: vue

Publié:
22 Mai 2003 à 17:05
par philippeG
Essayes ceci avec tes paramètresDim db as NotesDataBase("MonServeur","MonFichier")Dim view as NotesViewDim ListeColonne() as stringSet view = db.GetView("MaVue")i = 0'calcul du nombre de colonne forall ele in view.columns i = i +1end forallredim ListeColonne(i) as stringi = 0'Alimente le tableau ListeColonneforall ele in view.columns ListeColonne(i) = ele.Title i = i +1end forall
Re: vue

Publié:
23 Mai 2003 à 10:41
par leilka
j'ai testé la partie de code que vous m'avez donné! elle marche bien...ensuite je dois comparer le nom des colonnes de la vue avec celle du fichier excel .Si elles sont égales (cad si le nom de la colonne excel = nom de la colonne de la vue) alors on range ce nom de colonne dans tabRes le tableau de resultat!voila ce que j'ai fait, mais il y a plusieurs problemes! alors merci de m'aider a les corriger

'récupération du nbre max de colonnes maxcols = Ubound (view.Columns) + 1' Redimensionnement du tableau Redim tCol(maxcols) As String Dim i As Integer Dim sMsg As String ' recupération du noms des colonnes du fichier excel For i = 0 To maxcols tCol(i) = xlsSheet.Cells(1,i+1).Value Next i 'affichage d'un message de confirmation avec les différentes colonnes relevées. For i = 0 To maxcols sMsg = sMsg + "Col" + Cstr(i+1) + " : " + tCol(i) + " " Next i Msgbox sMsg' recuperation du nom des colonnes de la vue Dim TotalColonne As Integer Dim ListeColonne() As String Set view = db.GetView("test") indice = 0 'calcul du nombre de colonne Forall ele In view.columns indice = indice +1 End Forall TotalColonne = indice Redim ListeColonne(indice) As String indice = 0 'Alimente le tableau ListeColonne Forall ele In view.columns ListeColonne(indice) = ele.Title indice = indice +1 End Forall 'ensuite, dans le code de la procédure "exportation" ' comparaison du nom des colonnes récupérées sous excel a celles existantes sous Notes, et rangement de celles-ci dans tabRes i = 0 indice = 0 j = 0 Redim tabRes(maxcols) As String Redim tCol(maxcols) As String RedimListeColonne(indice) As String For i =0 To maxcols For indice = 0 To maxcols ' And trouve = False If tcol(i) = ListeColonne(indice) Then touve = True tabRes(j) = tCol(i) j = j + 1 i = i + 1 Else trouve = False indice = indice + 1 End If Next Nextvoila.....alors, les problemes que j'ai rencontré sont les suivants :tout d'abord, je ne sais pas comment récupérer le nombre total de colonnes du fichier excel.....Ensuite je ne sais pas comment récupérer le nombre maxi de colonnes de la vue en question...enfin, au niveau de la comparaison des différentes cellules... y a PROBLEME!J'attend vos réponsesLeila
Re: vue

Publié:
23 Mai 2003 à 13:32
par philippeG
Bonjour la fonctionne redim reinitialise le tableau de variable si on utilise pas le mot clé preserve donc les tableaux.En lisant le script je ne vois pas l'utilité de faire un redim sur les variables ListeColonne et tCol puisque l'on veut justement comparer leur contenu d'autre part il ne faut pas modifier les valeurs de i et d'indice car nous sommes dans des boucles for et ou sauterai alors certaines valeurs.pour moi le bon code de la comparaison des tableux tCol et ListeColonne serait le suivant (les noms des colonnes identiques sont stockés dans la variable TabRes) j = 0 Redim tabRes(maxcols) As String For i =0 To Ubound(tCol) For indice = 0 To Ubound(ListeColonne) If tcol(i) = ListeColonne(indice) Then tabRes(j) = tCol(i) j = j + 1 Else End If Next Nextceci dit je n'ai jamais eu à interdacer notes et excel donc je ne suis pas vraiment spécialiste...Le sujet à été souvent abordé sur le forum donc en faisant une recherche il y a peut être déjà la solution
Re: vue

Publié:
26 Mai 2003 à 13:53
par leilka
je viens juste de tester le code que vous m'avez envoyé, mais j'ai un message d'erreur qui est le suivant:"Attempt to access uninitialized dynamic array" lorsque j'arrive a l'execution de la ligne de code :for i = O to Ubound(tCol)...donc a mon avis il faut redefinir les tableaux de maniere dynamique, non?et sinon dans le code, la partie "else" ne contient rien, est ce normal ??
Re: vue

Publié:
26 Mai 2003 à 16:08
par philippeG
Bonsoir1/c'est parce que le tableau tCol n'est pas définie. Je ne vois pas de déclaration des variables tCol et TabRes et il faut que les variables soit déclarées au préalable pour pouvoir utiliser redim le plus simple est déclaré les variables en début de scriptdim tCol() as string dim tabres() as stringSi vous testez le script routine par routine il faut bien sur déclarer les différentes variables à chaque fois 2/La partie else ne comprends pas de code car on est dans le cas ou les titres des colonnes dans excel et dans notes sont différents on n'ajoute pas le titre de la colonne dans le tableau tabRes.C'est vrai que dans ce cas le else est facultatif (et même inutile) mais j'ai l'habitude de le mettre afin me repérer ans plus facilement dans mes scripts
Re: vue

Publié:
27 Mai 2003 à 09:28
par stephy
en fait, il faut redefinir les tableaux pour que ca soit des tableaux dynamiques... en les redefinissants, ca marche.Mais il reste malgré tout certains problemes d'exportation de données... Je n'arrive pas a trouver le code qui permet d'exporter des données de Notes a Excel..
Re: vue

Publié:
27 Mai 2003 à 10:33
par philippeG
bonjour leika ou stephyvas faire un tour un peu plus bas sur ce forum (question export vers excel de WKTFE du 25-05-2003 22:55) il y a un code de Stephane Maillard qui exporte vers excel.Sinon la question d'export vers excel a été traitée de nombreuses fois sur ce forum
Re: vue

Publié:
27 Mai 2003 à 12:26
par FPTGP
Je vais poser une question stupide mais tant pis !Ce code : où le met-on ?On l'affecte à un bouton d'action non ?(J'ai honte)Olivier