none
lABEL Nõ recebe o valor correto em moeda RRS feed

  • Pergunta

  • Amigos tenho 2 Labels que recebe o resultados de soma e subtração de textbox porem a label não obdece as casas decimais

    exemplo

     

    se eu colocar numeros inteiros sem centavos ela faz corretamente, mas se eu colocar centavos ela faz a soma como se eu tivesse que dividir por 100 para ficar correto.

     

    de uma olhada na figura.. alguem sabe dizer onde esta o erro /

     

     

     

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using MySql.Data.MySqlClient;
    
    
    namespace GerTec
    {
        public partial class frmOrcamentos : Form
        {
            MySqlConnection dbConexao;
            MySqlDataAdapter dbAdapter;
            public DataSet dsBanco;
            public string Banco = "Persist Security Info=False;server=localhost;database=bdgertec;uid=root;server=localhost;database=bdgertec;uid=root;pwd=2525";
            public int linhaClick;
    
    
    
            decimal valorPcs;
            decimal valorMo;
            decimal totalOrcamento;
            decimal valorRecebido;
       
            string Date = DateTime.Now.ToShortDateString();
            
            public frmOrcamentos()
            {
                InitializeComponent();
    
                verificarBanco();
                pnlDadosClientes.Visible = false;
                
                lblDtOrcamento.Text = Date;
                txtValorPagoCliente.Text = "0.00";
                txtTotalMaoObra.Text = "0.00";
                txtTotalPecas.Text = "0.00";
                lblAreceber.Text = "0.00";
              
               
            }
    
            // função para conexão ao banco de dados
            private void verificarBanco()
            {
                dsBanco = new DataSet();
                dbConexao = new MySqlConnection(Banco);
                try
                {
                    dbConexao.Open();
                }
                catch
                {
                    MessageBox.Show("Problemas com o Banco de Dados");
                }
                if (dbConexao.State == ConnectionState.Open)
                {
                    atualizaGrid();
                }
            }
            public void limpaCampos()
            {
                txtNomeCliente.Text = "";
                lblFoneCliente.Text = "";
                lblEnderecoCliente.Text = "";
                lblNumResCliente.Text = "";
                lblBairroCliente.Text = "";
                lblCidadeCliente.Text = "";
                lblUfCliente.Text = "";
                txtAparelho.Text = "";
                txtMarca.Text = "";
                txtModelo.Text = "";
                rtbDefeito.Text = "";
                rtbServicoExecutado.Text = "";
                txtTotalPecas.Text = "";
                txtTotalMaoObra.Text = "";
                lblTotalOrcamento.Text = "";
            //    cbxAprovacao.Text = "";
                mskDataAprovacao.Text = "";
           //     cbxPagto.Text = "";
                txtValorPagoCliente.Text = "";
                lblAreceber.Text = "";
           //     cbxEntrega.Text = "";
                rtbObsOrcamento.Text = "";
                mskDtEntrega.Text = "";
            }
    
            private void atualizaGrid()
            {
                string sql = "Select *from tbcliente";
                dbAdapter = new MySqlDataAdapter(sql, dbConexao);
                dsBanco = new DataSet();
                dbAdapter.Fill(dsBanco, "tbcliente");
                dtgOrcamento.DataSource = dsBanco;
                dtgOrcamento.DataMember = "tbcliente";
            }
            
            private void btnSair_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
            private void frmOrcamentos_Load(object sender, EventArgs e)
            {
    
        
    
            }
    
            private void dtgOrcamento_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                btnGrava.Enabled = true;
                linhaClick = int.Parse(e.RowIndex.ToString());
                if (linhaClick != -1)
                {
    
                  
                    txtNomeCliente.Text = dtgOrcamento[1, linhaClick].Value.ToString();
                    lblFoneCliente.Text =dtgOrcamento[2, linhaClick].Value.ToString();
                    mskNasctoCliente.Text = dtgOrcamento[3, linhaClick].Value.ToString();
                    cbxTipoDocto.Text = dtgOrcamento[4, linhaClick].Value.ToString();
                    txtNumTipoDocto.Text = dtgOrcamento[5, linhaClick].Value.ToString();
                    txtRgCliente.Text = dtgOrcamento[6, linhaClick].Value.ToString();
                    lblEnderecoCliente.Text = dtgOrcamento[7, linhaClick].Value.ToString();
                    lblNumResCliente.Text = dtgOrcamento[8, linhaClick].Value.ToString();
                    lblBairroCliente.Text = dtgOrcamento[9, linhaClick].Value.ToString();
                    lblCidadeCliente.Text = dtgOrcamento[10, linhaClick].Value.ToString();
                    lblUfCliente.Text = dtgOrcamento[11, linhaClick].Value.ToString();
                    mskCepCliente.Text = dtgOrcamento[12, linhaClick].Value.ToString();
                    txtEmailCliente.Text = dtgOrcamento[13, linhaClick].Value.ToString();
                    rtbObsCliente.Text = dtgOrcamento[14, linhaClick].Value.ToString();
                    
                    
                 
    
                }
            }
    
            private void btnGrava_Click(object sender, EventArgs e)
            {
                string valorDtAprovacao = string.Empty;
                string valorDtEntrega = string.Empty;
    
                DateTime resultadoDtAprovacao = DateTime.MinValue;
                if (DateTime.TryParse(this.mskDataAprovacao.Text.Trim(), out resultadoDtAprovacao))
                {
                }
                else
                {
                    MessageBox.Show("data invalida");
                    mskDataAprovacao.Text = "";
                    mskDataAprovacao.Focus();
                    return;
    
                }
    
                DateTime resultadoDtEntrega = DateTime.MinValue;
                if (DateTime.TryParse(this.mskDtEntrega.Text.Trim(), out resultadoDtEntrega))
                {
                }
                else
                {
                    MessageBox.Show("data invalida");
                    mskDtEntrega.Text = "";
                    mskDtEntrega.Focus();
                    return;
    
                }
                
                
                
                
                if ((txtNomeCliente.Text == string.Empty))
                {
    
                    MessageBox.Show("Obrigatório o preenchimento dos campos", "Mensagem de Alerta");
                    limpaCampos();
                    txtNomeCliente.Focus();
    
    
                }
                    else
                    {
                                       
                        MySqlConnection cn2 = new MySqlConnection(Banco);
                        cn2.Open();
                       
                    if (mskDataAprovacao.Text.Length == 10)
                        {
                            valorDtAprovacao = "str_to_date(\'" + mskDataAprovacao.Text + "\', '%d/%m/%Y'), ";
                        }
    
                        else
                        {
                            valorDtAprovacao = "null,";
                        }
    
                    if (mskDtEntrega.Text.Length == 10)
                    {
                        valorDtEntrega = "str_to_date(\'" + mskDtEntrega.Text + "\', '%d/%m/%Y'), ";
                    }
    
                    else
                    {
                        valorDtEntrega = "null,";
                    }
    
                        string incluiSql = "insert into tborcamento(cliente, telefone, nascto, tipoDocto, cpf, rg, rua, num, bairro, cidade, uf, cep, email, dataorcamento, aparelho, marca, modelo, defeito, servicoexecutado, valorpecas, valormaoobra, valortotal, estaaprovado, dataaprovacao, pagou, valorrecebido, valorareceber, entregou, dataentrega, observacao) values (" +
                        "\'" + txtNomeCliente.Text + "\', " +
                        "\'" + lblFoneCliente.Text + "\', " +
                        "str_to_date(\'" + mskNasctoCliente.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + cbxTipoDocto.Text + "\', " +
                        "\'" + txtNumTipoDocto.Text + "\', " +
                        "\'" + txtRgCliente.Text + "\', " +
                        "\'" + lblEnderecoCliente.Text + "\', " +
                        "\'" + lblNumResCliente.Text + "\', " +
                        "\'" + lblBairroCliente.Text + "\', " +
                        "\'" + lblCidadeCliente.Text + "\', " +
                        "\'" + lblUfCliente.Text + "\', " +
                        "\'" + mskCepCliente.Text + "\', " +
                        "\'" + txtEmailCliente.Text + "\', " +
                        "str_to_date(\'" + lblDtOrcamento.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + txtAparelho.Text + "\', " +
                        "\'" + txtMarca.Text + "\', " +
                        "\'" + txtModelo.Text + "\', " +
                        "\'" + rtbDefeito.Text + "\', " +
                        "\'" + rtbServicoExecutado.Text + "\', " +
                        "\'" + decimal.Parse(txtTotalPecas.Text.Replace(",", ".")).ToString() + "\', " +
                        "\'" + decimal.Parse(txtTotalMaoObra.Text.Replace(",", ".")).ToString() + "\', " +
                        "\'" + decimal.Parse(lblTotalOrcamento.Text.Replace(",", ".")).ToString() + "\', " +
                        "\'" + cbxAprovacao.Text + "\', " +
                        valorDtAprovacao +
                   //     "str_to_date(\'" + mskDataAprovacao.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + cbxPagto.Text + "\', " +
                        "\'" + decimal.Parse(txtValorPagoCliente.Text.Replace(",", ".")).ToString() + "\', " +
                        "\'" + decimal.Parse(lblAreceber.Text.Replace(",", ".")).ToString() + "\', " +
                        "\'" + cbxEntrega.Text + "\', " +
                        valorDtEntrega +
                    //    "str_to_date(\'" + mskDtEntrega.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + rtbObsOrcamento.Text + "\')";
                        MySqlConnection dbConexao15 = new MySqlConnection(Banco);
                        dbConexao15.Open();
                        MySqlCommand cmdIncluir = new MySqlCommand(incluiSql, dbConexao15);
                        cmdIncluir.ExecuteNonQuery();
                        MessageBox.Show("Inclusão efetuada com sucesso!", "Mensagem do Sistema");
                        limpaCampos();
                    }
                    
    
           
                    atualizaGrid();
                   
                    btnCancelar.Enabled = false;
    
                    txtValorPagoCliente.Text = "0.00";
                    txtTotalMaoObra.Text = "0.00";
                    txtTotalPecas.Text = "0.00";
                    lblAreceber.Text = "0.00";
             
                }
    
            private void btnLocalizarCliente_Click(object sender, EventArgs e)
            {
                if (btnLocalizarCliente.Text == "Procurar")
                {
                    btnLocalizarCliente.Text = "Executar";
                    txtNomeCliente.Enabled = true;
                    txtNomeCliente.Focus();
                }
                else
                {
                    btnLocalizarCliente.Text = "Procurar";
                    txtNomeCliente.Enabled = false;
                    if (txtNomeCliente.Text != "")
                    {
                        string sqlSelect = "Select *from tbcliente where cliente like '%" + txtNomeCliente.Text + "%'";
                        MySqlCommand cmdPesquisar = new MySqlCommand(sqlSelect, dbConexao);
                        cmdPesquisar.ExecuteNonQuery();
                        dbAdapter = new MySqlDataAdapter(sqlSelect, dbConexao);
                        dsBanco = new DataSet();
                        dbAdapter.Fill(dsBanco, "tbcliente");
                        dtgOrcamento.DataSource = dsBanco;
                        dtgOrcamento.DataMember = "tbcliente";
                    }
                    else
                    {
                        atualizaGrid();
                    }
                    txtNomeCliente.Clear();
                }
            }
    
            private void txtTotalPecas_TextChanged(object sender, EventArgs e)
            {
    
                if (txtTotalPecas.Text.Trim().Length != 0)
                {
    
                    valorPcs = Convert.ToDecimal(txtTotalPecas.Text.Replace(",","."));
                    //   valorPcs = Convert.ToDecimal(txtTotalPecas.Text);
                    totalOrcamento = valorPcs + valorMo;
                    lblTotalOrcamento.Text = totalOrcamento.ToString("0.00");
                    lblAreceber.Text = totalOrcamento.ToString("0.00");
                    //   lblTotalOrcamento.Text = (valorPcs + valorMo).ToString();
                }
            }
            private void txtTotalMaoObra_TextChanged(object sender, EventArgs e)
            {
                if (txtTotalMaoObra.Text.Trim().Length != 0)
                {
    
                    valorMo = Convert.ToDecimal(txtTotalMaoObra.Text.Replace(",","."));
                    totalOrcamento = valorPcs + valorMo;
                    lblTotalOrcamento.Text = totalOrcamento.ToString("0.00");
                    lblAreceber.Text = totalOrcamento.ToString("0.00");
                }
            }
            private void txtValorPagoCliente_TextChanged(object sender, EventArgs e)
            {
                if (txtValorPagoCliente.Text.Trim().Length != 0)
                {
    
    
                    valorRecebido = Convert.ToDecimal(txtValorPagoCliente.Text.Replace(",","."));
                    lblAreceber.Text = ((valorPcs + valorMo) - (valorRecebido)).ToString("0.00");
                }
    
    
            }
    
            }
        }
    
    
    


    terça-feira, 25 de outubro de 2011 11:29

Respostas

  • Boa tarde...

    Você consegue da seguinte forma:

    Caso queira sem o R$

    string.Format("{0:n2}",(2.50+2.45))

    se quiser com R$

     

    string.Format("{0:c2}",(2.50+2.45))


    Comente trocar (2.50+2.45) pelo sua variável totalOrcamento.

    Espero ter ajudado....

     

     


    Eder dos Santos Silva Analista Programador Pleno Portfólio: http://www.ederssilva.com.br
    • Marcado como Resposta Grizante terça-feira, 25 de outubro de 2011 20:12
    terça-feira, 25 de outubro de 2011 16:48
  • Para permitir apenas numeros:

     private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
        if (!(char.IsDigit(e.KeyChar))) {
                    e.Handled = true;
         }
    }
    

    • Marcado como Resposta Grizante terça-feira, 25 de outubro de 2011 20:12
    terça-feira, 25 de outubro de 2011 17:10

Todas as Respostas

  • Amigos andei mechendo no codigo e consegui resolver, mas ficou uma duvida.

    exemplo só funciona se eu digitar com as casas decimais de centavos. exemplo 1,99 se eu colocar 1 ele entende que é 1 centavo = 0,01 ,

     

    sera que tem uma forma diferente.. pois se deixar 1 e salvar no banco de dados vai enteder que -é 1 e nao 0.01

    outra coisa qual é a propriedade do texbox que só permite o usuario digitar valores numericos não podendo digitar letras.

     

     

    private void txtTotalPecas_TextChanged(object sender, EventArgs e)
            {
    
                if (txtTotalPecas.Text.Trim().Length != 0)
                {
    
                    valorPcs = Convert.ToDecimal(txtTotalPecas.Text.Replace(",","."));
                    totalOrcamento = (valorPcs + valorMo)/100;
                    lblTotalOrcamento.Text = totalOrcamento.ToString("0.00");
                    lblAreceber.Text = totalOrcamento.ToString("0.00");
               
                }
            }
            private void txtTotalMaoObra_TextChanged(object sender, EventArgs e)
            {
                if (txtTotalMaoObra.Text.Trim().Length != 0)
                {
    
                    valorMo = Convert.ToDecimal(txtTotalMaoObra.Text.Replace(",","."));
                    totalOrcamento = (valorPcs + valorMo)/100;
                    lblTotalOrcamento.Text = totalOrcamento.ToString("0.00");
                    lblAreceber.Text = totalOrcamento.ToString("0.00");
                }
            }
            private void txtValorPagoCliente_TextChanged(object sender, EventArgs e)
            {
                if (txtValorPagoCliente.Text.Trim().Length != 0)
                {
    
    
                    valorRecebido = Convert.ToDecimal(txtValorPagoCliente.Text.Replace(",","."));
                    lblAreceber.Text = (((valorPcs + valorMo)/100) - ((valorRecebido)/100)).ToString("0.00");
                }
    
    
            }
    
            }
        }
    

     

     

    terça-feira, 25 de outubro de 2011 14:34
  • Boa tarde...

    Você consegue da seguinte forma:

    Caso queira sem o R$

    string.Format("{0:n2}",(2.50+2.45))

    se quiser com R$

     

    string.Format("{0:c2}",(2.50+2.45))


    Comente trocar (2.50+2.45) pelo sua variável totalOrcamento.

    Espero ter ajudado....

     

     


    Eder dos Santos Silva Analista Programador Pleno Portfólio: http://www.ederssilva.com.br
    • Marcado como Resposta Grizante terça-feira, 25 de outubro de 2011 20:12
    terça-feira, 25 de outubro de 2011 16:48
  • Para permitir apenas numeros:

     private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
        if (!(char.IsDigit(e.KeyChar))) {
                    e.Handled = true;
         }
    }
    

    • Marcado como Resposta Grizante terça-feira, 25 de outubro de 2011 20:12
    terça-feira, 25 de outubro de 2011 17:10