Soma valores de um listarVendas em uma tabela

3 respostas
D

Ola gente tudo bem? essa é minha janela listar vendas estou tentando fazer a soma dos valores das vendas que sao efetuadas em determinada data, quando se busca a data embaixo eu gostaria que aparece o valor de todas as vendas efetuadas naquele dia estou tentando fazer o calculo porem nao estou conseguindo este codigo abaixo é da janela completa porem irei postar
um trecho que tambem se encontra no codigo abaixo que é o trecho onde podera ser feito o calculo do total do valor das vendas...

segue o trecho

else
				{
				double soma = 0;
				for (VendaProduto med : lista) {
					sb.append("Código: " + med.getCodigo() + "\n");
					sb.append("Data: " + converteData(med.getData()) + "\n");
					sb.append("Nome do Vendedor: " + med.getNomevendedor() +"\n");
					sb.append("Descrição:  " + med.getDescricao()+ "\n");
					sb.append("Quantidade:" + med.getQtde()+ "\n");
					sb.append("Valor:  " + med.getValor()+ "\n");
					sb.append("Total:  " + med.getTotal()+ "\n");
					
					
				    // Adiciona uma linha)
				    modelo.addRow(new Object[]{med.getCodigo(),converteData(med.getData()), med.getNomevendedor(), med.getDescricao(),med.getQtde(),med.getValor(),med.getTotal()});

				    soma += med.getValor();
				}
				sb.append("Total de Vendas Efetuadas = " + lista.size()+"\n\n");
				//sb.append("Média dos Anos dos Carros   = " + soma/lista.size());
				sb.append("Total do Valor de Vendas = " +soma+lista.size()+"\n\n");
				totalmedidas.setText("Total de Vendas Efetuadas = " + lista.size());
				totalvalor.setText("Total valor de vendas" +soma);
				//mediaano.setText("Média dos Clientes Cadastrados   = " + soma/lista.size());
				
				}

codigo da janela completa este codigo acima tambem esta abaixo junto com o codigo da janela completa alguem pode me ajudar a fazer este calculo porem nao esta dando certo?

import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;

import Modelo.Med;
import Modelo.VendaProduto;

public  class ListarVendas extends JFrame {

	private JTextArea area;
	private JScrollPane j1;
	private JButton fechar;
	
	// Objetos utilizados para 
	// procura pela descrição informada
	private JLabel     labelprocura;
	private JTextField procura;
	private JButton    consulta;
		
	private static EntityManagerFactory emf;
	private static EntityManager em;

	DefaultTableModel modelo;
	
	private JTextField totalmedidas,totalvalor;
	private JButton button;
	//private JTextField mediaano;
	

	public ListarVendas(EntityManagerFactory f1, EntityManager e1)
	{
		super("Listar Vendas Efetuadas");
		Container c = getContentPane();
		getContentPane().setLayout(null);
		
		emf = f1;
		em = e1;
		
		//area = new JTextArea();
		//j1 = new JScrollPane(area);
		JButton fechar = new JButton("Fechar");
		
		labelprocura = new JLabel("Busca por Data");
		procura = new JTextField();
		
		totalmedidas = new JTextField();
		totalvalor = new JTextField();
		//mediaano    = new JTextField();
		
		consulta = new JButton("Executar");
		
		labelprocura.setBounds(10, 10, 150, 20);
		procura.setBounds(132, 10, 150, 20);
		consulta.setBounds(292, 10, 100, 20);
		
		//area.setBounds(50, 20, 400, 300);
		// Definir o posicionamento do JScrollPane,
		// pois dentro dele está o area que é um JTextArea
		
	    modelo = new 
	    DefaultTableModel();
	    
	    // constrói a tabela
	    JTable tabela = new JTable(modelo);
	    
	    // Cria duas colunas
	    modelo.addColumn("Código");
	    modelo.addColumn("Data");
	    modelo.addColumn("Nome do Vendedor");
	    modelo.addColumn("Descriçao");
	    modelo.addColumn("Quantidade");
	    modelo.addColumn("Valor");
	    modelo.addColumn("Total");
	    
	    tabela.getColumnModel().getColumn(0).setPreferredWidth(5);   
        tabela.getColumnModel().getColumn(1).setPreferredWidth(40);   
        tabela.getColumnModel().getColumn(2).setPreferredWidth(100);   
        tabela.getColumnModel().getColumn(3).setPreferredWidth(100);   
        tabela.getColumnModel().getColumn(4).setPreferredWidth(10);   
        tabela.getColumnModel().getColumn(5).setPreferredWidth(50);   
        tabela.getColumnModel().getColumn(6).setPreferredWidth(50);
	    
	    
	    //j1.setBounds(50, 60, 400, 380);
		fechar.setBounds(10, 410, 110, 25);
		
		fechar.addActionListener (new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				dispose();

			}
			
		});
		
		consulta.addActionListener (new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0) {
				
				
				List <VendaProduto> lista = null;
				List resultList;
				
				if (procura.getText().trim().equalsIgnoreCase(""))
					resultList= em.createQuery("from VendaProduto").getResultList();
				else // Senão ele digitou alguma coisa na procura
				{
					Query consulta = 
						em.createQuery("SELECT i FROM VendaProduto i WHERE UPPER(i.data) LIKE :argumento");
					consulta.setParameter("argumento", "%" + procura.getText().toUpperCase() + "%");
					resultList= consulta.getResultList();
				}
				
				lista = resultList;
				
				StringBuilder sb = new StringBuilder();

				if (lista.isEmpty())
				{
					sb.append("Não há vendas cadastradas!");
				}
				else
				{
				double soma = 0;
				for (VendaProduto med : lista) {
					sb.append("Código: " + med.getCodigo() + "\n");
					sb.append("Data: " + converteData(med.getData()) + "\n");
					sb.append("Nome do Vendedor: " + med.getNomevendedor() +"\n");
					sb.append("Descrição:  " + med.getDescricao()+ "\n");
					sb.append("Quantidade:" + med.getQtde()+ "\n");
					sb.append("Valor:  " + med.getValor()+ "\n");
					sb.append("Total:  " + med.getTotal()+ "\n");
					
					
				    // Adiciona uma linha)
				    modelo.addRow(new Object[]{med.getCodigo(),converteData(med.getData()), med.getNomevendedor(), med.getDescricao(),med.getQtde(),med.getValor(),med.getTotal()});

				    soma += med.getValor();
				}
				sb.append("Total de Vendas Efetuadas = " + lista.size()+"\n\n");
				//sb.append("Média dos Anos dos Carros   = " + soma/lista.size());
				sb.append("Total do Valor de Vendas = " +soma+lista.size()+"\n\n");
				totalmedidas.setText("Total de Vendas Efetuadas = " + lista.size());
				totalvalor.setText("Total valor de vendas" +soma);
				//mediaano.setText("Média dos Clientes Cadastrados   = " + soma/lista.size());
				
				}
				
				//area.setText(sb.toString());

			}
			private String converteData(Calendar data) {
				// TODO Auto-generated method stub
				return new SimpleDateFormat("dd/MM/yyyy").format(new Date().getTime());
			}
		});

	   tabela.setPreferredScrollableViewportSize(new 
		      Dimension(1000, 1000));

	    JScrollPane scrollPane = new JScrollPane(tabela);
	    scrollPane.setBounds(10, 44, 984, 300);
	    
		totalmedidas.setBounds(10, 355, 990, 20);
		totalvalor.setBounds(10, 385, 990, 20);

	    c.add(scrollPane);
	    c.add(totalmedidas);
	    c.add(totalvalor);

		    
		c.add(labelprocura);
		c.add(procura);
		c.add(consulta);

		//c.add(area);
		//c.add(j1);
		
		c.add(fechar);
		
		button = new JButton("Limpar");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				int x = modelo.getRowCount();  
				for(int a = 0; a < x; a++)  
				{  
				modelo.removeRow(0);  
				}  
			}
		});
		button.setBounds(132, 410, 110, 25);
		getContentPane().add(button);
		
		setSize(1023,500);
		setVisible(true);
		setLocationRelativeTo(null);
    }

	public static void main(String[] args) {

	}

}

3 Respostas

EduFranzoni

Qual o erro que acontece? você já debugou? verificou os valores de soma para cada passagem do loop?

D

entao amigo nao tem erro nenhum só a soma que esta fazendo errado aqueele probleminha da busca por data que ta dando erro mais só o calculo só nao esta somando corretamente.

D

a parte da soma é esta daqui ele vai pega o campo valor e soma tudo daquela determinada data e retorna o valor correto só o calculo que esta errado...

eu estava tentando mexer no calculo aqui, ele esta retornando um valor mais nao o correto as somas da coluna valor buscando por data.

soma += med.getValor();
else  
                {  
                double soma = 0;  
                for (VendaProduto med : lista) {  
                    sb.append("Código: " + med.getCodigo() + "\n");  
                    sb.append("Data: " + converteData(med.getData()) + "\n");  
                    sb.append("Nome do Vendedor: " + med.getNomevendedor() +"\n");  
                    sb.append("Descrição:  " + med.getDescricao()+ "\n");  
                    sb.append("Quantidade:" + med.getQtde()+ "\n");  
                    sb.append("Valor:  " + med.getValor()+ "\n");  
                    sb.append("Total:  " + med.getTotal()+ "\n");  
                      
                      
                    // Adiciona uma linha)  
                    modelo.addRow(new Object[]{med.getCodigo(),converteData(med.getData()), med.getNomevendedor(), med.getDescricao(),med.getQtde(),med.getValor(),med.getTotal()});  
  
                    soma += med.getValor();  
                }  
                sb.append("Total de Vendas Efetuadas = " + lista.size()+"\n\n");  
                //sb.append("Média dos Anos dos Carros   = " + soma/lista.size());  
                sb.append("Total do Valor de Vendas = " +soma+lista.size()+"\n\n");  
                totalmedidas.setText("Total de Vendas Efetuadas = " + lista.size());  
                totalvalor.setText("Total valor de vendas" +soma);  
                //mediaano.setText("Média dos Clientes Cadastrados   = " + soma/lista.size());  
                  
                }  
                  
                //area.setText(sb.toString());  
  
            }
Criado 1 de julho de 2012
Ultima resposta 1 de jul. de 2012
Respostas 3
Participantes 2