ASP/SQL affichage

kent76 Messages postés 30 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 20 mars 2013 - 13 mars 2013 à 13:02
kent76 Messages postés 30 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 20 mars 2013 - 13 mars 2013 à 15:41
Bonjour,

Je suis un peu en galère, je vous explique :

Je réalise différente application et le soucis sur celle-ci c'est que j'ai une requête SQL qui enregistre des valeurs saisies par l'utilisateurs et je voudrais qu'a la fin de cette saisie le montant collecté s'affiche (donc requête SUM)

donc voici mon code pour ce sujet


Montant Date Décés : </td>
<td class="cadre_saisie" align="center"><%=rs_detail_dossier ("MONTANTB_DOSSIER")%> €</td>
<td class="cadre_saisie" align="center"><%=rs_detail_dossier ("MONTANT_DOSSIER")%> €</td>
</tr>
<% 'TODO Affichage statique des sommes collectés et restantes

' Requete de calcul des sommes collecté sur le dossier 
set rs_collect = server.CreateObject("ADODB.recordset")
req_collect 	= "SELECT SUM(P.VALEUR_PRODUIT) AS COLLECTE, P.TYPE_PRODUIT " _
& "FROM  DOSSIER AS D INNER JOIN HERITIER AS H1 ON D.ID_DOSSIER = H1.REF_DOSSIER INNER JOIN HERITIER AS H2 " _
& "ON D.ID_DOSSIER H2.REF_DOSSIER INNER JOIN PRODUIT AS P ON H1.ID_HERITIER P.REF_HERITIER " _
& "WHERE (H2.ID_HERITIER = " & ref_heritier & ") " _
& "GROUP BY P.TYPE_PRODUIT "
' Response.write req_collect	"
"				
rs_collect.Open req_collect,Succession_DEV,3,3
' 1) Stockage des valeurs dans les 2 variables

collect_banc = 0
collect_ass_vie = 0

while not rs_collect.eof
Select case rs_collect("P.TYPE_PRODUIT")
case "BANCAIRE" : 
collect_banc = rs_collect("COLLECTE")
case "ASSURANCE_VIE" :
collect_ass_vie = rs_collect("COLLECTE")
End Select
rs_collect.movenext
wend
 set rs_collect = nothing



' 2) 
restant_banc = 0
restant_ass_vie = 0
'1° 
' 

%>
[/code>

donc voici la partie affichage.. avec la requête à exploiter.

J'ai ajouter un Select case car j'ai deux colonnes renseignées grâce à ma BD:

[code=aspx]	<%if CInt(rs_indicateur.RecordCount) > 0 then%>
<%rs_indicateur.movefirst%>
<%while not rs_indicateur.eof %>
<tr>
<td class="cadre_saisie" > <%=rs_indicateur("LIBELLE_INDICATEUR")%></td>
<% ' Vérification d'un ancienne valeur pour PRODUIT
' 1° Requete sur PRODUIT en fonction de l'ID_HERITIER et ID_INDICATEUR en cours rs_affproduit
set rs_produit_select = server.CreateObject("ADODB.recordset")
req_produit_select 	= "SELECT * " _
& "FROM PRODUIT " _
& "WHERE REF_HERITIER " & ref_heritier & " AND REF_INDICATEUR "& rs_indicateur("ID_INDICATEUR") 
rs_produit_select.Open req_produit_select,Succession_DEV,3,3

' 2° Lecture et récupration et affichage de la valeur sinon 0
val_banc = 0
val_ass_vie = 0
while not rs_produit_select.eof
Select case rs_produit_select("TYPE_PRODUIT")
case "BANCAIRE":
'Response.write "Banc: " & rs_produit_select("VALEUR_PRODUIT") & "
"
val_banc = rs_produit_select("VALEUR_PRODUIT")
case "ASSURANCE_VIE":
val_ass_vie = rs_produit_select("VALEUR_PRODUIT")
End Select
rs_produit_select.movenext
wend
set rs_produit_select = nothing
%>
<td class="cadre_saisie" >" value="<%=val_banc%>" onkeypress="chiffres_avec_virgule(event);"> €</td>
<td class="cadre_saisie" >" value="<%=val_ass_vie%>" onkeypress="chiffres_avec_virgule(event);"> €</td>
</tr>
<%rs_indicateur.movenext%>
<%wend%>
<%end if%>






pour afficher ce que la requête retourne :

<tr>
<td colspan="2"> </td>
<td align="left" class="cadre_saisie">Montant collecté : </td>
<td class="cadre_saisie" align="center" name="collect_banc" value="<%=collect_banc%>"> €</td>
<td class="cadre_saisie" align="center" name="collect_ass_vie" value="<%=collect_ass_vie%>"> €</td>
</tr>


donc en gros ce qui ne fonctionne pas, c'est déjà le bout de code pour le calcul des deux colonnes différentes:

	<%	' Requete de calcul des sommes collecté sur le dossier 
set rs_collect = server.CreateObject("ADODB.recordset")
req_collect 	= "SELECT SUM(P.VALEUR_PRODUIT) AS COLLECTE, P.TYPE_PRODUIT " _
& "FROM  DOSSIER AS D INNER JOIN HERITIER AS H1 ON D.ID_DOSSIER = H1.REF_DOSSIER INNER JOIN HERITIER AS H2 " _
& "ON D.ID_DOSSIER H2.REF_DOSSIER INNER JOIN PRODUIT AS P ON H1.ID_HERITIER P.REF_HERITIER " _
& "WHERE (H2.ID_HERITIER = " & ref_heritier & ") " _
& "GROUP BY P.TYPE_PRODUIT "
' Response.write req_collect	"
"				
rs_collect.Open req_collect,Succession_DEV,3,3
' 1) Stockage des valeurs dans les 2 variables

collect_banc = 0
collect_ass_vie = 0

while not rs_collect.eof
Select case rs_collect("P.TYPE_PRODUIT")
case "BANCAIRE" : 
collect_banc = rs_collect("COLLECTE")
case "ASSURANCE_VIE" :
collect_ass_vie = rs_collect("COLLECTE")
End Select
rs_collect.movenext
wend
 set rs_collect = nothing%>


ainsi que l'affichage :


<td align="left" class="cadre_saisie">Montant collecté : </td>
<td class="cadre_saisie" align="center" name="collect_banc" value="<%=collect_banc%>"> €</td>
<td class="cadre_saisie" align="center" name="collect_ass_vie" value="<%=collect_ass_vie%>"> €</td>




voila j'espére avoir étais clair? et que l'on va pouvoir m'aider ;)
N'hésitez pas à me demander si des choses manquent..

Cordialement,
Bonn'Ap
Kentz

2 réponses

kent76 Messages postés 30 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 20 mars 2013
13 mars 2013 à 15:07
Bon en me relisant c'est un peu b...

donc alors j'ai une requête :


req_collect = "SELECT SUM(P.VALEUR_PRODUIT) AS COLLECTE, P.TYPE_PRODUIT " _
& "FROM PRODUIT AS P INNER JOIN HERITIER AS H ON P.REF_HERITIER = H.ID_HERITIER " _
& "GROUP BY P.TYPE_PRODUIT, H.REF_DOSSIER " _
& "HAVING (H.REF_DOSSIER = " & ref_dossier & ")"

donc elle me ressort la somme de TYPE_PRODUIT (pour ma part la somme de deux type de produit "BANCAIRE" , "ASSURANCE_VIE")
ensuite je voudrais donc récupérer cette somme donc j'ai commencé comme ceci et c'est la où est mon pb :


<%	' Requete de calcul des sommes collecté sur le dossier 
set rs_collect  = server.CreateObject("ADODB.recordset")
       req_collect = "SELECT SUM(P.VALEUR_PRODUIT) AS COLLECTE, P.TYPE_PRODUIT " _
& "FROM PRODUIT AS P INNER JOIN HERITIER AS H ON P.REF_HERITIER = H.ID_HERITIER " _
& "GROUP BY P.TYPE_PRODUIT, H.REF_DOSSIER " _
& "HAVING (H.REF_DOSSIER = " & ref_dossier & ")"
' 1) Stockage des valeurs dans les 2 variables
collect_banc = 0
collect_ass_vie = 0
rs_collect.movefirst
while not rs_collect.eof
Select case rs_collect("TYPE_PRODUIT")
case "BANCAIRE":
collect_banc = rs_collect("COLLECTE")
       case "ASSURANCE_VIE":
       collect_ass_vie = rs_collect("COLLECTE")
End Select
rs_collect.movenext
wend
 
%>



voila j'espère être plus claire??;)
0
kent76 Messages postés 30 Date d'inscription lundi 9 mars 2009 Statut Membre Dernière intervention 20 mars 2013
13 mars 2013 à 15:41
problème résolu alone :

j'ai oublié ceci avant et bien sur ne pas oublié de fermer :

<%if CInt(rs_indicateur.RecordCount) > 0 then%>
<%rs_indicateur.movefirst%>
<%while not rs_indicateur.eof %>


....... requête + mon script de retour de resultat

<%rs_indicateur.movenext%>
<%wend%>
<%end if%>



et le code d'affichage :

<tr>
        <td colspan="2"> </td>
<td align="left" class="cadre_saisie">Montant collecté : </td>
<td class="cadre_saisie" align="center" name="collect_banc" value="0"><%=collect_banc%> €</td>
<td class="cadre_saisie" align="center" name="collect_ass_vie" value="0"><%=collect_ass_vie%> €</td>
</tr>



voila, de temps en temps sa paye de se creuser la cervelle (dmg pas de smiley qui se fracasse le crâne ^^)
ka coulé con creme :)
0
Rejoignez-nous