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 :

Afficher la date en français dans un dataGrid


Sujet :

Flex

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut Afficher la date en français dans un dataGrid
    Bonjour à tous

    Je suis débutant en flex et AS3 et je cherche à faire la chose suivante :

    j'ai un dataGrid et l'orsque je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //  je fournis au dataProvider de mon datagrid une arrayList -->[array]
    myDatagrid.dataProvider=array 
    // Ensuite je veux qu'on me renvoie les items de ma collection
    myDatagrid.itemRenderer()
    les items sont là mais la date est en Anglais puisque le un itemRender ne fait que du rendu.

    Existe-t-il un moyen de retourner la date au format suivant JJ/mm/aaaa

    merci d'avance

    Bilou690

  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
    Points : 3 189
    Points
    3 189
    Par défaut
    Salut,

    ton bout de code ne fait pas état d'utilisation de date, mais tu peux utiliser la classe DateFormatter

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Merci pour ta réponse

    J'ai déjà envisagé cette solution mais le problème c'est que coté mxml la balise <mx:dateFormatter> est introuvable qd j'utilise l'auto complétion. Est-ce bien normal ? Pour info j'utilise flex builder 3.

    La solution serait alors de créer un dateFormatter en AS j'ai créer la méthode suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	public function dateFormat(pDate:Date): String {
     
    					 var lDf : DateFormatter=new DateFormatter();
    					 lDf.formatString="DD/MM/YYYY";
    					 var lDateFormatee : String=lDf.format(pDate); 
    					return lDateFormatee;
     
    				}
    voici mon code ça sera plus simple je pense

    coté mxml :

    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
     
    <mx:DataGrid x="31" y="57" width="582" height="180" id="myDataGrid" dataProvider="{array}" >
    				<mx:columns>
    					<mx:DataGridColumn headerText="Nom" dataField="nom"/>
    					<mx:DataGridColumn headerText="Prénom" dataField="prenom"/>
    					<mx:DataGridColumn headerText="Age" dataField="age"/>
    					<mx:DataGridColumn headerText="Date de Naissance"  dataField="dateNaiss"/>
    					<mx:DataGridColumn headerText="Sexe" dataField="sexe">
    					<mx:itemRenderer>
            				<mx:Component>
                				<mx:Label x="25" y="10" text="{data.sexe == true ? 'Masculin' : 'Féminin'}"/>
            				</mx:Component>
        				</mx:itemRenderer>
    				</mx:DataGridColumn>
    				</mx:columns>				
    			</mx:DataGrid>
    maintenant côté AS :

    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
     
    	import mx.collections.ArrayCollection;
    				import proto.flex.web.Personne;
    				import mx.rpc.events.FaultEvent;
    				import mx.rpc.events.ResultEvent;
    				import mx.formatters.DateFormatter;
     
     
     
    				[Bindable]
    				private var array:ArrayCollection=new ArrayCollection();
     
     
    				public function callService(): void{
    					ro.LireSaisie(txtNom.text,txtPrenom.text, txtAge.text,df.selectedDate, Sexe.selectedValue);
    				}
    				public function onResultSuccess(event:ResultEvent): void{
    					var result:ArrayCollection=(event as ResultEvent).result as ArrayCollection ;
           				if (result) {
           					for each(var item:Object in result){
           						array.addItem(Personne(item));
            				}
            				myDataGrid.itemRenderer;
            			}
    				}
    				/*public function displaySex(pSexe:Boolean):String {
    					if(pSexe==true){
    						return " masculin";
    					}else{
    						return " féminin";
    					}
    				}*/
    				public function dateFormat(pDate:Date): String {
     
    					 var lDf : DateFormatter=new DateFormatter();
    					 lDf.formatString="DD/MM/YYYY";
    					 var lDateFormatee : String=lDf.format(pDate); 
    					return lDateFormatee;
     
    				}
     
    				public function onResultFault(event: FaultEvent)  : void{
    					lblResult.text=event.fault.message;
    				}
    questions :
    comment appelé ma méthode dateFormat() à partir du mxml?
    puis-je avoir de l'aide pour créer un éventuelle custom itemRender pour le champs "dateNaiss" pour l'avoir au format JJ/MM/AAAA.

    par avance un grand merci

    Bilou

  4. #4
    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
    Points : 3 189
    Points
    3 189
    Par défaut
    Tu peux utiliser le labelFunciton de ton DataGridColumn

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Re

    merci pour ta rapidité ça fait plaisir

    suite à ton dernier post j'ai fait la chose suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <mx:DataGridColumn headerText="Date de Naissance"  dataField="dateNaiss" labelFunction="{dateFormat(dateNaiss)}"/>
    il y a des erreurs de compilation :

    Contrainte implicite d'une valeur du type String vers un type sans rapport Function.
    accès à la propriété non définie dateNaiss.


    Faut-il faire un cast ?
    la propriété dateNaiss existe bien ? je ne comprends pas

    merci à toi

    bilou

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Points : 417
    Points
    417
    Par défaut
    Tu dois écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <mx:DataGridColumn headerText="Date de Naissance"  dataField="dateNaiss" labelFunction="{dateFormat}"/>


    Tu viens du Java non? pas habitué à mettre des méthodes / closure en paramètre ? [oui, oui, ceci est un troll]

    Plus sérieusement : pense à lire la doc, labelFunction est très bien documenté

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    je dois commencé à te prendre la tête

    voilà ce que j'ai écrit précisément :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <mx:DataGridColumn headerText="Date de Naissance"  dataField="dateNaiss"
    						labelFunction="{dateFormat}"/>
    le résultat c'est que je n'ai plus d'erreur cependant qd je valide mon formulaire et que je passe sur l'onglet liste pour voir le résultat : c'est le drame la datagrid à disparu et mon appli est complètement gelé je suis totalement bloqué.

    merci de ton aide


    ps : je ne peux pas debugger cote flex pour voir ce qu'il se passe a priori il faut une version spécial debug de flash mais j'ai une erreur qd j'execute l'install

    et oui pour info je viens bien du java tu as vu juste
    encore merci

    bilou

  8. #8
    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
    Points : 3 189
    Points
    3 189
    Par défaut
    tentes de retélécharger le plugin Flash Debugger pour le browser que tu utilises car sans ca , c'est compliqué de travailler...

    sinon, en effet, lit la doc officiel, tu comprendras mieux ce que tu fais

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Hello,

    Tout d'abord je voulais vous remercier de prendre le tps de m'aider.

    suite à la réponse de jim_nastiq je vous décrire mon environnement de travail :
    je travaille sous eclipse et lorsque je clique droit sur mon projet ensuite "debug as" application flex j'ai l'erreur suivante :
    C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll

    Flex Builder cannot locate the required debugger version of Flash Player. You might need to install the debugger version of Flash Player 9 or reinstall Flex Builder.
    j'ai réinstaller le plugin debug flash je suis allé au bout de l'install mais sans succès .

    (version 9 for ie )alors que je crois que j'ai la version 10 peut etre qu'il y a incompatibilité

    que faire je ne vois pas de solution

    merci

    cordialement

    bilou

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    j'ai avancé cet aprèm c'est positif

    j'ai décidé d'ignorer le message d'erreur et j'ai forcé le debuggage et voilà le résultat :

    TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
    je ne comprends pas pourquoi il dit que mon objet [personne] est nul j'ai pourtant renseigner tous les champs de mon formulaire

    je passe à coté d'un truc bête mais je vois pas...

    merci

    bilou

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Bonjour,

    A quel endroit du code dit il ça ?

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    A priori c'est à ce niveau là :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDataGrid.itemRenderer;
    qd je visualise le contenu de myDataGrid il m'affiche nul je ne comprends pas vraiment ce qu'il se passe.

    a priori il dit que la datagrid est nulle pourtant le dataprovider est renseigné la ça devrait me retourner l'item en question. c'est vraiment au moment du rendu de l'item qu'il se passe un truc bizarre...

    merci

  13. #13
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Je te conseille de supprimer cette ligne car elle est inutile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDataGrid.itemRenderer;
    Ensuite je pense que myDataGrid n'est pas encore instancié au moment ou tu appelles ta méthode. Et pourquoi veux tu récupérer le rendu de l'item ? En fait je n'ai pas vraiment compris ce que tu voulais.

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    je m'enlise dans mon pb ...

    je dois peut être envisagé de résoudre mon pb autrement. Du côté d'adobe on parle de la création d'un custom itemRenderer. J'avoue que j'essaye de comprendre cette solution depuis lundi mais elle est un peu balaise pour moi à l'heure d'aujourd'hui.

    si quelqu'un pouvait m'expliquer brièvement comment étendre un composant du genre label qui afficherait lui-même la date en français dans la dataGrid. ça serait super gentil je crois que c'est peut être la clé du pb.

    merci à vous

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    pour répondre à ta question ellene j'essaye juste de convertir une date du format us au format français.

    j'ai remarqué que si je n'ajoute pas cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDataGrid.itemRenderer;
    la datagrid restait vide je ne visualise pas le résultat de ma saisie qd j'ai validé mon formulaire.

    merci pour ton aide j'apprécie bcp

  16. #16
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Mais tu y es déjà à ta solution. Il faut juste enlever la ligne que je t'ai cité précédemment.

    Et puis maintenant que je regarde bien ton code enlève les accolades dans labelFunction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <mx:DataGridColumn headerText="Date de Naissance"  dataField="dateNaiss"
    						labelFunction="dateFormat"/>
    Tu n'as pas besoin d'un itemRenderer.

  17. #17
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Citation Envoyé par bilou69 Voir le message
    pour répondre à ta question ellene j'essaye juste de convertir une date du format us au format français.

    j'ai remarqué que si je n'ajoute pas cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myDataGrid.itemRenderer;
    la datagrid restait vide je ne visualise pas le résultat de ma saisie qd j'ai validé mon formulaire.

    merci pour ton aide j'apprécie bcp
    Ok pour cela il faut que tu nous dises à quel moment tu appelles ta fonction de chargement. Je te conseillerai de le mettre dans la fonction creationComplete de ton application par exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <mx:Application creationComplete="callService()">

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Tu dois croire que je suis bouché

    j'ai enlevé la ligne dont tu m'as parlé. ainsi que les accolades et qd je fais tourné l'appli

    ça plante pour lui la colonne 4 -->dateNaiss est null.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public function onResultSuccess(event:ResultEvent): void{
    					var result:ArrayCollection=(event as ResultEvent).result as ArrayCollection ;
           				if (result) {
           					for each(var item:Object in result){
           						array.addItem(Personne(item));
            				}
            			}
    			}
    j'appelle ma fonction de chargement dans la méthode onResultSuccess je rempli ma collection et je la fournis au dataprovider.

    voilà tout

    merci

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2009
    Messages : 84
    Points : 37
    Points
    37
    Par défaut
    Re,

    En fait ellene si t'as question était à quel moment j'alimente le dataProvider du datagrid c'est coté mxml en fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <mx:DataGrid x="31" y="57" width="582" height="180" id="myDataGrid" dataProvider="{array}"
    la variable array c'est ma collection de personne côté AS on la retrouve ici
    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
    	
    				[Bindable]
    			private var array:ArrayCollection=new ArrayCollection();
    				
    				
    				public function callService(): void{
    					ro.LireSaisie(txtNom.text,txtPrenom.text, txtAge.text,df.selectedDate, Sexe.selectedValue);
    				}
    				public function onResultSuccess(event:ResultEvent): void{
    					var result:ArrayCollection=(event as ResultEvent).result as ArrayCollection ;
           				if (result) {
           					for each(var item:Object in result){
           						array.addItem(Personne(item));
            				}
            			}
    				}
    j'espère que ça t'aidera à m'aider encore merci

  20. #20
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Tu devrais essayer de debugger avec Eclipse pour voir d'où vient ton problème. J'ai encore des questions :
    Ta fonction dateFormat ressemble à quoi ?
    Il faudrait que tu regardes les valeurs qui sont en entrée et tu auras ta raison.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [ASP.Net] Afficher ou non l'heure dans un datagrid
    Par User.Anonymous dans le forum ASP.NET
    Réponses: 6
    Dernier message: 05/03/2008, 16h26
  2. Afficher la date du jour dans une formule
    Par Yodaf dans le forum SharePoint
    Réponses: 3
    Dernier message: 06/08/2007, 16h15
  3. [SQL] date en français dans un tableau
    Par chouchouboy dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 25/06/2006, 23h56
  4. afficher la date du jour dans un champ date
    Par pierrot67 dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/03/2006, 22h32
  5. [WebForms]Afficher telle ou telle image dans un datagrid
    Par Emdis dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 30/05/2005, 19h02

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