Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] table de jointure

Posted by romeo on 09/01/2012 15:58

bonjour à la communauté de jelix .je pense jelix fait des merveilles depuis il est reté mon meilleur compagnon en solution de developpement d’application rapide. bon suis pas encor pro mais je fait deja les petit applications de quelques tables sans jointure mais depuis j’ai rencontré quelques problèmes lorsque j’ai voulu m’aventurier dans la jointure . en effet je developpe une application qui possède trois tables

  • adherant(idadherant,codeadherant,nom,prenom,code)
  • reunion(idreunion,nom,status)

et enfin la troisième qui est la jointure des 2autres requette(#idreunion,#idadherant,#codeadherant,titre,message,date) les deux clés étrangères formes la clé primaire.

mon souci est de pouvoir alimené la table requette avec les données des autres table .mon formulaire requette possède un menuliste pour choisir le nom de l’adherant en fonction de l’idadherant un autre pour le code et enfin un autre menuliste pour choisir le nom de la réunion en fonction de l’idreunion.l’objectif est de faire ceci(select idadheran,nom from adehrant)et dans le menu liste l’atribut value sera idreunion et le label nom même principe pour le menulist code et le menulist reunion tout d’abor j’ai créer trois module (adherant, reunion et achat) et un daocrud pour chaque module. mon formulaire ressemble à ceci:

<?xml version="1.0" encoding="utf-8"?>
<form xmlns="http://jelix.org/ns/forms/1.1">


<input ref="titre" maxlength="45">

	<label>Titre :</label>
</input>

<textarea ref="message" required="true" maxlength="45">
	<label>Message :</label>
</textarea>


<menulist ref="Adherant_idAdherant">
<datasource dao="Adherant~Adherant"  method="findAll" valueproperty="idAdherant" labelproperty="Nom"/>
<label>Adherant</label>
</menulist>

<menulist ref="Adherant_code_adherant" required="true">
<datasource dao="Adherant~Adherant"  method="findAll" valueproperty="idAdherant" 	abelproperty="code"/>
<label>Code Adherant</label>
</menulist>




<menulist ref="Reunion_idReunion">
<datasource dao="reunion~reunion"  method="findAll" valueproperty="idReunion" labelproperty="Nomreunion" />
<label>Sélectionnez la réunion</label>
</menulist>

<input ref="daterequete" type="date">
	<label>Date</label>
</input>

<submit ref="_submit">
	<label>Enregistrer</label>
</submit>
</form>

et mon daos à ceci:

<?xml version="1.0" encoding="UTF-8"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
    <datasources>
        <primarytable name="requette" realname="requette" primarykey="Adherant_idAdherant,Adherant_code_adherant,Reunion_idReunion" />
    <foreigntable name="Reunion" realname="Reunion" primarykey="idReunion" onforeignkey ="Reunion_idReunion" />
     <foreigntable name="Adherant" realname="Adherant" primarykey="idAdherant,code_adherant" onforeignkey ="Adherant_idAdherant" />
     <foreigntable name="Adherant" realname="Adherant" primarykey="idAdherant,code_adherant" onforeignkey ="Adherant_code_adheran" />
    </datasources>
    <record>
        <property name="titre" fieldname="titre" datatype="varchar" default="" maxlength="45"/>
        <property name="message" fieldname="message" datatype="varchar" required="true" maxlength="45"/>
        <property name="Adherant_idAdherant" fieldname="Adherant_idAdherant" datatype="int" required="true"/>
        <property name="Adherant_code_adherant" fieldname="Adherant_code_adherant" datatype="varchar" required="true" maxlength="45"/>
        <property name="Reunion_idReunion" fieldname="Reunion_idReunion" datatype="int" required="true"/>
        <property name="daterequete" fieldname="daterequete" datatype="date" default=""/>
        <!--<property name="" fieldname="" datatype="string/int/float/date"
        required="yes" maxlength="" minlength="" regexp="" sequence=""
        updatepattern="" insertpattern="" selectpattern=""/>-->
    </record>
    <factory>
        <!--<method name="findByStage" type="select/selectfirst/delete/update/php">
            <parameter name="" />
            <values>
                <value property="" value="" />
            </values>
            <conditions logic="and/or">
                <eq property="" value="" />
            </conditions>
            <order>
                <orderitem property="" way="asc/desc" />
            </order>
            <limit offset="" count=""/>
            <body><![CDATA[
            ]]></body>
        </method>-->
    </factory>
</dao>

les formulaires adhearnt et reunion enregistre sans problème maisla difficulté se trouve au niveau du formulaire de jointure achat lors de la soumission j’ai une erreur au niveau de la methode savecreate du controleur du dao.quelqu’un a une idée du problème? a l’aide

  [Opened] table de jointure

Reply #1 Posted by foxmask on 09/01/2012 18:01

utiliser les balise <code> et </code> quand vous ajoutez du code jelix dans le forum pour que cela soit lisible. je l'ai fait cette fois ci ; Merci ;)


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] table de jointure

Reply #2 Posted by romeo on 09/01/2012 19:08

ok je ne savais pas voici mon dao


<?xml version="1.0" encoding="UTF-8"?>
<dao xmlns="http://jelix.org/ns/dao/1.0">
    <datasources>
        <primarytable name="requette" realname="requette" primarykey="Adherant_idAdherant,Adherant_code_adherant,Reunion_idReunion" />
    <foreigntable name="Reunion" realname="Reunion" primarykey="idReunion" onforeignkey ="Reunion_idReunion" />
     <foreigntable name="Adherant" realname="Adherant" primarykey="idAdherant,code_adherant" onforeignkey ="Adherant_idAdherant" />
     <foreigntable name="Adherant" realname="Adherant" primarykey="idAdherant,code_adherant" onforeignkey ="Adherant_code_adheran" />
    </datasources>
    <record>
        <property name="titre" fieldname="titre" datatype="varchar" default="" maxlength="45"/>
        <property name="message" fieldname="message" datatype="varchar" required="true" maxlength="45"/>
        <property name="Adherant_idAdherant" fieldname="Adherant_idAdherant" datatype="int" required="true"/>
        <property name="Adherant_code_adherant" fieldname="Adherant_code_adherant" datatype="varchar" required="true" maxlength="45"/>
        <property name="Reunion_idReunion" fieldname="Reunion_idReunion" datatype="int" required="true"/>
        <property name="daterequete" fieldname="daterequete" datatype="date" default=""/>
        <!--<property name="" fieldname="" datatype="string/int/float/date"
        required="yes" maxlength="" minlength="" regexp="" sequence=""
        updatepattern="" insertpattern="" selectpattern=""/>-->
    </record>
    <factory>
        <!--<method name="findByStage" type="select/selectfirst/delete/update/php">
            <parameter name="" />
            <values>
                <value property="" value="" />
            </values>
            <conditions logic="and/or">
                <eq property="" value="" />
            </conditions>
            <order>
                <orderitem property="" way="asc/desc" />
            </order>
            <limit offset="" count=""/>
            <body><![CDATA[
            ]]></body>
        </method>-->
    </factory>
</dao>

mon formulaire

<?xml version="1.0" encoding="utf-8"?>
<form xmlns="http://jelix.org/ns/forms/1.1">


<input ref="titre" maxlength="45">

	<label>Titre :</label>
</input>

<textarea ref="message" required="true" maxlength="45">
	<label>Message :</label>
</textarea>


<menulist ref="Adherant_idAdherant">
<datasource dao="Adherant~Adherant"  method="findAll" valueproperty="idAdherant" labelproperty="Nom"/>
<label>Adherant</label>
</menulist>

<menulist ref="Adherant_code_adherant" required="true">
<datasource dao="Adherant~Adherant"  method="findAll" valueproperty="idAdherant" 	abelproperty="code"/>
<label>Code Adherant</label>
</menulist>




<menulist ref="Reunion_idReunion">
<datasource dao="reunion~reunion"  method="findAll" valueproperty="idReunion" labelproperty="Nomreunion" />
<label>Sélectionnez la réunion</label>
</menulist>

<input ref="daterequete" type="date">
	<label>Date</label>
</input>

<submit ref="_submit">
	<label>Enregistrer</label>
</submit>
</form>
 
Page
  1. table de jointure