traitement valeurs sélectionnées tableau array avec view

Répondre
forairinfo
Messages : 15
Enregistré le : ven. avr. 13, 2007 10:59 am
Localisation : pays de loire

traitement valeurs sélectionnées tableau array avec view

Message par forairinfo » jeu. juin 07, 2007 9:28 am

Bonjour, :D

quelqu'un sait-il comment récupérer les données d'un tableau de type array lorsqu'elles sont visibles avec la méthode view :?:

Chaque élément pouvant être sélectionné, il semble logique que l'on puisse exploiter la sélection après avoir validé et fermé la fenêtre view ... :?

Si quelqu'un peut m'aider

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » jeu. juin 07, 2007 8:47 pm

Bonsoir :wink:

On peut accéder aux valeurs d'un tableau soit individuellement soit par le parcours des données qu'il contient :

Code : Tout sélectionner

method pushButton(var eventInfo Event)
Var
	Tab1 array[] string
	Tab2 dynarray[] string
	s String
	I Longint
EndVar

;// Exemple avec un tableau simple indicé
;// En Opal le premier indice d'un tableau est 1 et non 0

Tab1.addLast("valeur 1")
Tab1.AddLast("valeur 2")

Tab1.view() ;// <= uniquement en lecture !

msginfo("Vue de Tab1[2]",Tab1[2])

;// Exemple avec un tableau associatif (Clé => valeur)

Tab2["Test1"] = "Ma valeur 1"
Tab2["Test2"] = "Ma valeur 2"

Tab2.view() ;// <= uniquement en lecture !

msgInfo("Vue de Tab2[Test2]",Tab2["Test2"])

;// Exemples de parcours de tableaux

msginfo("Message :","Exemple de parcours d'un tableau indicé")

;Pour un tableau indicé
For I from 1 to Tab1.size()
	msgInfo("Vue de la valeur "+StrVal(I),Tab1[I])
EndFor

msginfo("Message :","Exemple de parcours d'un tableau associatif")

;Pour un tableau associatif (dynarray en OPAL)
Foreach s in Tab2
	msgInfo("Vue du contenu de "+s,Tab2[s])
EndForEach

endMethod
Est-ce plus clair ? N'hésite pas si ce n'est pas le cas. Une bonne compréhension de l'utilisation des tableaux permet de simplifier véritablement la programmation

forairinfo
Messages : 15
Enregistré le : ven. avr. 13, 2007 10:59 am
Localisation : pays de loire

Message par forairinfo » ven. juin 08, 2007 4:52 pm

:D Merci de ta réponse Come,

mais ce n'est pas ce que j'attendais. :?

En clair, je m'interroge s'il existe un moyen de traiter les variables d'un tableau à partir de la fenêtre ouverte par la méthode View.

Je sais que l'on ne peux pas modifier les valeurs d'un tableau avec view mais peut-on les récupérer à partir de la sélection faite sous View ?

En effet, les éléments visibles à partir de View sont sélectionnables (1ere colonne), mais je ne vois pas comment traiter ces sélections.

Actuellement, lorsque je veux récupérer une variable sélectionnée d'un tableau, je suis obligé de passer soit par la création d'une fiche soit par un PopUpMenu.

Mais dans le PopUpMenu, l'on ne peut pas sélectionné plusieurs données. :shock:

Vois tu ce que je veux dire ? :D

Côme
Site Admin
Messages : 855
Enregistré le : sam. sept. 14, 2002 10:41 pm
Localisation : Igny (Essonne)

Message par Côme » ven. juin 08, 2007 8:16 pm

Salut :wink:

Avec view() tu ne peux rien obtenir car OPAL est interrompu tant que la fenêtre view est ouverte (cf aide en ligne).
Pour ton souci de sélection multiple une piste rapide est d'utiliser l'objet ActiveX Liste.

Exemple :

- Tu poses un tel objet ActiveX (voir la barre d'outils "Contrôle OLE") Liste sur ta fiche et tu le nommes Test_Liste. Dans ses propriétés tu mets MultiSelect à True.
- tu poses 2 boutons sur la fiches que tu codes comme suit :

pushbutton 1 :

Code : Tout sélectionner

method pushButton(var eventInfo Event)
Var	
  T dynarray[] string
EndVar

T["un"]="Valeur 1"
T["deux"]="Valeur 2"
T["trois"]="Valeur 3"
T["quatre"]="Valeur 4"

Foreach s in T
  Test_Liste.addString(T[s])
EndForeach

endMethod
pushbutton 2 :

Code : Tout sélectionner

method pushButton(var eventInfo Event)
Var
  s string
EndVar

s = Test_Liste.GetMultiSelAsCDL()   
s.view()

endMethod
Maintenant tu exécutes la fiche tu cliques sur le bouton 1 ce qui te remplit ta liste puis tu fais une sélection multiple (avec CTRL par exemple) puis tu cliques sur le bouton 2. Ceci t'affiche une chaine contenant les indices de ta sélection, séparés par des virgules. Attention cette fois les indices commencent à zéro.

Bon test :D

forairinfo
Messages : 15
Enregistré le : ven. avr. 13, 2007 10:59 am
Localisation : pays de loire

Message par forairinfo » sam. juin 09, 2007 1:24 am

Très très bien.... :D :D

Première fois que j'utilise les activeX. :oops:

A ma décharge, jusqu'à la version 8, je n'avais pas trouvé d'aide sur les activeX.

Je constate qu'il en existe dans la version 10, dommages elle est en Anglais. :evil:

Je vais creuser de ce côté.

Merci Come. :!: :D

Répondre