Jump to content
Nelson Pereira

For Each Row com o uso de variaveis

Recommended Posts

Bom dia pessoal, estou necessitado de ajuda.

Estou usando um relatório no meu sistema que está vinculado a um dataset. No meu relatório tenho 3 campos que passo a explicar: "PreçoGrupo" ; "PreçoTotal" ; "PercTotal".

O "PreçoGrupo" é alimentado por um valor do meu dataset (PRECstRp), que no relatório já está configurado para ir buscar o custo dos produtos por Grupo. e o campo "PreçoTotal" também é alimentado pelo (PRECstRp) que por sua vez está configurado no relatório para ser a soma de todos os grupos.... até aqui tudo bem..o meu problema vem a segui, com o campo "PercTotal'', que tem de ser alimentado com a seguinte formula ( "PreçoGrupo" / "PreçoTotal" ) * 100...isto para cada linha do relatório, pois cada linha corresponde a um grupo diferente de produtos.



Porém os valores de "PercTotal'' não estão batendo certo.



Alguém me pode ajudar a ver se estou alimentado as variavies de forma correta?

Estou usando o segiinte: 
 

Dim CustoGrupo As Double
Dim CustoTotal As Double

For Each row As DataRow In ds.Tables("Dados2").Rows

row("TotalGrupo") = CDbl(row("PRECstRp"))
row("TotalGeral") = CDbl(row("PRECstRp"))

CustoGrupo += CDbl(row("TotalGrupo"))
CustoTotal += CDbl(row("TotalGeral"))

If CustoGrupo > 0 Then
row("PercTotal") = (CustoGrupo / CustoTotal) * 100
Else
row("PercTotal") = 0
End If

Next

Return ds

 

Edited by quintelab
Adicionado BBCode

Share this post


Link to post
Share on other sites
1 hora atrás, rmitsunaka disse:

A soma de todos os registros do CustoGrupo da o valor CustoTotal?

 

Caso não, o problema está ai.

 

Sim dá sim... esse calculo fiz logo no ínicio... CustoTotal está certo...é a soma de todos os registros do CUstoGrupo

 

Share this post


Link to post
Share on other sites
2 horas atrás, rmitsunaka disse:

O que pode estar acontecendo eh problema de arredondamento nos cálculos então.

Acho que não..a diferença de valores é grande demais para ser arredondamento..

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Rhael Andrade
      Bom Dia.
      Gostaria de saber se consigo manipular o tamanha de uma coluna tablix usando reportviewer.
      tenho uma coluna A que se caso a coluna B a visualização dela for false, a coluna A aumentaria a largura da colunar.
      isso seria possível no reportviewer?
      der de já agradeço a atenção de todos.
    • By Bruno Soars
      Prezados, bom dia.
      sou novo no desenvolvimento em ASP. O antigo desenvolvedor sumiu e deixou uma bomba para eu resolver. Temo uma pagina na nossa intranet no qual a mesma e nosso serviço de chamados. Quando coloca todos os dados solicitados a mesma apresenta o seguinte erro:
       
      Persits.MailSender.4 error '800a0004'
      Connect has been reset by server.
      /INTRANET/suporte/index.asp, line 88

      Já estudei na internet as formas de resolver este problema, porém sem solução. Alguém no forum pode me ajudar neste erro? segue abaixo o código completo.
      <% Set con = Server.CreateObject("ADODB.Connection") con.open "PROVIDER=SQLOLEDB;DATA SOURCE=10.10.0.3;UID=microuni;PWD=microuni;DATABASE=intranet;Polling=true" empresa=request.form("edtempresa") departamento=request.form("edtdepartamento") usuario=request.form("edtusuario") categoria=request.form("edtcategoria") motivo=request.form("edtmotivo") descricao=request.form("edtdescricao") if empresa <> "" and departamento <> "" and usuario <> "" and categoria <> "" and motivo <> "" and descricao <> "" then set prioridadeemail= con.execute("select email,prioridade,ramal from tab_suporte_usuarios where usuario='" &usuario& "'") email=prioridadeemail("email") prioridade=prioridadeemail("prioridade") ramal=prioridadeemail("ramal") sql="insert into tab_suporte(categoria,motivo,usuario,data,descricao,situacao,empresa,departamento,emailresp,prioridade,ramal) values ('" & categoria & "','" & motivo & "','" & usuario & "',getdate(),'" & descricao & "','Pendente','" & empresa & "','" & departamento & "', '" &email& "', '" & prioridade& "','" & ramal & "')" 'response.write(sql) con.execute(sql) set cod=con.execute("select max(codigo) as codigo from tab_suporte") codigo = cod("codigo") total = codigo set emailsql=con.execute("select email,prioridade,ramal from tab_suporte_usuarios where usuario='" &usuario& "'") emailresp=emailsql("email") prioridade=emailsql("prioridade") ramal=emailsql("ramal") sql="SELECT right(('0' + rtrim(convert(char(2), DATEPART(d, data)))), 2) + '/' + right(('0' + rtrim(convert(char(2), DATEPART(m, data)))), 2) + '/' + convert(char(4), DATEPART(yyyy, data)) + ' - ' + right(('0' + rtrim(convert(char(2), DATEPART(hh, data)))), 2) + ':' + right(('0' + rtrim(convert(char(2), DATEPART(mi, data)))), 2) as data from tab_suporte where codigo='" & codigo & "'" set data=con.execute(sql) sqlfim="SELECT right(('0' + rtrim(convert(char(2), DATEPART(d, data + '03:00')))), 2) + '/' + right(('0' + rtrim(convert(char(2), DATEPART(m, data + '03:00')))), 2) + '/' + convert(char(4), DATEPART(yyyy, data + '03:00')) + ' às ' + right(('0' + rtrim(convert(char(2), DATEPART(hh, data + '03:00')))), 2) + ':' + right(('0' + rtrim(convert(char(2), DATEPART(mi, data + '03:00')))), 2) + ' horas' as datafim from tab_suporte where codigo='" & codigo & "'" set datafinal=con.execute(sqlfim) body = "************************* CHAMADO DE SUPORTE ***************************" & chr(13) & chr(13) body =body & "Número do Chamado...: " & codigo & chr(13) body =body & "Data - Hora.........: " & data("data") & chr(13) body =body & "Empresa.............: " & ucase(empresa) & chr(13) body =body & "Departamento........: " & ucase(departamento) & chr(13) body =body & "Usuário.............: " & ucase(usuario) & chr(13) body =body & "e-Mail..............: " & emailresp & chr(13) body =body & "Ramal...............: " & ramal & chr(13) body =body & "Categoria...........: " & categoria & chr(13) body =body & "Motivo..............: " & motivo & chr(13) body =body & "Nível de Prioridade.: " & prioridade & chr(13) & chr(13) body =body & "************************ DESCRIÇÃO DO CHAMADO **************************" & chr(13) & chr(13) body =body & descricao & chr(13) & chr(13) body =body & "**************************** OBSERVAÇÕES *******************************" & chr(13) & chr(13) body =body & "O prazo máximo para o atendimento deste chamado é até o dia " & datafinal("datafim") & "." & chr(13) & chr(13) body =body & "************************************************************************" body2 = "************************* CHAMADO DE SUPORTE ***************************" & chr(13) & chr(13) body2 =body2 & "Número do Chamado...: " & codigo & chr(13) body2 =body2 & "Data - Hora.........: " & data("data") & chr(13) body2 =body2 & "Empresa.............: " & ucase(empresa) & chr(13) body2 =body2 & "Departamento........: " & ucase(departamento) & chr(13) body2 =body2 & "Usuário.............: " & ucase(usuario) & chr(13) body2 =body2 & "Categoria...........: " & categoria & chr(13) body2 =body2 & "Motivo..............: " & motivo & chr(13) & chr(13) body2 =body2 & "************************ DESCRIÇÃO DO CHAMADO **************************" & chr(13) & chr(13) body2 =body2 & descricao & chr(13) & chr(13) body2 =body2 & "**************************** OBSERVAÇÕES *******************************" & chr(13) & chr(13) body2 =body2 & "O prazo máximo de atendimento deste chamado é de 03 (três) horas, portanto, se até o dia " & datafinal("datafim") & " você ainda não tiver obtido um retorno de nossa equipe, por favor entre em contato através do ramal 247 e informe o código " & codigo & "." & chr(13) & chr(13) body2 =body2 & "************************************************************************" 'response.write(body) 'response.write(body2) Set objmail = Server.CreateObject("Persits.MailSender") objmail.Host = "email-ssl.com.br" objmail.From = "suporte@centerlab.com.br" objmail.FromName = "Equipe de Suporte GENOMA" objmail.AddAddress "suporte@centerlab.com.br" objmail.Subject = "Equipe de Suporte GENOMA" objmail.IsHTML = True objmail.Body = body objmail.Send if Err.Number <> 0 then Response.write "Error: " & Err.description end if Set objmail2 = Server.CreateObject("Persits.MailSender") objmail2.Host = "email-ssl.com.br" objmail2.From = "suporte@centerlab.com.br" objmail2.FromName = "Equipe de Suporte GENOMA" objmail2.AddAddress "suporte@centerlab.com.br" objmail2.Subject = "Equipe de Suporte GENOMA" objmail2.IsHTML = True objmail2.Body = body2 objmail2.Send if Err.Number <> 0 then Response.write "Error: " & Err.description end if msg = codigo session("usuario")="" empresa="" departamento="" usuario="" categoria="" motivo="" descricao="" end if %> <html> <head> <meta http-equiv="Content-Language" content="pt-br"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="GENERATOR" content="Microsoft FrontPage 6.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <title>:: Central de Suporte GENOMA ::</title> <script language="javascript"> function verificaeenvia(){ if (document.formulario.edtempresa.value=='' || document.formulario.edtdepartamento.value=='' || document.formulario.edtusuario.value=='' || document.formulario.edtcategoria.value=='' || document.formulario.edtmotivo.value=='' || document.formulario.edtdescricao.value==''){ alert('É necessário o preenchimento de todos os campos.'); } else{ document.formulario.submit(); } } </script> </head> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" rightmargin="0" bottommargin="0"> <table border="0" width="100%" cellspacing="0" cellpadding="0" height="100%"> <tr> <td valign="top" rowspan="2"><img src="index.1suporte.gif" width="64" height="473" border="0"></td> <td width="51%" height="44" bgcolor="#F5F5F5"> <p align="right"><b><font face="Arial" color="#808080">Solicitação de Suporte</font><font face="Arial" size="3"> </font></b></td> <td width="42%" bgcolor="#2E5E92" height="183" rowspan="2" valign="middle" align="right"> <p align="center"><font color="#FFFFFF"><font face="Verdana" size="1"><strong>Departamento de Informática</strong><br> <em>Cada vez mais agilizando o<br> atendimento aos seus usuários.</em></font></font></p> <p align="center"> </p> <p align="center"> </p> <p align="center"> </p> <p align="center"><font size="1" color="#FFFFFF" face="Tahoma"><b>* O prazo máximo para retorno é de<br> até 3 horas. Caso não seja atendido<br> dentro deste período, por favor<br> comunique no ramal 247.</b></font></p> </td> </tr> <tr> <td width="51%" height="139" valign="top"> <form method="POST" action="index.asp" name="formulario"> <table border="0" width="96%" cellspacing="0" cellpadding="0" height="351"> <tr> <td height="6" align="left" valign="middle"> </td> <td height="6"></td> </tr> <tr> <td width="23%" height="12" align="left" valign="middle"><font face="Verdana" size="1" color="#446B93"><strong> Empresa:</strong></font></td> <td height="12" valign="middle"><font face="Arial" size="1" color="#446B93"> <select name="edtempresa" size="1" id="edtempresa" style="background-color: #F5F5F5; font-family: Arial; font-size: 8 pt; border: 1 solid #C0C0C0" onChange="document.formulario.edtdepartamento.value=''; document.formulario.edtusuario.value=''; document.formulario.submit();"> <option value="<%=empresa%>" selected><%=empresa%></option> <% sql="select * from tab_suporte_empresas where empresa <> '" & empresa & "'" set valorescmb=Con.execute(sql) if not valorescmb.eof then valorescmb.movefirst while not valorescmb.eof%> <option value="<%=valorescmb("empresa")%>"><%=valorescmb("empresa")%></option> <% valorescmb.movenext wend end if %> </select><%if empresa="" then response.write " Selecione a sua empresa." end if%> </font></td> </tr> <tr> <td width="23%" height="30" align="l  
    • By Michel Ol!ver
      Olá galera, estou com  um pequeno problema.. 
      gostaria de duplicar minha estrutura do report viewer dentro de um laço de repetição
       
       
      Tem possibilidade ?
       
      Exemplo do código abaixo : 
      ReportParameter[] parametros = { //cabecalho new ReportParameter("fazenda", ObjPropriedade.nome), new ReportParameter("lavoura", oArea.descricao + " (" + tamLavoura.ToString() + " Ha)"), new ReportParameter("cultura", ObjCiclo.Cultura.nome), new ReportParameter("resteva", resteva), new ReportParameter("dataPlantio", ObjCiclo.dataPlantio.Value.ToShortDateString()), new ReportParameter("dataColheita", ObjCiclo.dataColheita.Value.ToShortDateString()), new ReportParameter("unidade", ObjCiclo.Cultura.UnidadeMedida.nome), new ReportParameter("minima", ObjCiclo.prodMinima.ToString()), new ReportParameter("maxima", ObjCiclo.prodMaxima.ToString()), } reportAnalises.LocalReport.DataSources.Add(new ReportDataSource("dsCicloInter", lstRelCicloInter)); reportAnalises.LocalReport.DataSources.Add(new ReportDataSource("dsFertilizanteInter", lstRelFertilizanteInter)); reportAnalises.LocalReport.DataSources.Add(new ReportDataSource("dsMediaFertilizanteInter", lstMediaRelFertilizanteInter)); Tentei colocar um laço de repetição nessa estrutura, mas somente me apresenta um relatório. 
       
    • By Estevão Alves Avelino
      Estou com duvidas de como pegar os dados digitados no DataGridView e jogar dentro de variáveis, se alguém souber uma maneira de fazer isso ficarei muito grato!
    • By Estevão Alves Avelino
      Estou com duvidas de como pegar os dados digitados no DataGridView e jogar dentro de variáveis, se alguém souber uma maneira de fazer isso ficarei muito grato!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.