none
Problemas com o If RRS feed

  • Pergunta

  • Galera estou criando um programinha que faz o calculo de cubagem, mas o problema que encontrei foi outro, consegui fazer o calculo tudo certinho.

    Mas estou com problema é em outro lado do calculo, estou tentando adicionar mais medidas, mas, estou barrando em um problema, estou postando o código aqui!

    private void groupBox9_Leave(object sender, EventArgs e)
            {
                if (MessageBox.Show("Deseja adicionar mais medidas?", "Medidas", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    largura = Convert.ToDecimal(txt_Largura.Text);
                    altura = Convert.ToDecimal(txt_Altura.Text);
                    comprimento = Convert.ToDecimal(txt_Comprimento.Text);
                    qntd = Convert.ToDecimal(txt_Qntd.Text);
                    kg2 = Convert.ToDecimal(txt_Peso.Text);


                    dimensoes = altura * largura * comprimento;
                    cubagem = qntd * dimensoes;
                    convertido = cubagem * 300;


                    convertido2 = convertido2 + convertido;
                    kg2 = kg2 + kg;

                    lbl_Largura.Text = largura.ToString();
                    lbl_Altura.Text = altura.ToString();
                    lbl_Comprimento.Text = comprimento.ToString();
                    lbl_Qntd.Text = qntd.ToString();
                    lbl_Peso.Text = kg2.ToString();
                }
                else
                {
                    if (convertido2 == 0)
                    {
                        largura = Convert.ToDecimal(txt_Largura.Text);
                        altura = Convert.ToDecimal(txt_Altura.Text);
                        comprimento = Convert.ToDecimal(txt_Comprimento.Text);
                        qntd = Convert.ToDecimal(txt_Qntd.Text);
                        kg = Convert.ToDecimal(txt_Peso.Text);


                        dimensoes = altura * largura * comprimento;
                        cubagem = qntd * dimensoes;
                        convertido = cubagem * 300;

                        lbl_Largura.Text = largura.ToString();
                        lbl_Altura.Text = altura.ToString();
                        lbl_Comprimento.Text = comprimento.ToString();
                        lbl_Qntd.Text = qntd.ToString();
                        lbl_Peso.Text = kg.ToString();
                    }
                }

                kg2 = kg2;

                if (convertido >= kg)
                {
                    lbl_Resultado.Text = (Math.Floor(convertido * 100) / 100).ToString() + "Kg \nCubagem";
                }
                else
                {
                    lbl_Resultado.Text = kg.ToString() + "Kg \nPeso";
                }

                lbl_Largura.Text = largura.ToString();
                lbl_Altura.Text = altura.ToString();
                lbl_Comprimento.Text = comprimento.ToString();

                lbl_Convertido.Text = (Math.Floor(convertido * 100) / 100).ToString() + "Kg";
                lbl_Cubagem.Text = (Math.Floor(cubagem * 100) / 100).ToString() + "m³";
                lbl_Peso.Text = kg.ToString() + "Kg";

                txt_PesqCidade.Enabled = true;
                txt_PesoNf.Enabled = true;
                txt_ValorNf.Enabled = true;

                radioBtn_Caixa.Enabled = false;
                radioBtn_Malote.Enabled = false;
                
                txt_Altura.Enabled = false;
                txt_Comprimento.Enabled = false;
                txt_Largura.Enabled = false;
                txt_Peso.Enabled = false;
                txt_Qntd.Enabled = false;

                txt_PesqCidade.Focus();
            }

    A minha intenção é fazer o seguinte, preencho os 5 campos (Quantidade, Peso, Comprimento, Largura, Altura) depois do último campo faço uma pergunta se o usuário quer adicionar mais medidas. Respondendo "Sim" ele deve voltar para o 1º campo que para mim é a Quantidade, mas no exemplo estou entrando no groupbox que contem os TextBox's. Mas, ele pergunta 2 vezes se a pessoa que colocar mais medidas, quando não fica um looping infito, somente na tela de pergunta da dimensão

    Por Favor me deem uma ajuda,  quiserem podem tb me mandar email! Muito obrigado e Bom dia!



    sábado, 4 de agosto de 2012 04:44

Respostas

  • Solucao final:

    private void groupBox9_Leave(object sender, EventArgs e)
            {
                if (MessageBox.Show("Deseja adicionar mais medidas?", "Medidas", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    largura = Convert.ToDecimal(txt_Largura.Text);
                    altura = Convert.ToDecimal(txt_Altura.Text);
                    comprimento = Convert.ToDecimal(txt_Comprimento.Text);
                    qntd = Convert.ToDecimal(txt_Qntd.Text);
                    kg2 = Convert.ToDecimal(txt_Peso.Text);


                    dimensoes = altura * largura * comprimento;
                    cubagem = qntd * dimensoes;
                    convertido = cubagem * 300;


                    convertido2 = convertido2 + convertido;
                    kg2 = kg2 + kg;

                    lbl_Largura.Text = largura.ToString();
                    lbl_Altura.Text = altura.ToString();
                    lbl_Comprimento.Text = comprimento.ToString();
                    lbl_Qntd.Text = qntd.ToString();
                    lbl_Peso.Text = kg2.ToString();
                }
                else
                {
                    if (convertido2 == 0)
                    {
                        largura = Convert.ToDecimal(txt_Largura.Text);
                        altura = Convert.ToDecimal(txt_Altura.Text);
                        comprimento = Convert.ToDecimal(txt_Comprimento.Text);
                        qntd = Convert.ToDecimal(txt_Qntd.Text);
                        kg = Convert.ToDecimal(txt_Peso.Text);


                        dimensoes = altura * largura * comprimento;
                        cubagem = qntd * dimensoes;
                        convertido = cubagem * 300;

                        lbl_Largura.Text = largura.ToString();
                        lbl_Altura.Text = altura.ToString();
                        lbl_Comprimento.Text = comprimento.ToString();
                        lbl_Qntd.Text = qntd.ToString();
                        lbl_Peso.Text = kg.ToString();
                    }
                }---remove isto e usa 

    else

    {

                kg2 = kg2;

                if (convertido >= kg)
                {
                    lbl_Resultado.Text = (Math.Floor(convertido * 100) / 100).ToString() + "Kg \nCubagem";
                }
                else
                {
                    lbl_Resultado.Text = kg.ToString() + "Kg \nPeso";
                }

    }

    }

                lbl_Largura.Text = largura.ToString();
                lbl_Altura.Text = altura.ToString();
                lbl_Comprimento.Text = comprimento.ToString();

                lbl_Convertido.Text = (Math.Floor(convertido * 100) / 100).ToString() + "Kg";
                lbl_Cubagem.Text = (Math.Floor(cubagem * 100) / 100).ToString() + "m³";
                lbl_Peso.Text = kg.ToString() + "Kg";

                txt_PesqCidade.Enabled = true;
                txt_PesoNf.Enabled = true;
                txt_ValorNf.Enabled = true;

                radioBtn_Caixa.Enabled = false;
                radioBtn_Malote.Enabled = false;
                
                txt_Altura.Enabled = false;
                txt_Comprimento.Enabled = false;
                txt_Largura.Enabled = false;
                txt_Peso.Enabled = false;
                txt_Qntd.Enabled = false;

                txt_PesqCidade.Focus();
            }


    http://malange-levi.blogspot.co.uk/

    sábado, 4 de agosto de 2012 19:37
    Moderador

Todas as Respostas

  • A tua logica esta mal feito. o else esta fora do lugar se voce quer fazer como explicaste entao o codigo tem de ficar assim?

    private void groupBox9_Leave(object sender, EventArgs e)
            {
                if (MessageBox.Show("Deseja adicionar mais medidas?", "Medidas", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    largura = Convert.ToDecimal(txt_Largura.Text);
                    altura = Convert.ToDecimal(txt_Altura.Text);
                    comprimento = Convert.ToDecimal(txt_Comprimento.Text);
                    qntd = Convert.ToDecimal(txt_Qntd.Text);
                    kg2 = Convert.ToDecimal(txt_Peso.Text);


                    dimensoes = altura * largura * comprimento;
                    cubagem = qntd * dimensoes;
                    convertido = cubagem * 300;


                    convertido2 = convertido2 + convertido;
                    kg2 = kg2 + kg;

                    lbl_Largura.Text = largura.ToString();
                    lbl_Altura.Text = altura.ToString();
                    lbl_Comprimento.Text = comprimento.ToString();
                    lbl_Qntd.Text = qntd.ToString();
                    lbl_Peso.Text = kg2.ToString();
                }
                else
                {
                    if (convertido2 == 0)
                    {
                        largura = Convert.ToDecimal(txt_Largura.Text);
                        altura = Convert.ToDecimal(txt_Altura.Text);
                        comprimento = Convert.ToDecimal(txt_Comprimento.Text);
                        qntd = Convert.ToDecimal(txt_Qntd.Text);
                        kg = Convert.ToDecimal(txt_Peso.Text);


                        dimensoes = altura * largura * comprimento;
                        cubagem = qntd * dimensoes;
                        convertido = cubagem * 300;

                        lbl_Largura.Text = largura.ToString();
                        lbl_Altura.Text = altura.ToString();
                        lbl_Comprimento.Text = comprimento.ToString();
                        lbl_Qntd.Text = qntd.ToString();
                        lbl_Peso.Text = kg.ToString();
                    }
                }

     lbl_Largura.Text = largura.ToString();
                lbl_Altura.Text = altura.ToString();
                lbl_Comprimento.Text = comprimento.ToString();

                lbl_Convertido.Text = (Math.Floor(convertido * 100) / 100).ToString() + "Kg";
                lbl_Cubagem.Text = (Math.Floor(cubagem * 100) / 100).ToString() + "m³";
                lbl_Peso.Text = kg.ToString() + "Kg";

                txt_PesqCidade.Enabled = true;
                txt_PesoNf.Enabled = true;
                txt_ValorNf.Enabled = true;

                radioBtn_Caixa.Enabled = false;
                radioBtn_Malote.Enabled = false;
                
                txt_Altura.Enabled = false;
                txt_Comprimento.Enabled = false;
                txt_Largura.Enabled = false;
                txt_Peso.Enabled = false;
                txt_Qntd.Enabled = false;

                txt_PesqCidade.Focus();

    Se voce quer uma esta parte no teu codigo com a condicao if entao tens de explicar quando deve ser executado em que codicao:

       kg2 = kg2;

                if (convertido >= kg)
                {
                    lbl_Resultado.Text = (Math.Floor(convertido * 100) / 100).ToString() + "Kg \nCubagem";
                }
                else
                {
                    lbl_Resultado.Text = kg.ToString() + "Kg \nPeso";
                }


    http://malange-levi.blogspot.co.uk/

    sábado, 4 de agosto de 2012 19:35
    Moderador
  • Solucao final:

    private void groupBox9_Leave(object sender, EventArgs e)
            {
                if (MessageBox.Show("Deseja adicionar mais medidas?", "Medidas", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    largura = Convert.ToDecimal(txt_Largura.Text);
                    altura = Convert.ToDecimal(txt_Altura.Text);
                    comprimento = Convert.ToDecimal(txt_Comprimento.Text);
                    qntd = Convert.ToDecimal(txt_Qntd.Text);
                    kg2 = Convert.ToDecimal(txt_Peso.Text);


                    dimensoes = altura * largura * comprimento;
                    cubagem = qntd * dimensoes;
                    convertido = cubagem * 300;


                    convertido2 = convertido2 + convertido;
                    kg2 = kg2 + kg;

                    lbl_Largura.Text = largura.ToString();
                    lbl_Altura.Text = altura.ToString();
                    lbl_Comprimento.Text = comprimento.ToString();
                    lbl_Qntd.Text = qntd.ToString();
                    lbl_Peso.Text = kg2.ToString();
                }
                else
                {
                    if (convertido2 == 0)
                    {
                        largura = Convert.ToDecimal(txt_Largura.Text);
                        altura = Convert.ToDecimal(txt_Altura.Text);
                        comprimento = Convert.ToDecimal(txt_Comprimento.Text);
                        qntd = Convert.ToDecimal(txt_Qntd.Text);
                        kg = Convert.ToDecimal(txt_Peso.Text);


                        dimensoes = altura * largura * comprimento;
                        cubagem = qntd * dimensoes;
                        convertido = cubagem * 300;

                        lbl_Largura.Text = largura.ToString();
                        lbl_Altura.Text = altura.ToString();
                        lbl_Comprimento.Text = comprimento.ToString();
                        lbl_Qntd.Text = qntd.ToString();
                        lbl_Peso.Text = kg.ToString();
                    }
                }---remove isto e usa 

    else

    {

                kg2 = kg2;

                if (convertido >= kg)
                {
                    lbl_Resultado.Text = (Math.Floor(convertido * 100) / 100).ToString() + "Kg \nCubagem";
                }
                else
                {
                    lbl_Resultado.Text = kg.ToString() + "Kg \nPeso";
                }

    }

    }

                lbl_Largura.Text = largura.ToString();
                lbl_Altura.Text = altura.ToString();
                lbl_Comprimento.Text = comprimento.ToString();

                lbl_Convertido.Text = (Math.Floor(convertido * 100) / 100).ToString() + "Kg";
                lbl_Cubagem.Text = (Math.Floor(cubagem * 100) / 100).ToString() + "m³";
                lbl_Peso.Text = kg.ToString() + "Kg";

                txt_PesqCidade.Enabled = true;
                txt_PesoNf.Enabled = true;
                txt_ValorNf.Enabled = true;

                radioBtn_Caixa.Enabled = false;
                radioBtn_Malote.Enabled = false;
                
                txt_Altura.Enabled = false;
                txt_Comprimento.Enabled = false;
                txt_Largura.Enabled = false;
                txt_Peso.Enabled = false;
                txt_Qntd.Enabled = false;

                txt_PesqCidade.Focus();
            }


    http://malange-levi.blogspot.co.uk/

    sábado, 4 de agosto de 2012 19:37
    Moderador
  • Apenas uma nota, o teu if deveria ficar assim:

     if(DialogResult.Yes == MessageBox.Show("Deseja adicionar mais medidas?", "Medidas",
                    MessageBoxButtons.YesNo, MessageBoxIcon.Question))

    uma questiao de boa logica de programacao....


    http://malange-levi.blogspot.co.uk/

    sábado, 4 de agosto de 2012 19:39
    Moderador
  • Eu consegui resolver alguns instantes antes de abrir o site, mas valeu, assim fica salvo, para um futuro próximo.

    Muito Obrigado mesmo!

    sábado, 4 de agosto de 2012 20:08