KhaosDoctor 242 Report post Posted November 28, 2012 O erro acontece em que linha? Porque isso não tem nada a ver com o Geral. Share this post Link to post Share on other sites
Kr3w^ 0 Report post Posted November 28, 2012 então cara, não da error, simplesmente parece que não faz a soma corretamente, olha como esta o codigo geral Variaveis criadas: double valorprod1 = 0, valorprod2 = 0, totalprodutos = 0, valorserv1 = 0, valorserv2 = 0, totalservicos = 0; double geraltotal = 0; int col = 0, coluna = 0; frmOrçamento_Load: private void frmOrcamento_Load(object sender, EventArgs e) { Cabecalho(); for (int lin = 0; lin < ClassArrayProdutos.numRegProd; lin++) { for (col = 0; col < 6; col++) { valorprod1 = double.Parse(ClassArrayProdutos.vetorprodutos[lin, 3].ToString()); valorprod2 = double.Parse(ClassArrayProdutos.vetorprodutos[lin, 4].ToString()); totalprodutos = valorprod1 * valorprod2; //SOMANDO OS VALORES geraltotal = geraltotal + totalprodutos; txtBoxImprimir.Text = txtBoxImprimir.Text + ClassArrayProdutos.vetorprodutos[lin, col]; EspacoProdutos(); } if (col == 6) { txtBoxImprimir.Text = txtBoxImprimir.Text + totalprodutos.ToString("#,##0.00"); col = 0; NovaLinha(); } else { col++; } } Divisão(); Servicos(); for (int linha = 0; linha < ClassArrayServicos.numRegServ; linha++) { for (coluna = 0; coluna < 3; coluna++) { valorserv1 = double.Parse(ClassArrayServicos.vetorservicos[linha, 1].ToString()); valorserv2 = double.Parse(ClassArrayServicos.vetorservicos[linha, 2].ToString()); totalservicos = valorserv1 * valorserv2; //SOMANDO OS VALORES //geraltotal = geraltotal + totalservicos; txtBoxImprimir.Text = txtBoxImprimir.Text + ClassArrayServicos.vetorservicos[linha, coluna]; EspacoProdutos(); } if (coluna == 3) { txtBoxImprimir.Text = txtBoxImprimir.Text + totalservicos.ToString("#,##0.00"); coluna = 0; NovaLinha(); } else { coluna++; } } Divisão(); Total(); totalespaco(); txtBoxImprimir.Text = txtBoxImprimir.Text + geraltotal.ToString(); } Share this post Link to post Share on other sites
KhaosDoctor 242 Report post Posted November 28, 2012 Calma, ele está dando erro aonde? No Subtotal de cada item ou no geral? Share this post Link to post Share on other sites
Kr3w^ 0 Report post Posted November 29, 2012 no item geral, olha um exemplo: Adicionei 2 produtos e 2 serviços, os SubsTotais deles estão corretos... Quantidade * Valor de cada um, ja a soma total olha o geral que deu "3090" ...?? Segue o código: Variaveis: double valorprod1 = 0, valorprod2 = 0, totalprodutos = 0, valorserv1 = 0, valorserv2 = 0, totalservicos = 0; double geraltotal = 0; int col = 0, coluna = 0; Código: Cabecalho(); for (int lin = 0; lin < ClassArrayProdutos.numRegProd; lin++) { for (col = 0; col < 6; col++) { valorprod1 = double.Parse(ClassArrayProdutos.vetorprodutos[lin, 3].ToString()); valorprod2 = double.Parse(ClassArrayProdutos.vetorprodutos[lin, 4].ToString()); totalprodutos = valorprod1 * valorprod2; //SOMANDO OS VALORES geraltotal = geraltotal + totalprodutos; txtBoxImprimir.Text = txtBoxImprimir.Text + ClassArrayProdutos.vetorprodutos[lin, col]; EspacoProdutos(); } if (col == 6) { txtBoxImprimir.Text = txtBoxImprimir.Text + totalprodutos.ToString("#,##0.00"); col = 0; NovaLinha(); } else { col++; } } Divisão(); Servicos(); for (int linha = 0; linha < ClassArrayServicos.numRegServ; linha++) { for (coluna = 0; coluna < 3; coluna++) { valorserv1 = double.Parse(ClassArrayServicos.vetorservicos[linha, 1].ToString()); valorserv2 = double.Parse(ClassArrayServicos.vetorservicos[linha, 2].ToString()); totalservicos = valorserv1 * valorserv2; //SOMANDO OS VALORES geraltotal = geraltotal + totalservicos; txtBoxImprimir.Text = txtBoxImprimir.Text + ClassArrayServicos.vetorservicos[linha, coluna]; EspacoProdutos(); } if (coluna == 3) { txtBoxImprimir.Text = txtBoxImprimir.Text + totalservicos.ToString("#,##0.00"); coluna = 0; NovaLinha(); } else { coluna++; } } Divisão(); Total(); totalespaco(); txtBoxImprimir.Text = txtBoxImprimir.Text + geraltotal.ToString(); Share this post Link to post Share on other sites
KhaosDoctor 242 Report post Posted November 29, 2012 Faça assim, coloque alguns breakpoints nesta parte e veja os valores que a variável está adquirindo. Poste as prints aqui. Share this post Link to post Share on other sites
Kr3w^ 0 Report post Posted November 29, 2012 vamos la... para testar eu adicionei 1 produto e 1 serviço produto no valor de 120 reais com 2 quantidades = 240,00 serviço no valor de 20 reais com 2 quantidades = 40,00 Print 1: For dos produtos. ( cursor em cima da variavel 'geraltotal' ) Print2: For dos produtos. ( cursor em cima da variavel 'totalprodutos' **OBS: repare que ele contem o valor do produto adicionado - 120,00 reais * 2 quantidades = 240,0) Print3: For dos serviços. ( cursor em cima da variavel 'totalgeral' **OBS: repare que a variavel geraltotal ja está com um valor de 1440,00 ... sendo que era pra estar com o valor de 240,00 que era do produto adicionado... ) Print4: For dos serviços. ( cursor em cima da variavel 'totalservicos' **OBS: repare que ele contem o valor do serviço que eu adicionei - 20 reais * 2 quantidades = 40,0 ) Print5: o Final do código ( que no caso deveria mostrar o resultado de totalprodutos adicionados e totalserviços, no caso desse exemplo seria: 240,00 + 40,00 = 280,00 , **OBS: mais olhe o valor da variavel... ) Share this post Link to post Share on other sites
KhaosDoctor 242 Report post Posted November 29, 2012 Ele está somando coisas a mais ai... Segundo meus calculos, para dar 1440 ele tem que somar 240 na variável 6 vezes, ou seja, ele está passando na linha, tente adicionar este código no final do for das linhas, após as colunas. Share this post Link to post Share on other sites
Kr3w^ 0 Report post Posted November 29, 2012 resolvi o problema, era a questão do que voce disse mesmo... eu tive que colocar as somas em outros lugares especificos... por exemplo a soma do valor * quantidade, coloquei dentro do if que diz ( col == 6 ) que é a coluna do valor.. e assim por diante! muito obrigado! Share this post Link to post Share on other sites
Kr3w^ 0 Report post Posted November 30, 2012 sobre o caso de deixar cada item embaixo da sua respectiva coluna acho que dessa maneira que eu encontrei aqui poderia ser feito normalmente nesse exemplo mostra os itens ficando em sequencia tipo Codigo Produto Marca Valor Unit Quantidade Valor R$ 01, TestProd, TestMarc, 100,00, 2, 200,00 da pra ser feito igual no exemplo a baixo né? http://www.macoratti.net/12/08/c_ftxt1.htm veja já no começo do tutorial, da pra ficar dessa forma né? com esse espaçamento defenido pelo {0-10} e assim por diante.. se tiver como e for mais facil, como eu poderia estar jogando isso no Array? Share this post Link to post Share on other sites
KhaosDoctor 242 Report post Posted November 30, 2012 Bom, é isso mesmo, para jogar no Array você precisará do StringBuilder que o próprio autor mostra como fazer, então seguindo este tutorial, o que você precisa fazer é montar toda linha antes e depois exibí-la usando o comando .ToString(), leia todo o tutorial que você entenderá como usar o StringBuilder da classe .Text Share this post Link to post Share on other sites
MaikKiam 0 Report post Posted January 1, 2015 Ola, 2015 hehehe Bom estou com a dificuldade de imprimir um orçamento que realizo no datagrid, e pelo que vi Kr3w^ conseguiu. Tem como mostrar o código por completo para mim ter ideia do que fez. Agradeço. Share this post Link to post Share on other sites
KhaosDoctor 242 Report post Posted January 4, 2015 Vish cara, acho que o melhor a fazer é ir rolando as páginas pra trás para poder pegar os trechos Share this post Link to post Share on other sites