Toutes mes réponses sur les forums
-
AuteurRéponses
-
olala
MembreOk ci-joint mon fichier
olala
MembreOk merci pour vos réponses à tous les 2 !
Merci beaucoup pour les explications du code Merlin, c’est beaucoup plus clair maintenant.
Mais ca ne marche pas dans mon fichier…1er cas : Dans ma fenêtre de propriétés de ma liste déroulante, voilà ce que je fais pour être sûr :
– Je ne touche à rien dans l’onglet “Options”
– Dans l’onglet “Format”, je metsCode:selectme()dans le “Script de touches personnalisé”
– Dans l’onlget “Actions”, sélectionner le déclencheur, je laisse “Champ désactivé”, dans sélectionner l’action, je mets Executer un script Javascript et je fais Ajouter et je colle mon script2e cas : J’ai également essayer de mettre le script directement dans les scripts du documents, mais cela ne marche pas non plus…
Est-ce que je fais qqchose de mal ?
Dans le 1er cas, quand j’ouvre le fichier et que je veux ouvrir ma liste déroulante, elle est bloquée, rien ne s’affiche
Dans le 2e cas, ma liste déroulante n’affiche que des “undefined”olala
MembreEt est-ce qu’il ne serait pas possible de faire une boucle comme ci-dessous, pour ne pas à avoir à définir de valeur d’exportation ? :
Code:function selectme() {
if (!event.willCommit) {for (var k = 0 ; k < fillarr.length ; k++) {
if (fillarr[k]=this.getfield(“RESTO”).getSelectedItem()) {
this.getField(“Adresse”).value = datarr[k][1] ;
this.getField(“Mail”).value = datarr[k][2] ;
}
}
}
}(Evidemment, j’ai essayé, ca ne marche pas..)
olala
MembreBonjour bebarth,
Merci de ta réponse.
Voici le code que j’ai trouvé, réalisé par Merlin il me semble :Code://this.importTextData();var p = this.getDataObject(this.dataObjects[0].name)
var fi = this.getDataObjectContents(p.name)
var fit = util.stringFromStream(fi)
var datarr1 = fit.split(“n”)var datarr = new Array()
for (var i = 0 ; i < datarr1.length ; i++) {datarr[i] = datarr1[i].split("t")} var fillarr = new Array() ; for (var j = 1 ; j < datarr.length ; j++) { fillarr[j] = [datarr[j-1][0], j] ;}
this.getField(“RESTO”).setItems(fillarr) ;function selectme() {
if (!event.willCommit) {
this.getField(“Adresse”).value = datarr[event.changeEx][1] ;
this.getField(“Mail”).value = datarr[event.changeEx][2] ;
}
}Le souci est que je dois rentrer et attribuer manuellement les noms de ma liste déroulante ainsi que leurs valeurs d’exportation (via options dans les propriétés de ma liste déroulante).
Et si mes valeurs d’exportation que je rentre ne correspondent pas au numéro de ligne dans laquelle elle se trouve dans mon fichier excel, tout se mélange.Par ailleurs, est-ce la fonction
Code:this.getField(“RESTO”).setItems(fillarr) ;n’est pas censée remplir automatiquement ma liste déroulante avec mes en-têtes de mon fichier Excel ? (que j’ai tranformé en .txt et mis en PJ du doc).
olala
MembreEt de la même façon, à quoi servent les valeurs d’exportation définies dans les propriétés de la liste déroulante ? Je ne comprends pas bien..
olala
MembreBonjour Merlin,
Merci beaucoup pour ta réponse rapide.
EN cherchant, j’ai effectivement trouvé et réussi à aadapter le script dont j’avais besoin à mon cas et cela marche très bien !Il y a juste une ligne, qui marche, mais que je ne comprends pas bien. Si tu pouvais donner quelques explications sur la syntaxe, ce serait sympa. Je ne pense pas avoir besoin de noter tout le code ici.. :
Code:for (var j = 0 ; j < datarr.length ; j++) { fillarr[j] = [datarr[j][0], j] ;}
this.getField(“Resto”).setItems(fillarr) ;sachant que datarr et fillarr sont définis comme des tableaux. Je comprends la boucle, mais pas ce qui suit :
Code:{ fillarr[j] = [datarr[j][0], j] ;}[font=verdana, arial, helvetica, sans-serif]Le [datarr[j][0],j] n’est pas du tout clair pour moi[/font]
[font=verdana, arial, helvetica, sans-serif]De la même façon, à quoi sert le[/font]Code:this.getField(“Resto”).setItems(fillarr)Merci !
-
AuteurRéponses