cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jmc.artig...@free.fr
Subject Re: Conversion d'un champ date en flowscript?
Date Fri, 17 Nov 2006 07:00:49 GMT
Bonjour Eric,

La seule solution 'simple' que je vois, serait de mettre le format de date que
tu veux en session lorsque tu construis ton formulaire, avec quelque chose
comme (dans le flowscript, en javascript):

cocoon.session.setAttribute("[nom_du_format_de_date]", [format_de_date]);
form.showForm("[nom_du_formulaire_à_construire_et_afficher]");

Puis de récupérer ce format dans le code du flowscript après le submit de ton
formulaire pour l'appliquer :

var mon_format_date = cocoon.session.getAttribute("[nom_du_format_de_date]");
var formatter = new java.text.SimpleDateFormat(mon_format_date);

Ou bien tu peux mettre le format date dans un champ caché de ton formulaire :

form.lookupWidget("nom_du_widget_caché_de_format_date").setValue([format_de_date]);
form.showForm("form-"+reportname+"-jx.html");

Puis récupérer ce format après le submit avec les valeurs du formulaire, pour
l'appliquer :

var mon_format_date =
form.lookupWidget("nom_du_widget_caché_de_format_date").value;
var formatter = new java.text.SimpleDateFormat(mon_format_date);

Dans les deux cas, tu devrais pouvoir "fixer" le format que tu veux dès la
construction du formulaire.

Cordialement,
Jean-Michel ARTIGNAN

Selon Eric Cambray <ec@bluexml.org>:

> Bonjour,
> et merci pour cette réponse;  cependant vu que ma fonction est générique
> je ne peux appliquer un formatage de date comme cela. En effet pour un
> autre formulaire je pourrais avoir besoin d'un autre formatage, d'où
> l'utilité du convertor sur le formulaire lui même.
>
> Si je pouvais récupérer la date déjà formatée ça me semblerait logique,
> au pire récupérer le format du convertor et utiliser votre méthode. Mais
> je ne sais comment faire pour récupérer le pattern définit dans le
> convertor...
>
> Quelqu'un aurait une idée?
>
> Merci.
>
> Eric Cambray
>
> jmc.artignan@free.fr a écrit :
> > Bonjour Eric,
> >
> > Je ne suis pas sûr de ma réponse mais pour une fois que j'ai une idée de
> > solution à proposer je me lance ...
> >
> > Dans ton flowscript (en javascript), tu fais sûrement quelque chose comme :
> >
> > var monWidget = form.lookupWidget([id_du_widget]);
> > var monWidgetValue = monWidget.value;
> >
> > Là, comme ta méthode est générique, avant d'appliquer un format de date, il
> > faudrait quelque chose comme:
> >
> > if(monWidgetValue instanceof java.util.Date) {
> > }
> >
> > Et dans la condition tu peux appliquer un format date:
> >
> > var formatter = new java.text.SimpleDateFormat(["yyyy-MM-dd"]);
> >
> > var maDateFormatee = formatter.format(monWidgetValue);
> >
> > Et ça devraît être au bon format.
> >
> > Donc le code, pour se résumer (on peut sortir les définitions de la
> condition
> > 'if'):
> >
> > var formatter = new java.text.SimpleDateFormat(["yyyy-MM-dd"]);
> > var maDateFormatee;
> >
> > var monWidget = form.lookupWidget([id_du_widget]);
> > var monWidgetValue = monWidget.value;
> >
> > if(monWidgetValue instanceof java.util.Date) {
> >   maDateFormatee = formatter.format(monWidgetValue);
> > }
> >
> > J'ai essayé avec cocoon-2.1.9, et ça devrait marcher.
> > Cordialement,
> > Jean-Michel ARTIGNAN
> >
> > Selon Eric Cambray <ec@bluexml.org>:
> >
> >
> >> Bonjour,
> >> travaillant actuellement sur un cocoon 2.1.9 dev (et pas de possibilité
> >> de le changer) j'ai un problème avec un champ date et la récupération de
> >> sa valeur en flowscript :
> >> Voici la définition du champ avec un convertor :
> >> <fb:value id="startDate" path="startDate">
> >>     <fd:convertor datatype="date">
> >>         <fd:patterns>
> >>             <fd:pattern>yyyy-MM-dd</fd:pattern>
> >>         </fd:patterns>
> >>     </fd:convertor>
> >> </fb:value>
> >>
> >> Voici l'appel dans le flowscript (placé dans une fonction générique qui
> >> va parcourir l'ensemble de mes widgets de mon formulaire) :
> >> filterWidget.getValue();
> >>
> >> Cet appel me donne une date sous la forme :
> >>
> >> "Fri Nov 3 00:00:00 CET 2006" et non 2006-11-03
> >>
> >> Rien à voir avec mon convertor donc. Existe-t-il une façon de forcer à
> >> avoir le bon convertisseur lors d'un getValue()? Ou d'utiliser le
> >> convertisseur pour transformer ma date dans le bon format?
> >> La fonction étant très générique je ne peux réaliser une transformation
> >> de date sans connaitre son format de départ et le format voulu.
> >>
> >> Merci.
> >>
> >> Eric Cambray
> >>
> >> ---------------------------------------------------------------------
> >> Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
> >> Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
> >> Autres commandes : mailto:users-fr-help@cocoon.apache.org
> >>
> >>
> >>
> >
> >
> >
> > ---------------------------------------------------------------------
> > Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
> > Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
> > Autres commandes : mailto:users-fr-help@cocoon.apache.org
> >
> >
> >
>
>
> ---------------------------------------------------------------------
> Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
> Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
> Autres commandes : mailto:users-fr-help@cocoon.apache.org
>
>



---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message