Bonjour,
Je viens de créer un tableau lié à une table de ma base de donnée.
Je souhaiterais rajouter une colonne, dont le contenu serait le résultat d'une requête dont un des arguments est une des cellules qui existe déjà.
Comment faire ?
merci
Bonjour,
Je viens de créer un tableau lié à une table de ma base de donnée.
Je souhaiterais rajouter une colonne, dont le contenu serait le résultat d'une requête dont un des arguments est une des cellules qui existe déjà.
Comment faire ?
merci
Tu peux faire une requête élaborée.
View | outline | sessionBean1 | doubleclique sur ton rowset.
Un éditeur SQL s'ouvre, dans la partie du haut tu fait click droit | add table, tu rajouttes ta table et tu fais ta jointure avec ta première table.
Puis tu retournes sur ta page en mode JSP, click droit | table layout | new column et tu rajouttes la donnée que tu viens de créer dans ta requête SQL.
Ca répond à ce que tu demandes?
Bon WE
Valère
Bonjour,
Merci de ta réactivité !
En revanche, je pense que tu voulais dire en mode "conception" et non "JSP".
Et, j'ai du mal poser ma question : dans la colonne rajouter je veux effectuer une nouvelle requete, et non faire une jointure.
Cela devrait me permettre, par exemple, de mettre dans la cellule tous les résultats de la requête, séparés par une virgule.
Merci, et bon week end egalement
Vincent
D'après ce que j'ai lu sur http://blogs.sun.com/roller/page/win..._dynamic_table , j'ai l'impression que je suis obligé de créer dynamiquement ma table, et que je ne peux pas utiliser le code généré par Studio.
En effet, j'ai essayé de modifier le getter du champ de la colonne rajouter, mais je ne peux pas accéder dans ce getter aux autres champs de ma ligne : apparemment, les getter sont utilisés pour établir le binding avec les éléments de la JSP AVANT l'exécution de la requête qui remplit le tableau...
Je fais fausse route ?
Ca y est, j'ai trouvé la solution :
Dans mon JSP, je rajoute la colonne qui execute la nouvelle requete comme ca :
et dans Page1, je crée un bean qui effectue cette requête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <ui:tableColumn binding="#{Page1.tableColumn9}" headerText="Colonne 9" id="tableColumn9"> <ui:staticText binding="#{Page1.staticText8}" id="staticText8" text="#{Page1.dynCol}"/> </ui:tableColumn>
Voila !
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 String dynCol = ""; public void setDynCol(String dynCol) { this.dynCol = dynCol; } public String getDynCol() { Long tIdSaisie = (Long) getValue("#{currentRow.value['liv_saisie.id_saisie']}") ; if (tIdSaisie == null) return new String(""); try { Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/MySQL"); Connection conn=ds.getConnection(); String tReq= "SELECT DISTINCT liv_anomalie.id_anomalie FROM liv_anomalie WHERE liv_anomalie.id_saisie = ? ORDER BY liv_anomalie.id_anomalie "; PreparedStatement st = conn.prepareStatement(tReq); st.setObject(1, tIdSaisie); ResultSet anoSet = st.executeQuery(); String anos = ""; if (anoSet.next()) { anos = anoSet.getString(1); while (anoSet.next()) { anos = anos + "," + anoSet.getString(1); } } st.clearParameters(); st.close(); conn.close(); return anos; } catch (NamingException tEx) { error("Impossible de consulter les anomalies : " + tEx.getMessage()); log("Impossible de consulter les anomalies : " + tEx.getMessage()); tEx.printStackTrace(); return("Anomalies indisponibles"); } catch (SQLException tEx) { error("Impossible de consulter les anomalies : " + tEx.getMessage()); log("Impossible de consulter les anomalies : " + tEx.getMessage()); return("Anomalies indisponibles"); } }
Si ça peut en aider certains...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager