Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ulisses Arrais

Totaliza o resultado de um recorset

Recommended Posts

Boa Tarde Pessoal, nesse codigo faço um select tudo funciona ok, mas eu preciso que no fim dele seja somado o valor de todos os campos v_total_est que não vem do select o calculo e feito no codigo! Isso é possivel?

' Define variaveis e chama dados do DB
Dim Recordset1
Dim Recordset1_numRows, strConnection
strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("prod.mdb") & ";Persist Security Info=False"
Set Recordset1 = Server.CreateObject("ADODB.Recordset")
Recordset1.ActiveConnection = strConnection
Recordset1.Source = "SELECT cod_produto, produto, vrl_unitario, custo_prod, qtd_estoque FROM produtos WHERE cod_categoria = " & varClie & " ORDER BY produto "
Recordset1.CursorType = 0
Recordset1.CursorLocation = 2
Recordset1.LockType = 1
Recordset1.Open()

Recordset1_numRows = 0
%>
<%
' Montando o Form
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
Recordset1_numRows = Recordset1_numRows + Repeat1__numRows

	    <% 
		While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 
		%>
        <% intRecID =(Recordset1.Fields.Item("cod_produto").Value) ' Store the current RecordID in a variable %>
        <tr bgcolor="#999999">
	        <td nowrap><div align="center"><%= intRecID %><input name="hidRecID<%= intRecID %>" type="hidden" value="<%= intRecID %>" size="5">
            </div></td>
	        <td nowrap><%=(Recordset1.Fields.Item("produto").Value)%></td>
	        <td nowrap><input name="txtCust<%= intRecID %>" type="text" onChange="RecUpdate('<%= intRecID %>')" value="<%=(Recordset1.Fields.Item("custo_prod").Value)%>" size="10"></td>
	        <td nowrap><input name="txtNum<%= intRecID %>" type="text" onChange="RecUpdate('<%= intRecID %>')" value="<%=(Recordset1.Fields.Item("vrl_unitario").Value)%>" size="10"></td>
	        <td nowrap>
            <%
			' Calculando Margem
			Dim calc1, calc2, marg, marg2
			calc1 = Recordset1.Fields.Item("custo_prod")
			if calc1 > 0 then
				calc1 = Recordset1.Fields.Item("custo_prod")
			else
				calc1 = 1
			end if
			calc2 = Recordset1.Fields.Item("vrl_unitario")
			marg = calc2 / calc1 * 100 - 100
			Response.Write Formatnumber (marg)
			%>
            </td>
            <td nowrap>
              <input name="txtNum<%= intRecID %>2" type="text" onChange="RecUpdate('<%= intRecID %>')" value="<%=(Recordset1.Fields.Item("qtd_estoque").Value)%>" size="10"></td>
              <td nowrap>
              <%
			  ' Calculando valor de estoque
			  Dim v_estoq1, v_prc, v_total_est
			  v_estoq1 = Recordset1.Fields.Item("qtd_estoque")
			  v_prc = Recordset1.Fields.Item("custo_prod")
			  v_total_est = v_estoq1 * v_prc
			  Response.Write (v_total_est)
			  %>
        </tr>
        <% 
			Repeat1__index=Repeat1__index+1
			Repeat1__numRows=Repeat1__numRows-1
			Recordset1.MoveNext()
		Wend
		%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

tranquilo em cima do movenext coloque

 

totalestoque = totalestoque + recordset1("qtd_estoque")

valortotal = valortotal + recordset1("vrl_unitario")


depois só usar as variáveis após o loop!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

dependendo da situacaun melhor usar um contatdor normal ou a clausula count do SQL, pois se o seu bd for muito grande o recordcount do objeto recordset para apresentar queda de desempenho
e para usar o RecordCount , seu cursortype tem k ser recordset.CursorType = 3 (AdOpenDynamic)

exemplo:

<%
DIM mySQL, objRS
mySQL = "SELECT * FROM myTable"
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open mySQL, objConn

' Count how many records exist
DIM iRecordCount
iRecordCount = 0
DO WHILE NOT objRS.EOF
iRecordCount = iRecordCount + 1
objRS.MoveNext
Loop

' Display result
Response.Write "(" & iRecordCount & ")"

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gustavo, na verdade o que eu preciso é que quando eu faço o calculo do valor total de estoque que é qtd_estoque * custo_prod no fim dessa tela eu mostrasse a soma de todos os v_total_est ou seja a soma de todos os v_total_est

        <%
	 ' Calculando valor de estoque
	 Dim v_estoq1, v_prc, v_total_est
	 v_estoq1 = Recordset1.Fields.Item("qtd_estoque")
	 v_prc = Recordset1.Fields.Item("custo_prod")
	 v_total_est = v_estoq1 * v_prc
	 Response.Write (v_total_est)
	 %>

Compartilhar este post


Link para o post
Compartilhar em outros sites

faça o cálculo de todos os v_total_est, atribua-os a variáveis distintas, tipo

 

 

v_total_est 1= v_estoq1 * v_prc

v_total_est 2= v_estoq1 * v_prc

v_total_est 3= v_estoq1 * v_prc

 

e depois apenas some todos

 

v_total_est_final=v_total_est 1+v_total_est 2+v_total_est 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço a ajuda pessoal, refiz o codigo sem usar cursor type e com a dica do Gustavo o problema foi resolvido! obrigado a todos!

Segue a solucao

      <%
	Dim tot_estoque, total_final
	tot_estoque = rsProdutos("qtd_estoque") * rsProdutos("vrl_unitario")
	response.write tot_estoque
	%>
 <%
   total_final = total_final + tot_estoque
   rsProdutos.MoveNext
  Wend
  %> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

10334340_787697431274055_834155699042427

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.