Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2414 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3
Page Suivante
Auteur Sujet :

Greasemonkey, traiter les données d'un tableau

n°2218510
ordimans
Posté le 04-02-2014 à 10:56:21  profilanswer
 

Reprise du message précédent :
Re
 
Bon j'ai réussi avec les variables Greasemonkey,ça marche pas trop mal.
Un peu de mal car j'avais mis mes GM_setValue dans le GM_xmlhttprequest qui était dans le look, et du coup ça marchait pas.
Car en faite le temps que Google réponde, le script continue, et donc, quand la première demande répondait, on fait le GM_setValue("test"+i,response), sauf que le i il est déjà au bout de la loop.
Du coup on faisait 8 fois le setValue avec test8 par exemple.
 
J'ai eu un peu de mal avec ça.
Et en créant une fonction rien que pour ça ça marche nickel. Je passe ma variable ou nom de variable à définir. Donc ça fait x appels de la fonction, mais ça marche nickel.
 
 
Bref dans quelques jours ça sera terminé.
 
Sinon autre question, y a une méthode pour compter le nombre d'occurrence rapidement ?
Genre liste déroulante, je veux le nombre d'occurrence qui contiennent CM.
J'ai fait ça, une boucle pour parcourt tout les éléments, et je test et incréments un compteur.
 
 

Code :
  1. for (j=0; j<listeAffaireBis.options.length;j++) {
  2.      if (listeAffaireBis.options[j].innerHTML.indexOf('CM') >= 0)   countCM++;
  3.                      }


Message édité par ordimans le 04-02-2014 à 10:57:09
mood
Publicité
Posté le 04-02-2014 à 10:56:21  profilanswer
 

n°2218543
MaybeEijOr​Not
but someone at least
Posté le 04-02-2014 à 14:13:08  profilanswer
 

Peut-être :
 

Code :
  1. listeAffaireBis.textContent.match(/CM/g).length


 
EDIT : utilise /gi si tu veux que ça ne prenne pas en compte la casse.


Message édité par MaybeEijOrNot le 04-02-2014 à 14:14:43
n°2220537
ordimans
Posté le 23-02-2014 à 23:14:00  profilanswer
 

Yop
 
Bon et bien, sacré Script maintenant :D
2000 lignes :o
 
Quelques améliorations faites, afin de ne pas rester bloquer par exemple si on trouve pas, et surtout un gros cas non géré.
 
Finalement, je peux avoir deux champs sur le site B qui dépendent du site A. Le plus simple est d'enregistrer car je voulais dynamiquement choisir le bon mais c'est pas possible.
Donc j'ai du enregistré une autre valeur sur le SpreadSheet google, et j'ai utilisé une bidouille pas super propre en faite.
 
J'explique :
 
J'avais une association crée entre un champA et un champB sur chaque site.
Problème sur le site B, j'ai un autre champ qui peut contenir plusieurs sélections dépendant du site A.
Exemple :
Site A : j'ai Maison/Papa et Maison/Maman
Site B : Premier champ, j'aurai la correspondance de Maison, par exemple Home. et dans un autre champ (toujours liste) j'aurai .PERS-Dad et .PERS.Mom qui dépendent du site A.
 
Compris ?
 
J'étais parti pour chercher dans la liste du site B avec le Papa ou Maman, mais y a des cas où c'est totalement différent... bref...
 
Du coup, si j'ai plusieurs .PERS, j'enregistre la valeur par rapport au cliA du site A sur Google.
Et là je voulais pas rajouter une autre colonne, ou autre, j'ai donc concaténé avec cliB/.PERS(value)
 
Le problème est que je peux avoir dans cliB des / (rare mais ca arrive).
Donc pour gérer ça j'ai fait cette bidouille sur le site B.

EDIT: Bah en relisant, j'ai trouvé la solution, pour gérer ces rares Slash :
 
 if (maxTabcliB >1 && lastCell.indexOf('.CM') ) cliB = cliArrayB[0];
Dans le cas ou j'ai plus de un element et que le dernier element contient .CM (qui sera toujours compris car je le sauvegarde)
J'ai fait la même chose quelque ligne plus bas pour savoir quand chercher dans la liste et quand ne pas chercher....
 :jap:  :jap:  
 
 
EDIT2: Different de 0 ca serait mieux même.
Vu que je soustrait 1 à la longueur.
 

Code :
  1. //NEW 1.5 - Gestion du cliB qui peut contenir le CONTRAT
  2.         cliArrayISIS = cliB.split('/');
  3.         console.log("tab cliB",cliArrayB.length);
  4.         maxTabcliB = cliArrayB.length-1;
  5.         lastCell = cliArrayB[maxTabcliB];
  6.         console.log(lastCell);
  7.         if (maxTabcliB = 2) cliB = cliArrayB[0];
  8.          if (maxTabcliB >1 && lastCell.indexOf('.CM') ) cliB = cliArrayB[0];
  9.         console.log("cliB apres traitement",cliB);


 
Mais ca va pas être génial... Je réfléchis dessus actuellement.
Le plus simple, est que je crée une autre colonne dans le google.
Mais du coup, faut que je récupère deux valeurs après avec le script en une fois ca serait bien, et donc ca va être chiant...
 
 
 
 
Sinon autre problème, je peux avoir dans le cliB, un Et commercial (& )
Récupéré avec un .innerHTML ca donne un &amp; et avec un textcontent ca donne &.
Le problème est que dans le script google, je récupère mes paramètres qui sont en GET, donc il coupe au &.....
Et là j'vois pas comment faire :
-regarder si on peut passer en Post à Google Script
-remplacer le & par un caractère spécial qui me posera pas de problème ???
 
Une autre idée ?


Message édité par ordimans le 23-02-2014 à 23:21:19
n°2221886
ordimans
Posté le 08-03-2014 à 19:37:15  profilanswer
 

J'ai pu traiter les caractères spéciaux avec le & avec URLencoding.
Ca marche nickel maintenant :D
 
Petit bug d'affichage dans un cas que j'ai pas réussi à reproduire sinon tout roule :D
 
Un énorme merci pour toute l'aide que tu m'as apporté en tout cas.  :jap:  :jap:  :jap:  :jap:


Message édité par ordimans le 08-03-2014 à 19:37:38
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
décalage sur un tableau de byteVBA/PPT remplacer des données
Comparer deux listes en multicritèresl'échange des données entre une application c++ et application java
VBA - Copier données entre deux feuilles et restructurationTableau de réservations
Passage de données sans rafraichir la pageProblème reception données port serie
Etirer la formule de plusieurs lignes jusqu'en bas de mon tableau 
Plus de sujets relatifs à : Greasemonkey, traiter les données d'un tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR