Cálculo de Imposto na JTable

3 respostas Resolvido
java
Alyesson

Queria saber onde está o erro de lógica aqui, porque tenho uma JTable onde o usuário preenche as informações de impostos, assim que ele clica em salvar, coloquei um “for” para percorrer a tabela e fazer o cálculo do imposto, porém ele só está fazendo o cálculo na primeira linha, na segunda linha fica em branco (vide foto).

O Código que percorre a tabela é esse:

for(int i = 0; i<tabelProduto.getRowCount(); i++){

String ordNum = (String)tabelProduto.getValueAt(i, 0);
String codEsto = (String)tabelProduto.getValueAt(i, 1);
String quant = (String)tabelProduto.getValueAt(i, 2);
String unida = (String)tabelProduto.getValueAt(i, 3);
String descric = (String)tabelProduto.getValueAt(i, 4);
String prazoEnt = (String)tabelProduto.getValueAt(i, 5);
String precUnit = (String)tabelProduto.getValueAt(i, 6);
String valoDescon = (String)tabelProduto.getValueAt(i, 7);
String icmsProd = (String)tabelProduto.getValueAt(i, 8);
String ipiissProd = (String)tabelProduto.getValueAt(i, 9);

//--------------- Cálculo dos Itens com Impostos--------------

float quantItems = Float.parseFloat(quant);
float precoItems = Float.parseFloat(precUnit);
float icmsdoProdut = Float.parseFloat(icmsProd);
float ipiissdoProdut = Float.parseFloat(ipiissProd);

float precoIcms = (((quantItems *precoItems)*icmsdoProdut)/100);
float precoIpiiss = (((quantItems * precoItems)*ipiissdoProdut)/100);
float totalImpostos = precoIcms + precoIpiiss;

//--------------- Cálculo dos Itens sem Impostos--------------
float precoIcmsComImp = quantItems *precoItems;
float precoIpiissComImp = quantItems * precoItems;
float totProdSemImp = precoIcmsComImp + precoIpiissComImp;

tabelProduto.setValueAt(totProdSemImp, i, 10);
tabelProduto.setValueAt(totalImpostos, i, 11);// este campo na tabela não está sendo preenchido

float somaTudoSemImposto=0;
somaTudoSemImposto = somaTudoSemImposto + Float.parseFloat(tabelProduto.getValueAt(i, 10).toString());
precoTotalMercadoriasSImp.setText(String.valueOf(somaTudoSemImposto));

// resto do código continua abaixo…

3 Respostas

Alyesson
Solucao aceita

Consegui achar o erro… " for(int i = 0; i<tabelProduto.getModel().getRowCount(); i++)". Faltou o .getModel

T

De qualquer forma seu cálculo está estranho.
O “Total Merc. C. Impost.” é mais barato que o valor sem o imposto.
Suas fórmulas estão referenciando cálculos invertidos.
Aqui:

e aqui:

Alyesson

Isso que estou tentando resolver também ainda não achei o erro, porque quando rodei o sistema ficou mais barato mesmo…

Criado 6 de março de 2020
Ultima resposta 6 de mar. de 2020
Respostas 3
Participantes 2