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

Flex Discussion :

AdvancedDataGrid ajuste affichage cellule


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Par défaut AdvancedDataGrid ajuste affichage cellule
    Bonjour,

    J`utilise présentement l`outil "AdvancedDataGrid" pour gérer un calendrier de chargement des transports. Les lignes représentent les heures du jour et les colonnes les dates de chargement.

    Exemple:


    Heure 2009-12-02 2009-12-03 2009-12-04
    08:00 --valeur1-- --valeur2-- --valeur3--
    08:30 --valeur4-- --valeur5-- --valeur6--

    Présentement j`utilise "itemRenderer" avec une classe pour contrôler la couleur de fond de chacune des cellules de la grille en fonction du type de transport. Si il n'y a pas de transport pour cette heure et ce jour la cellule demeure inchangée.

    Mon besoin provient du fait que je peux avoir plus de un transport pour une même heure+date, je voudrais donc pouvoir contrôler la cellule et la diviser en plusieurs couleurs; une couleur par type de transport. Je ne sais pas si cela est possible mais je pense qu`il faudrait que la cellule soit un genre d`éditeur HTML.

    Merci de votre attention.

  2. #2
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Salut,

    dans ton itemRenderer il te faut placer les éléments dont tu as besoin , par exemple 2 Hbox qui prennent soit toutes les 2 la meme couleur de fond ou bien deux couleurs différentes pour afficher ta séparation.

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Par défaut Précision sur les solutions possibles
    Bonjour,

    Merci pour votre réponse, je pense que votre solution est la bonne mais je dois vous expliquez le contexte de l`application.

    Premièrement les colonnes de ma grille sont générées de façon dynamique comme le montre le code suivant:

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    			private function addGrp ( group:Array, grpentete:String, champ1:String, champ2:String, aligne:String, color:Number, isStyle:Boolean ): void
    			{
     
    	  		var grp      : AdvancedDataGridColumnGroup  = new AdvancedDataGridColumnGroup();	
      			var col1     : AdvancedDataGridColumn       = new AdvancedDataGridColumn();
    			var col2     : AdvancedDataGridColumn       = new AdvancedDataGridColumn();  
     
    			grp.headerText = grpentete;
    			grp.editable   = false;
    			grp.setStyle("textAlign", aligne);
    	  		grp.setStyle("fontSize", 14);
     
    			col1.dataField  = champ1;
    	  		col1.headerText = "Client";
    			col1.editable   = false;
     
    	  		col1.setStyle("fontSize", 10); 
    			col1.setStyle("textAlign", aligne); 
    			col1.setStyle("color", color);
     
    			if (isStyle == true)
    			{
    				col1.styleFunction = colIsWorking;	
    			}
     
     			col1.itemRenderer  = new ClassFactory(gridFormat);
     
    			col2.dataField     = champ2;
    			col2.headerText    = "Consommateur";
    			col2.editable      = false;
     
    	  		col2.setStyle("fontSize", 10);						
    			col2.setStyle("textAlign", aligne); 
    			col2.setStyle("color", color);
     
    			if (isStyle == true)
    			{
    				col2.styleFunction = colIsWorking;	
    			}
     
    		            col2.itemRenderer  = new ClassFactory(gridFormat); 			
     			grp.children       = [col1, col2];
     
    			group.push( grp ) ;
     
    			}
    Et voici le code de la classe utilisé pour le renderer.

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    package vues {
     
        // myComponents/CellField.as
        import mx.controls.*;
        import mx.controls.dataGridClasses.DataGridListData;
        import mx.core.*;
     
        public class gridFormat extends TextArea
        {
     
    	    private var tempBGColor:Number;
    	    private var hauteur:Number;
    	    private var tempStyle:String; 
     
            // Define the constructor and set properties.
            public function gridFormat() {
                super();
                tempBGColor = getStyle("backgroundColor");
                tempStyle   = getStyle("borderStyle");
                hauteur     = height;  
            }
     
            // Override the set method for the data property.
            override public function set data(value:Object):void {
     
                super.data = value;
                setStyle("borderStyle", tempStyle);            
                setStyle("backgroundColor", tempBGColor); 
                height     = hauteur;
     
                if (value != null)
     
                {
     
                    text = value[DataGridListData(listData).dataField];
     
                    if( text != "" && text.length > 0 )
     
                    {
                        height=40;
                        setStyle("backgroundColor", 0xFF0000);
                    }
                }
     
                else
                {
                    // If value is null, clear text.
                    text= "";
                }
     
                super.invalidateDisplayList();
     
            }
        }
    }
    Donc pour moi deux solutions sont peut être possible:

    1: Créer plusieurs renderers dans ma fonction addGrp en utilisant la classe AdvancedDataGridItemRenderer et changer à la volée la valeur dans la colonne en utilsant la classe gridFormat ou labelFunction. (Si vous avez un example de code pour gérer la classe AdvancedDataGridItemRenderer ce serait très utile pour moi)

    2: Ou bien générer à la volée dans la classe gridFormat le renderer et encore la je ne sais pas si celà est possible.

    Merci de votre attention.

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

Discussions similaires

  1. [XL-2007] Affichage cellules vide
    Par Pascal26 dans le forum Excel
    Réponses: 3
    Dernier message: 06/04/2010, 16h55
  2. Ajustement de cellules fusionnées
    Par takamo dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/06/2008, 14h09
  3. Affichage cellule à cellule
    Par PyMon dans le forum Excel
    Réponses: 10
    Dernier message: 21/07/2007, 07h58
  4. Ajustement de cellules fusionnées
    Par cwain dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/09/2006, 10h00
  5. [Automation Excel] ajuster des cellules excel
    Par willich dans le forum Access
    Réponses: 4
    Dernier message: 10/10/2005, 10h04

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