- 1
[Opened] [Résolu] Petit Bug?
Posted by leodc on 08/14/2008 15:17
A priori ce serait un bug mais je voudrais confirmation, j'explique le problème
Je manipule une table avec un dao
pour afficher une ligne de cette table, j'utilise les 4 méthodes formdatafull, formcontrol, formdata et la recherche avec la méthode findAll du dao
Voici ce que j'obtiens (tous les champs de cet enregistrement étant saisis):
avec formcontrol:
id_pompage 2
id_etat_pompage 13
Rrenouvellement Non
date_etat_pompage 07/08/2008
Etat des abords
Etat de la Cloture
Etat de la bache
Etat du regard
Etat des trappes
Etat du panier degrilleur
Etat des canalisations
Etat des clapets
Etat des chaines
Etat des potences
Etat des poires
Etat des barres de guidage
Etat de l'automatisme
Etat du traitement h2s
h2s_hors_norme 1
en_service 1
Avec findAll et l'objet record:
Etat des abords: Bon
Avec formdata:
Etat des abords:
avec formdatafull
id_pompage 2
id_etat_pompage 13
Rrenouvellement Non
date_etat_pompage 07/08/2008
Etat des abords
Etat de la Cloture
Etat de la bache
Etat du regard
Etat des trappes
Etat du panier degrilleur
Etat des canalisations
Etat des clapets
Etat des chaines
Etat des potences
Etat des poires
Etat des barres de guidage
Etat de l'automatisme
Etat du traitement h2s
h2s_hors_norme 1
en_service 1
Je dois préciser que les propriété Etat... sont remplies par un choix dans une menulist mais cela fonctionne puisque les champs sont bien remplis dans la base PostgreSql...
Je demande donc confirmation
Nicolas Rion
SAS Géosphère
1 Impasse champeau
21800 Quétigny
[Opened] Re: Petit Bug?
Posted by leodc on 08/19/2008 17:10
Toujours pas d'idées
Nicolas Rion
SAS Géosphère
1 Impasse champeau
21800 Quétigny
[Opened] Re: Petit Bug?
Posted by laurentj on 08/19/2008 18:00
Salut,
disons que ton message n'est pas très compréhensible. Ça correspond à quoi toute ces données que tu nous sort ?
[Opened] Re: Petit Bug?
Posted by laurentj on 08/20/2008 14:10
$form = jForms::get('sig~'.$tableEtat, $idRecord); //Sinon création du formulaire if($form == null){ $form = jForms::create('sig~'.$this->getParam('tableEtat'), $this->getParam('id')); }
Etrange, dans un cas, tu récupères tableEtat à partir d'un paramètre, et dans un autre directement à partir d'une variable $tableEtat...
Pour le reste, comment est défini ta dao ? ton formulaire ?
[Opened] Re: Petit Bug?
Posted by leodc on 08/21/2008 08:33
Oui c'est une erreur de ma part $tableEtat et $this->getParam('tableEtat') sont identiques...
Voici ma dao et mon formulaire...
<datasources> <primarytable name="etat_pompage" realname="etat_pompage" primarykey="id_etat_pompage" /> </datasources> <record> <property name="id_etat_pompage" fieldname="id_etat_pompage" datatype="autoincrement" default=""/> <property name="id_pompage" fieldname="id_pompage" datatype="int"/> <property name="id_renouvellement" fieldname="id_renouvellement" datatype="int"/> <property name="date_etat_pompage" fieldname="date_etat_pompage" datatype="date"/> <property name="etat_abords" fieldname="etat_abords" datatype="string" maxlength="128"/> <property name="cloture_portail" fieldname="cloture_portail" datatype="string" maxlength="128"/> <property name="bache" fieldname="bache" datatype="string" maxlength="128"/> <property name="regard_vannes" fieldname="regard_vannes" datatype="string" maxlength="128"/> <property name="trappes" fieldname="trappes" datatype="string" maxlength="128"/> <property name="panier_degrilleur" fieldname="panier_degrilleur" datatype="string" maxlength="128"/> <property name="canalisations" fieldname="canalisations" datatype="string" maxlength="128"/> <property name="clapets_vannes" fieldname="clapets_vannes" datatype="string" maxlength="128"/> <property name="chaines" fieldname="chaines" datatype="string" maxlength="128"/> <property name="potence_treuil" fieldname="potence_treuil" datatype="string" maxlength="128"/> <property name="poires" fieldname="poires" datatype="string" maxlength="128"/> <property name="barres_guidage" fieldname="barres_guidage" datatype="string" maxlength="128"/> <property name="electrecite_automatisme" fieldname="electrecite_automatisme" datatype="string" maxlength="128"/> <property name="traitement_h2s" fieldname="traitement_h2s" datatype="string" maxlength="32"/> <property name="h2s_hors_norme" fieldname="h2s_hors_norme" datatype="int"/> <property name="en_service" fieldname="en_service" datatype="int"/> <output ref="id_pompage"> <label>id_pompage</label> </output> <output ref="id_etat_pompage"> <label>id_etat_pompage</label> </output> <menulist ref="id_renouvellement" dao="administration~renouvellement" daomethod="findall" daolabelproperty="designation" daovalueproperty="id_renouvellement"> <label>Renouvellement</label> </menulist> <input ref="date_etat_pompage" type="localedate" required="true"> <label>date_etat_pompage</label> </input> <menulist ref="etat_abords" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation" required="true"> <label>Etat des abords</label> </menulist> <menulist ref="cloture_portail" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat de la Cloture</label> </menulist> <menulist ref="bache" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat de la bache</label> </menulist> <menulist ref="regard_vannes" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat du regard</label> </menulist> <menulist ref="trappes" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat des trappes</label> </menulist> <menulist ref="panier_degrilleur" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat du panier degrilleur</label> </menulist> <menulist ref="canalisations" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat des canalisations</label> </menulist> <menulist ref="clapets_vannes" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat des clapets</label> </menulist> <menulist ref="chaines" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat des chaines</label> </menulist> <menulist ref="potence_treuil" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat des potences</label> </menulist> <menulist ref="poires" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat des poires</label> </menulist> <menulist ref="barres_guidage" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat des barres de guidage</label> </menulist> <menulist ref="electrecite_automatisme" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat de l'automatisme</label> </menulist> <menulist ref="traitement_h2s" dao="administration~appreciation" daomethod="findAll" daolabelproperty="designation" daovalueproperty="designation"> <label>Etat du traitement h2s</label> </menulist> <checkbox ref="h2s_hors_norme"> <label>h2s_hors_norme</label> </checkbox> <checkbox ref="en_service"> <label>en_service</label> </checkbox> <submit ref="_submit"> <label>ok</label> </submit>
Nicolas Rion
SAS Géosphère
1 Impasse champeau
21800 Quétigny
[Opened] Re: Petit Bug?
Posted by laurentj on 08/21/2008 10:51
au premier abord, je ne vois pas ce qui cloche. Chez moi un truc dans le genre fonctionne (testapp).
Réalise un test case avec le minimum d'info (donc pas un truc avec 15000 champs). Si ça bug toujours, ouvre un ticket en mettant en pièce jointe le code (code qui doit donc comprendre le script sql de création de 2 tables + données à inserer + forms + daos + controlleur + template).
[Opened] Re: Petit Bug?
Posted by leodc on 08/21/2008 17:00
Je crois que j'ai compris le problème:
en fait lorsque qu'on utilise le formcontrol et donc la méthode initFromDao. On va afficher le formulaire avec les données qui correspondantes à chaque champs. Cependant lorsque l'on tombe sur un contrôle menulist, la méthode va aller chercher la désignation qui correspond à l'id choisit, enfin je pense ;).
Seulement le problème c'est que dans mon cas il n'y pas d'id qui correspond puisque le contrôle menulist ne sert qu'à faciliter la saisie de l'utilisateur (la valeur enregistrée étant le label sélectionné dans la menulist et non son id...), il pourrait donc s'en passer et utiliser un simple input, c'est là que la méthode initFromDao ne fonctionne pas.
En espérant que tu as compris ce que je voulais dire, dis moi si je vois juste...
Nicolas Rion
SAS Géosphère
1 Impasse champeau
21800 Quétigny
[Opened] Re: Petit Bug?
Posted by leodc on 08/27/2008 11:59
En fait je crois que j'ai tout faux, voici une partie du formulaire qui est envoyé:
[_container:protected] => jFormsDataContainer Object ( [datas] => Array ( [id_pompage] => 23 [id_etat_pompage] => 32 [id_renouvellement] => [date_etat_pompage] => 14/08/2008 [etat_abords] => Moyen [cloture_portail] => Moyen [bache] => Moyen [regard_vannes] => Mauvais [trappes] => Mauvais [panier_degrilleur] => Moyen [canalisations] => Moyen [clapets_vannes] => Mauvais [chaines] => Moyen [potence_treuil] => Moyen [poires] => Moyen [barres_guidage] => Mauvais [electrecite_automatisme] => Moyen [traitement_h2s] => Moyen [h2s_hors_norme] => 1 [en_service] => 1 [_submit] => Array ( ) ) [formId] => 32 [formSelector] => sig~etat_pompage [errors] => Array ( ) ) [_sel:protected] => sig~etat_pompage
Et voici ce qui est affiché avec la méthode formdatafull:
id_pompage 23 id_etat_pompage 32 Renouvellement date_etat_pompage 14/08/2008 Etat des abords Etat de la Cloture Etat de la bache Etat du regard Etat des trappes Etat du panier degrilleur Etat des canalisations Etat des clapets Etat des chaines Etat des potences Etat des poires Etat des barres de guidage Etat de l'automatisme Etat du traitement h2s h2s_hors_norme 1 en_service 1
Je poste un ticket?
Nicolas Rion
SAS Géosphère
1 Impasse champeau
21800 Quétigny
[Opened] Re: Petit Bug?
Posted by laurentj on 08/27/2008 12:35
Ok, je vois ton problème.
Mais il n'y a pas de problème dans jelix. Dans ton message d'avant, tu as vu juste, "la méthode va aller chercher la désignation qui correspond à l'id choisit". Mais comme tu n'as pas indiquer un champs identifiant comme clé, ça ne va bien sûr pas fonctionner...
À toi de faire en sorte que le champs que tu indiques comme clé, soit une clé (après tout, si les valeurs du champs designation dans administration~appreciation sont uniquse, je ne vois pas pourquoi tu n'en ferais pas une clé). Sinon je ne vois pas comment on va pouvoir récupérer le label hein ;-)
[Opened] Re: Petit Bug?
Posted by leodc on 08/27/2008 14:10
OK je vois le soucis, seulement il n'y pas de clé étrangère donc je ne peux lier les deux tables...
Tanpis je vais faire autrement merci pour ton aide...
Nicolas Rion
SAS Géosphère
1 Impasse champeau
21800 Quétigny
- 1