Foros del Web » Programando para Internet » ASP Clásico »

Operaciones con datos en ASP

Estas en el tema de Operaciones con datos en ASP en el foro de ASP Clásico en Foros del Web. Hola por favor necesito el auxilio aurgente de ustedes. Tengo una pagina en ASP que lo que hace es mostrarme un reporte de datos que ...
  #1 (permalink)  
Antiguo 19/08/2004, 12:18
 
Fecha de Ingreso: agosto-2004
Mensajes: 7
Antigüedad: 19 años, 9 meses
Puntos: 0
Operaciones con datos en ASP

Hola por favor necesito el auxilio aurgente de ustedes.

Tengo una pagina en ASP que lo que hace es mostrarme un reporte de datos que extrae de una base de datos en sql. Con el siguiente select
<%
Dim RA
Set RA=conn.Execute ("select codactivo,fec_report,claseactiv,descripcio,ubicaci on,val_adjudi,val_venta,forma_tran from aextraor where fec_report >= ('"&date1&"') and fec_report <= ('"&date2&"')order by fec_report")
%>

y los muestro en la pagina asp en una tabla ordenados por fecha de reporte, ahora bien me surge el problema porque me piden que haga la sumatoria del campo "val_adjudi" por cada mes.

He probado una consulta en sql que me muestra exactamente lo que quiero presentar en la pagina asp, pero no se como hacerlo en ASP, la consulta es la siguiente:

select codactivo,fec_report,claseactiv,descripcio,ubicaci on,val_adjudi,val_venta,forma_tran from aextraor where fec_report >= ('01/01/2004') and fec_report <= ('12/08/2004')ORDER BY fec_report, val_adjudi COMPUTE SUM(val_adjudi) BY fec_report


POR FAVOR NECESITO AYUDA URGENTE, no tengo mucha experiencia en ASP.
  #2 (permalink)  
Antiguo 19/08/2004, 12:28
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, rapidamente se me ocurre algo asi:
Código:
<%
Dim RA
Set RA=conn.Execute ("select codactivo,fec_report,claseactiv,descripcio,ubicaci on,val_adjudi,val_venta,forma_tran from aextraor where fec_report >= ('"&date1&"') and fec_report <= ('"&date2&"')order by fec_report")

Suma = 0
MesActual = Month(ra("fec_report"))

'...código HTML donde formas tus tabla
while NOT ra.EOF
   %>...Código HTML donde llenas los campos..
    </td><input type=text value=ra("campoX")></td>
   <%
     suma = suma + rs("val_adjudi")
    if Month(ra("fec_report")) <> MesActual then
     %>
    <tr><td colspan=N align=right>Total:&nbsp;<%=Suma%>
    <%
       MesActual = Month(ra("fec_report"))
       Suma= 0
    End If
   ra.MoveNext
Wend
%>
La idea es que sumes conforme vas recorriendo el recordset e imprimas cuando detectes que el mes cambia.

Saludos

Última edición por Myakire; 19/08/2004 a las 14:25
  #3 (permalink)  
Antiguo 19/08/2004, 14:06
 
Fecha de Ingreso: agosto-2004
Mensajes: 7
Antigüedad: 19 años, 9 meses
Puntos: 0
Hola gracias casi pero me muestra el resultado en cada fila no por grupo de mes. Si me ayudas te mando el codigo completo y a lo mejor he colocado mal algo.

</table>
<table width="100%" style="border-collapse: collapse" cellpadding="0" cellspacing="4" bordercolor="#808080" border="1" bgcolor="#FFF5E1">
<tr>

<td width="8%" height="18" valign="bottom">
<p align="center">
<font face="Arial Narrow" size="1">Fecha Actualización</font>
</td>

<td width="9%" height="18" valign="bottom">
<p align="center">
<font face="Arial Narrow" size="1">Código</font>
</td>

<td width="10%" bordercolor="#808080" height="18" valign="bottom">
<p align="center">
<font face="Arial Narrow" size="1">Clase Activo</font>
</td>

<td width="30%" height="18" valign="bottom">
<p align="center">
<font face="Arial Narrow" size="1">Descripciòn</font>
</td>

<td width="24%" height="18" valign="bottom">
<p align="center">
<font face="Arial Narrow" size="1">Ubicación</font>
</td>

<td width="8%" height="18" valign="bottom">
<p align="center">
<font face="Arial Narrow" size="1">Valor Adq.</font>
</td>

<td width="8%" height="18" valign="bottom">
<p align="center">
<font face="Arial Narrow" size="1">Valor Venta</font>
</td>

<td width="11%" height="18" valign="bottom">
<p align="center">
<font face="Arial Narrow" size="1">Forma Transac.</font>
</td>
</tr>
</table>


<%
Dim RA
Set RA=conn.Execute ("select codactivo,fec_report,claseactiv,descripcio,ubicaci on,val_adjudi,val_venta,forma_tran from aextraor where fec_report >= ('"&date1&"') and fec_report <= ('"&date2&"')order by fec_report")
Suma = 0
MesActual = Month(ra("fec_report"))


%>

<%Do While not RA.eof%>
<%id=RA("codactivo")%>
<table width="100%" style="border-collapse: collapse" cellpadding="0" cellspacing="4" bordercolor="#808080" border="1">

<%
Dim RZ
Set RZ=conn.Execute ("select ltrim(rtrim(forma_tran)) as forma_tran from aextraor where fec_report >= ('"&date1&"') and fec_report <= ('"&date2&"') and codactivo=('"&id&"')")
Do until RZ.EOF
forma=RZ("forma_tran")
RZ.MoveNext
Loop
%>
<%if forma="EFECTIVO" Then%>
<a href="RP03a.asp?id=<%Response.Write(id)%>"><tr class="tds" bgcolor="FFFFFF" onmouseover="this.bgColor= '#f7f7f7'" onmouseout="this.bgColor='FFFFFF'">
<%Else%>
<tr>
<%End if%>

<td width="8%" height="18" valign="top">
<p align="right">
<font face="Arial Narrow" size="1"><%=RA("fec_report")%>&nbsp;&nbsp;&nbsp;</font>
</td>

<td width="8%" height="18" valign="top">
<p align="right">
<font face="Arial Narrow" size="1"><%=RA("codactivo")%>&nbsp;&nbsp;&nbsp;</font>
</td>

<td width="10%" bordercolor="#808080" height="18" valign="top">
<p align="left">
<font face="Arial Narrow" size="1"><%=RA("claseactiv")%>&nbsp;&nbsp;&nbsp;</font>
</td>

<td width="30%" height="18" valign="top">
<p align="left">
<p align="justify"> <font face="Arial Narrow" size="1"><%=RA("descripcio")%>&nbsp;&nbsp;&nbsp;</font>
</td>

<td width="24%" height="18" valign="top">
<p align="center">
<p align="justify"><font face="Arial Narrow" size="1"><%=RA("ubicacion")%>&nbsp;&nbsp;&nbsp;</font>
</td>

<td width="8%" height="18" valign="top">
<%
x=RA("val_adjudi")
valadq=FormatNumber(x,2)
%>
<p align="right">
<font face="Arial Narrow" size="1"><%Response.Write(valadq)%>&nbsp;&nbsp;&nb sp;</font>
</td>

<%
x=RA("val_venta")
valval=FormatNumber(x,2)
%>

<td width="8%" height="18" valign="top">
<p align="center">
<font face="Arial Narrow" size="1"><%Response.Write(valval)%>&nbsp;&nbsp;&nb sp;</font>
</td>

<td width="11%" height="18" valign="top">
<p align="center">
<font face="Arial Narrow" size="1"><%=RA("forma_tran")%>&nbsp;&nbsp;&nbsp;</font>
</td>
</tr>
</a>
</table>

</td><input type=text value=ra("campoX") size="20"></td>
<%
suma = suma + ra("val_adjudi")
if ra("fec_report") <> MesActual then
%>
<tr><td colspan=N align=right>Total:&nbsp;<%=Suma%>
<%
MesActual = Month(ra("fec_report"))
Suma= 0
End If
RA.MoveNext
forma=""
val="yes"
Loop
%>

<%if val = "" Then%>
<p align="center"><b><font face="Arial" size="2" color="#FF0000"><br>
<br>
<br>
<br>
No se encontraron datos para generar este reporte.......
<%End if%> </font></b></p>
</body>

<%
Else
Response.Redirect("login.asp")
End if
%>
  #4 (permalink)  
Antiguo 19/08/2004, 14:21
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Pues si, por que la condición esta mal:

Si obtenemos MesActual = Month(ra("fec_report"))

Deberiamos preguntar por if Month(ra("fec_report")) <> MesActual then

Así ya debería funcionar.

Un pregunta: No entiendo el por qué, de este código:

Código:
<%
Dim RZ
Set RZ=conn.Execute ("select ltrim(rtrim(forma_tran)) as forma_tran from aextraor where fec_report >= ('"&date1&"') and fec_report <= ('"&date2&"') and codactivo=('"&id&"')")
Do until RZ.EOF
forma=RZ("forma_tran")
RZ.MoveNext
Loop
%>
Si lo que quieres es el último, ordenalo descendentemente, o bien usa el método MoveLast.

Saludos
  #5 (permalink)  
Antiguo 19/08/2004, 14:47
 
Fecha de Ingreso: agosto-2004
Mensajes: 7
Antigüedad: 19 años, 9 meses
Puntos: 0
Gracias de verdad no sabes como te agradezco el tiempo que te tomas, pero como te dije soy nueva en ASP y este programa lo he retomado ya hecho, y me estan pidiendo cambios sobre el, asi que aun no lo conozco a fondo el funcionamiento.

Dime a donde debo poner esta condición????
  #6 (permalink)  
Antiguo 19/08/2004, 15:22
 
Fecha de Ingreso: agosto-2004
Mensajes: 7
Antigüedad: 19 años, 9 meses
Puntos: 0
ok. ya lo tengo, ya funciona mucho mejor solo tengo que ver porque me agrupa la ultima fila del mes siguiente, y tambien porque no me presenta el total del ultimo mes procesado.

Si me ayudas, si no me ha sido de mucha utilidad tu información mil gracias!!!!!
  #7 (permalink)  
Antiguo 19/08/2004, 15:32
 
Fecha de Ingreso: agosto-2004
Mensajes: 7
Antigüedad: 19 años, 9 meses
Puntos: 0
Ahora hago pruebas, y si por ejemplo tengo todos los datos del mes de enero me le agrega un registro del mes siguiente que en este caso tengo mayo y por supuesto lo suma. de igual forma el ultimo mes que despliega el reporte no presenta el total.

De igual forma si solo consulto un mes no muestra el total.

QUE HAGOOOOOOO
  #8 (permalink)  
Antiguo 20/08/2004, 07:39
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Bueno, lo del último mes, es claro: Al ya no cambiar de mes, nunca entra al IF, hay que programar esa salvedad.
Y para lo del registro del mes siguiente, pues también es claro, si cambia de mes en el MoveNext y comienza otro ciclo, el incremento esta sin ningúna condición, también hay que porgrmar eso:
if Month(ra("fec_report")) <> MesActual then
......
else
suma = suma + rs("val_adjudi")
end if

Solo un consejo: Normalmete los códigos que en los foros te proporcionen, son escritos al momento, sin ser probados; necesitamos hacer la vieja y ya casi no recordada "prueba de escritorio" para depurar la solución.

¡Saludos!
  #9 (permalink)  
Antiguo 20/08/2004, 09:47
 
Fecha de Ingreso: agosto-2004
Mensajes: 7
Antigüedad: 19 años, 9 meses
Puntos: 0
Ok muchas gracias, tomare en cuenta tu consejo!!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 17:42.