IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH MX] selection.data Radio pour filter


Sujet :

Flash

  1. #1
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut [FLASH MX] selection.data Radio pour filter
    re,
    j'ai un fonction filtre qui flitre a l'interieur d'une colonne en fonction des premiers caractères saisis. elle marche très bien

    je veux l'améliorer en faisaint un choix sur la colonne a filtrer selon un groupeRadio et là prob, je ne sais pas comment passer mon param choixF

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    //FONCTION RADIO
    var choixF:String = "NOM";
     
    choixfiltre= new Object();
    choixfiltre.click = function (evt){
    	choixF = evt.target.selection.data; //valeur data du radio TYPE DECLARATION
    	filtreAssu(choixF)
    }
    radioGroupFiltre.addEventListener("click", choixfiltre);
     
    //Appel filtreALPHA
    filtreAssu = new Object();
    filtreAssu.change = function(eventObject){
    lgS = Number(filtreNomAss_txt.text.length); 
    liste_dset.filtered = true;
    liste_dset.filterFunc = function(item:Object) {
    var nomAssu = String(item.choixF)
    if(nomAssu.substring( 0, lgS ) == filtreNomAss_txt.text)
    return true; 
    else 
    return false; 
    };
    };
     
    filtreNomAss_txt.addEventListener("change", filtreAssu)
    MERCI DE VOTRE AIDE

  2. #2
    Membre chevronné Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Par défaut
    Hello

    Tu peux pas mettre des tabulations dans ton code ? dure dure la lecture là lol

    En général moi quand je teste j'utilise pas des objets pour rien .. style pour ton écouteur... tu peux utiliser directement la scène principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    var choixF:String = "NOM"; 
    var click = function (ev){
       choixF = ev.target.selection.data ;
    }
    radioGroupFiltre.addEventListener("click", this) ;
    Du coup je sais pas où est ciblée ta fonction filtreAssu.. mais cela peut aider.

    Pour le reste je trouve ton code super compliqué pour pas grand chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    //Appel filtreALPHA
    filtreAssu = new Object();
    var change = function( ev ){
         var target = ev.target ;
         var len = target.length ; 
         //??? là à partir de là faut que tu m'expliques ce que tu cherches à faire ?
         // il vient d'où liste_dset ? dure dure les noms de tes variables lol
         liste_dset.filtered = true;
         liste_dset.filterFunc = function() {
              var nomAssu = choixF ; // récupération par portée des variables
              return (nomAssu.substring( 0, len ) == target.text) ;
         }
    }
     
    txt.addEventListener("change", this)
    EKA+

  3. #3
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    j'utilise addEventListener car j'ai un calque action dédié a mon code as.

    le probleme que je rencontre est que je n'arrive pas
    récupération par portée des variables
    en effet dans la fonction
    filtreAssu.change = function(eventObject){
    la trace de choixF me renvoi undefined

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    filtreAssu = new Object();
    filtreAssu.change = function(eventObject){
     
    //liste_dset nom du composant dataSet 
    liste_dset.filtered = true;
     
    liste_dset.filterFunc = function(item:Object) {
     
    // choixF data du radio sélectionné (nom ou société)
       var eltColonne = String(item.choixF) 
    //eltColonne ensembles des items de la colonne sélectionné
    // choixF que je n'arrive pas a transmettre
     
        if(eltColonne.substring( 0, lgS ) == filtreNomAss_txt.text)
    //filtreNomAss_txt.text caractères saisis dans le TexInput
    return true; 
        else 
        return false; 
    		};
    };
     
    filtreNomAss_txt.addEventListener("change", filtreAssu)
    Je ne sais pas passer 2 param a la fonction
    filtreAssu.change = function(eventObject){
    le radio sélectionné choixF et l'entée saisie dans filtreNomAss_txt.text

  4. #4
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    code RADIO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    var choixF:String = "NOM";
    choixfiltre= new Object();
    choixfiltre.click = function (evt){
    	choixF = evt.target.selection.data; 
    }
    radioGroupFiltre.addEventListener("click", choixfiltre);
    code TxtInput
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    filtreTxt= new Object();
    filtreTxt.change = function (){
    	saisiTxt = filtreNomAss_txt.text
                    //appel fonction filtre avec passage des param
    	filtreAssu(saisiTxt, choixF)
    }
     
    filtreNomAss_txt.addEventListener("change", filtreTxt)
    fonction Filtre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    filtreAssu = new Object();
    filtreAssu = function(saisiTxt, choixF){
    	trace(saisiTxt+","+choixF);//ICI OK variables incrémentées
    //saisiTx = entrée saisies
    //choixF colonne sélectionné via radio
      lgS = Number(saisiTxt.length); 
     
        	liste_dset.filtered = true;
    		liste_dset.filterFunc = function(item:Object) {
    			var contenu = String(item.choixF)
    			trace(contenu +" "+saisiTxt); // choiF indefini !!!!!
    			if(contenu.substring( 0, lgS ) == saisiTxt)
    			return true; 
    			else 
    			return false; 
    		};
    };

  5. #5
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    le probleme est là
    liste_dset.filterFunc = function(item:Object) {
    var contenu = item.choixF
    choixF est une variable type String représentant l'intitulé de la colonne sur laquelle je veux faire mon filtre.
    or item n'attend pas un string mais une variable nom de colonne dataSet
    en effet
    si ma colonne dans le dataSet s'appele NOM
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    liste_dset.filterFunc = function(item:Object) {
    var contenu = item.NOM
    la fonction tourne, alors que si choixF = "NOM" ça marche pas!!!!

  6. #6
    Membre chevronné Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Par défaut
    Pourquoi (comme dans ce que j'ai tapé au dessus..) tu laisses pas une variable en local sur la scène principale.. qui va servir de variable d'environnement global... et qui va changer et que tu retrouveras simplement sans la cibler ?

    Pourquoi tu ciblees item.choixF alors que choixF est pas loin sur la timeLine ?

    EKA+

  7. #7
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Bonjour EKA,
    liste_dset.filterFunc = function(item:Object) {
    var nomAssu = String(item.choixF)
    -liste_dset : objet dataSet appelé

    -choixF est le nom de la colonne sur laquelle le filtre doit-être opéré(le champ du dataSet) ici une variable( NOM ou STE)

    -item les enregistrements de la collection.

    si je code en "dur" ainsi ça marche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    ...
    liste_dset.filtered = true;
    liste_dset.filterFunc = function(item:Object) {
    	if(choixF=="NOM"){
    	contenu= String(item.NOM);}
    	else{
    	contenu= String(item.STE);}
     
                                    if(contenu.substring( 0, lgS ) == saisiTxt)
    		return true; 
    		else 
    		return false; 
    ...

  8. #8
    Membre chevronné Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Par défaut
    Tu as vu mon code au dessus ?

    1 - remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(contenu.substring( 0, lgS ) == saisiTxt) return true;
    else return false;
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return (contenu.substring( 0, lgS ) == saisiTxt) ;
    2 - sinon ton DataSet moi je l'appellerai juste "myDataSet" ou "ds" .. enfin chacun son truc hein

    EKA+

  9. #9
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Tu parles de ton 1er POST,
    Je l'ai lu mais je ne m'étais pas attardé sur cette instruction, qui améliore les tps de réponses.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return (contenu.substring( 0, lgS ) == saisiTxt.toUpperCase()) ;
    Merci encore EKA

  10. #10
    Membre chevronné Avatar de ekameleon
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 401
    Par défaut
    c'est surtout plus clair pour moi.. pourquoi faire simple quand on peut faire compliqué

    c'est comme d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var speak  = function (message) {
          var txt ;
          if (message == undefined) {
               txt = "" ;
          } else {
               txt = message
          }
          trace (txt) ;
    }
    En plus simple on peut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var speak  = function (message) {
          var txt = message ? message : "" ;
          trace (txt) ;
    }
    Et encore plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var speak  = function (message) {
          var txt = message || "" ;
          trace (txt) ;
    }
    Comme quoi .. si c'est possible de faire simple.. autant le faire
    EKA+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH MX] data radio dans un fichier.as
    Par totoche dans le forum Flash
    Réponses: 10
    Dernier message: 09/11/2005, 16h28
  2. Equivalent de la commande Select de linux pour Windows
    Par bibi_64 dans le forum Windows
    Réponses: 2
    Dernier message: 18/10/2005, 09h39
  3. Problème de boutons radio pour récuperer les infos
    Par marsupilami34 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/09/2005, 11h47
  4. [FLASH MX] onClipEvent comment faire pour.....
    Par yrysa dans le forum Flash
    Réponses: 9
    Dernier message: 13/08/2004, 19h51
  5. Selection sans critères pour un publipostage
    Par Johnjohn dans le forum Access
    Réponses: 23
    Dernier message: 17/06/2003, 11h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo