Olá a todos, estou com um problema, eu preciso criar uma aplicação e tive uma ideia para uma funcionalidade, porém não sei como começar nem o caminho que devo seguir o que estudar para concretizar a ideia.
Eu vou criar uma funcionalidade que o usuário vai digitar em um campo o que ele gastou no dia, é uma aplicação de controle de gastos financeiros, essa funcionalidade logicamente precisa de um formulário que adiciona campos no banco de dados aos poucos, não pode sr um formulário fixo porque o usuário pode fazer diversas compras no dia, minha duvida é como faço para criar um campo de formulário onde o usuário escreve o que gastou e o valor ai depois clica no botão mais e o campo limpa e ele escreve outro e assim por diante, a principio os dados tem que ser guardados no banco de acordo com a data.
Fica assim:
dia 01/05/2018 fica guardados os dados de compras daquele dia.
dia 02/05/2018 fica guardados os dados de compras daquele dia, e por ai vai
Só que
Não precisa ser idêntico, mas pega a base. No seu caso vc quer: observação/gasto, data da compra, e etc, aí vc vai modulando do seu jeito.
Sobre apertar em “+” e limpar os campos, vc pode fazer assim: quando for criar o cadastro, vc já seta um id pra aquele cadastro, ex:
public void abrirPagamento() {
conecta.conexao();
try {
PreparedStatement pst = conecta.conn.prepareStatement("insert into compras (valor,data,idcomprador) values (?,?,?)"); // aqui vc pode fazer um inner join com a tabela de compradores, aí cada comprador vai ter o seu id.
pst.setFloat(1, 0);
pst.setInt(2, 0);
pst.setInt(3, 0);
pst.execute();
conecta.executaSQL("select * from venda");
conecta.rs.last();
codVenda = conecta.rs.getInt("id");
conecta.desconecta();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(rootPane, "Erro!/n" + ex);
}
}
Aí depois do id setado, vc vai lá no botãozinho de “+” e quando clicar vc seta um update pra cada item, ou seja: eu comprei um chinelo (apertei no botão “+”, campoitem.setText(""); ), aí fui lá e comprei um cinema (apertei no botão “+”,campoitem2.setText(""); )
Olá obrigado mesmo! agradeço muito a ajuda, então tipo a pessoa chega e setaa data de hoje por exemplo: 02/06/2018 ai começa a anotar o que gastou nesse dia, Cinema coloca o valor e ai depois de anotar cinema clica no botão + ai adiciona outro gasto, compra mercado anota valores etc ai clica em + e adiciona outro transporte e clica em salvar, ai tudo isso vai para o banco com o id e data únicos, ai amanhã ela adiciona outra lista de gasto na data 04/06/2018, mesmo esquema ai vai…
Com isso eu vou usar no JFreechart para gerar os gráficos de comparação de gastos no mês. Ai eu vou buscar no banco pela data, ID, por isso.
Valeu mesmo.
Ahhhhhhh, entendi! Então nem coloca pra a pessoa inserir a data.
public void dataHoje(){
campodata.setText(new SimpleDateFormat("dd/MM/yyyy").format(new Date(System.currentTimeMillis())));
}
Deixa uma data fixa, aí vc nem se dá o trabalho de ficar colocando vários campos só no (+), a pessoa vai poder adicionar MILHÕES de coisas em um dia, como você vai puxar por data, não vai fazer diferença.
Só uma dúvida, precisa tudo ser em um ID só ou cada compra vc quer que gere um ID?
Se você quer que cada compra gere um ID, o que eu acho bem melhor, você cadastra normal, não precisa aquilo do botão “+”. Você faz todo o formulário certinho e aí salvaria um de cada vez, não precisaria de tanta “manobra”
É faz sentido, a pessoa clica em salvar e a data fica fixa para a do dia, depois mesmo que cada item da lista tenha IDS diferentes não faz diferença né? porque da para buscar por data normalmente? tipo eu vou lá e busco todos os itens de um determinado intervalo de dias.
Na tela dos gráficos eu quero que a pessoa selecione o intervalo de dias para gerar o gráfico, tipo de 01/05/2018 até 20/05/2018 ai o gráfico gera. Se isso for complicado posso deixar o gráfico automático mesmo sem a pessoa decidir o intervalo, ai eu deixo o gráfico gerando de acordo com as entradas do usuário pelos dias que ele já inseriu informações, ai no eixo Y fica as categorias exemplo, saúde, lazer, transporte etc e no eixo X fica as datas, e o de pizza também.
É um trabalho para a faculdade, estou montando as telas e colocando as funcionalidades.
Obrigado mesmo pela atenção.
Sim, nesse caso vai de boa, na hora de buscar vc vai fazer "select * from suaTabela where data = 'data que vc quiser' order by id". Aí ele puxa por data e organiza por ordem de cadastro.
Sobre os gráficos, vc pode usar o iReport? Isso vai facilitar muito, ao invés de fazer tudo no Java, fora que vc vai poder fazer os relatórios normalmente, e isso de gerar por intervalo também vai ser mais simples.