Somar quantidade/valor DataList
Boa tarde,
Tenho uma DataList dentro de outra DataList
ASPX
<table width="805" border="0" cellpadding="5" cellspacing="0">
<tr valign="top">
<td bgcolor="#33CC99">
<asp:DataList ID="Mont_Cabec" runat="server"
GridLines="Both"
RepeatColumns="2"
CellPadding="3"
CellSpacing="0"
Font-Name="Arial"
Font-Size="8pt" onitemdatabound="Mont_Cabec_ItemDataBound">
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<caption class="style1">*** PEDIDO DE MONTAGEM ***</caption>
<tr>
<td><b>Data.....: </b> </td>
<td><asp:Label ID="lblData" runat="server" Text=<%#DataBinder.Eval(Container.DataItem, "DataVenda") %>></asp:Label></td>
<td><b>Vend.:</b> </td>
<td><asp:Label ID="lblVend" runat="server" Text=<%#DataBinder.Eval(Container.DataItem, "Operador") %>></asp:Label></td>
<td><b>Nota Fiscal..:</b> </td>
<td><asp:Label ID="lblNota" runat="server" Text=<%#DataBinder.Eval(Container.DataItem, "NotaFiscal") %>></asp:Label></td>
</tr>
<tr>
<td><b>Cliente..: </b> </td>
<td colspan="4"><asp:Label runat="server" ID="lblCliente" Text=<%# DataBinder.Eval(Container.DataItem, "Cliente") %>></asp:Label></td>
</tr>
<tr>
<td><b>Endereço.: </b> </td>
<td colspan="4"><asp:Label runat="server" ID="lblEndereco" Text=<%# DataBinder.Eval(Container.DataItem, "Endereco") %>></asp:Label></td>
</tr>
<tr>
<td><b>Bairro: </b> </td>
<td><asp:Label ID="lblBairro" runat="server" Text=<%# DataBinder.Eval(Container.DataItem, "Bairro") %>></asp:Label></td>
<td><b>Lote......:</b></td>
<td><asp:Label ID="lblLote" runat="server" Text=<%# DataBinder.Eval(Container.DataItem, "Lote") %>></asp:Label></td>
</tr>
<tr>
<td><b>Cidade...: </b> </td>
<td><asp:Label ID="lblCidade" runat="server" Text=<%# DataBinder.Eval(Container.DataItem, "Cidade") %>></asp:Label></td>
<td><b>Telefone..:</b></td>
<td><asp:Label ID="lblTelefone" runat="server" Text=<%# DataBinder.Eval(Container.DataItem, "Telefone", "{0:(##)####-####}") %>></asp:Label></td>
</tr>
<tr>
<td colspan="5">---------------------------------------------------------------------------------------------------</td>
</tr>
<tr>
<td width="50">Código</td>
<td width="600" align="left">Descrição</td>
<td width="50">Qtd.</td>
<td width="100">V. Unit.</td>
<td>V. Total</td>
</tr>
<tr>
<td colspan="5">---------------------------------------------------------------------------------------------------</td>
</tr>
<tr>
<td colspan="5">
<asp:DataList ID="Mont_Prod" runat="server"
GridLines="None"
RepeatColumns="1"
CellPadding="0"
CellSpacing="0"
Font-Name="Arial"
Font-Size="8pt"
onitemdatabound="Mont_Prod_ItemDataBound">
<ItemTemplate>
<table width="100%" border="0">
<tr>
<td width="50"><%# DataBinder.Eval(Container.DataItem, "CodProduto") %></td>
<td width="200"><%# DataBinder.Eval(Container.DataItem, "DescProduto") %></td>
<td width="50" align="right"><asp:Label runat="server" ID="lblQtd" Text=<%# DataBinder.Eval(Container.DataItem, "Qtd") %>></asp:Label></td>
<td width="100" align="right"><%# DataBinder.Eval(Container.DataItem, "VlrUnit", "{0:0.00}") %></td>
<td width="100" align="right"><asp:Label runat="server" ID="lblTotal" Text=<%# DataBinder.Eval(Container.DataItem, "VlrTotal", "{0:0.00}") %>></asp:Label></td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
<tr>
<td colspan="5">---------------------------------------------------------------------------------------------------</td>
</tr>
<tr>
<td></td>
<td>SOMA</td>
<td><asp:Label ID="lblTotQtd" runat="server"></asp:Label></td>
<td></td>
<td><asp:Label id="lblTotGeral" runat="server"></asp:Label></td>
</tr>
<tr>
<td colspan="5">---------------------------------------------------------------------------------------------------</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
Código C#
protected void Mont_Cabec_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem)
return;
if (e.Item.Controls.Contains((DataList)e.Item.FindControl("Mont_Prod")))
{
string Lote = ((Label)e.Item.FindControl("lblLote")).Text;
string Nota = ((Label)e.Item.FindControl("lblNota")).Text;
DataList Mont_Prod = (DataList)e.Item.FindControl("Mont_Prod");
Mont_Prod.DataSource = ListaProdutos(Lote, Nota);
Mont_Prod.DataBind();
Label lblTotQtd = (Label)e.Item.FindControl("lblTotQtd");
lblTotQtd.Text = Convert.ToString(vQtd);
Label lblTotGeral = (Label)e.Item.FindControl("lblTotGeral");
lblTotGeral.Text = String.Format("{0:c}", vTotGeral);
}
}
protected void Mont_Prod_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType != ListItemType.AlternatingItem)
return;
else
{
string lblQtd = ((Label)e.Item.FindControl("lblQtd")).Text;
string lblTotal = ((Label)e.Item.FindControl("lblTotal")).Text;
vQtd += Convert.ToInt32(lblQtd);
vTotGeral += float.Parse(lblTotal);
}
}
Funcionando perfeitamente, porém preciso realizar uma somatória da Quantidade e Valor Total, mas ele está acumulando e "jogando" a soma de todos os itens (imagem)
/applications/core/interface/imageproxy/imageproxy.php?img=http://i56.tinypic.com/eug30o.jpg&key=f0da18b03858bc0a233d5eb07776087e0cd27e7d8f11e6cc77cb17d99e54d0ec" alt="eug30o.jpg" />
Discussão (6)
Carregando comentários...