Ir para conteúdo

BrendonPawn

Members
  • Total de itens

    66
  • Registro em

  • Última visita

Posts postados por BrendonPawn


  1. Após mais algumas pesquisas eu consegui. A solução (caso alguém esteja com o mesmo problema) consiste em criar um controlador personalizado que herda o controlador TextBox. Eu criei uma pasta no diretório do projeto chamada Controls para armazenar meus controladores personalizados e criei dentro dela, uma classe chamada CurrencyBox o código da classe ficou assim:

    using System;
    using System.Windows.Forms;
    
    namespace MeuProjeto.Controls
    {
        class CurrencyBox : TextBox
        {
            protected override void OnGotFocus(EventArgs e)
            {
                base.OnGotFocus(e);
                SelectAll();
            }
    
            protected override void OnLostFocus(EventArgs e)
            {
                base.OnLostFocus(e);
                if (Text.Equals("")) return;
                try
                {
                    double valor = Convert.ToDouble(Text.Replace("R$ ", ""));
                    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("pt-BR");
                    if (Text.Contains(","))
                        Text = String.Format("{0:c}", valor);
                    else
                        Text = String.Format("{0:c}", Convert.ToDouble(String.Format("{0:#.00}", valor/100)));
                }
                catch
                {
                    Focus();
                    SelectAll();
                }
            }
        }
    }

    Após criar a classe, é só depurar a aplicação (Ctrl + Shift + B) e usar o novo controle CurrencyBox na elaboração das forms.


  2. Olá, estou meio confuso com questão a formatação de valores monetários usando o controlador 'textBox' no Windows Forms.
    Atualmente estou usando o seguinte código no evento Leave da minha textBox:
     

    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("pt-BR");
    textPreco.Text = (Decimal.Parse(textPreco.Text) / 100).ToString("C");

    E eu tenho o resultado esperado para inputs como esses:

    1000 => 10,00
    1234 => 12,34
    199 => 1,99

    Ou seja, quando eu alimento a textBox com valores inteiros tudo sai conforme o esperado. Porém se eu informar um valor decimal sai assim:

    10,00 => 0,10
    12,34 => 0,12
    1,99  => 0,02

    O mesmo acontece se eu trocar esse trecho de código:

    textPreco.Text = (Decimal.Parse(textPreco.Text)/100).ToString("C");

    por esse:

    textPreco.Text = string.Format("{0:#.00}", Convert.ToDouble(textPreco.Text)/100);

    Resumindo eu gostaria de escrever na minha textBox tanto 1000 quanto 10,00 e converter em 10,00 ou R$10,00

    Grato desde já!


  3. Olá usuários do fórum imasters!

     

    Estou atualmente estudando a manipulação de dados em um banco de dados, em específico o MySQL. Estou usando recursos nativos, ou como se diz, fazendo na mão. Isso quer dizer que não estou usando ferramentas, frameworks, etc... para trabalhar com os bancos, tabelas e dados. Quero entender de perto como funciona na raiz, para depois fazer uso de ferramentas que aceleram a produção. No momento estou com bastante dúvidas sobre a relação de 1:N (um para muitos) já estudei vários artigos na internet mas me parecem muito confusos... Sei que é meio estúpido pedir código pronto aqui, más será que alguém poderia criar um exemplo para mim bem claro? A situação é a seguinte:

    CREATE TABLE usuarios (
      id INT AUTO_INCREMENT PRIMARY KEY,
      nome VARCHAR(32) NOT NULL  
    );
    
    CREATE TABLE veiculos (
      id INT AUTO_INCREMENT PRIMARY KEY,
      marca VARCHAR(32) NOT NULL,
      kmrodados DECIMAL(13, 1) NOT NULL DEFAULT 0,
      dono INT NULL
    );
    
    INSERT INTO usuarios (id, nome) VALUES 
    (1, 'Brendon'),
    (2, 'João'),
    (3, 'Maria');
    
    INSERT INTO veiculos (id, marca, kmrodados, dono) VALUES
    (1, 'FIAT', 35000.4, 1),
    (2, 'FORD', 25432.6, 1),
    (3, 'CHEVROLET', 2500.1, 2);

    Nesse cenário, como ficaria uma query SELECT para conseguir um resultado semelhante a esse?

    {
      id: 1,
      nome: 'Brendon',
      veiculos: [
        { id: 1, marca: 'FIAT', kmrodados: 35000.4 },
        { id: 2, marca: 'FORD', kmrodados: 25432.6 }
      ]
    }, {
      id: 2,
      nome: 'João',
      veiculos: [
        { id: 3, marca: 'CHEVROLET', kmrodados: 2500.1 }
      ]
    }, {
      id: 3,
      nome: 'Maria',
      veiculos: []
    }

    Desde já agradeço a todos interessados em ajudar!
     


  4. Olá a todos! Venho através desta postagem, solicitar a ajuda de alguém que conheça o Sequelize, e que possa me ajudar com a seguinte dúvida. Baseado no código a seguir:

    import { Sequelize, Model, DataTypes } from 'sequelize';
    import { config } from '../config/config';
    
    const sequelize = new Sequelize(config);
    
    export class Vehicle extends Model {
      public model!: string;
      public plate!: string;
      public owner!: string;
    }
    
    Vehicle.init({
      model: DataTypes.STRING(32),
      plate: DataTypes.STRING(16),
      owner: DataTypes.INTEGER // id do dono
    }, { sequelize });
    
    export class User extends Model {
      public name!: string;
      public email!: string;
    }
    
    User.init({
      name: DataTypes.STRING(32),
      email: DataTypes.STRING
    }, { sequelize });
    
    Vehicle.belongsTo(User, {
      foreignKey: 'vehicles',
      targetKey: 'id',
      as: 'user'
    });
    
    User.hasMany(Vehicle, {
      foreignKey: 'owner',
      sourceKey: 'id',
      onUpdate: 'cascade',
      onDelete: 'set null'
    });

    Ao efetuar uma consulta geral com o código:

    User.findAll({
      raw: true,
      nest: true,
      include: [Vehicle]
    }).then((data) => {
      console.log(data);
    });

    Eu esperava receber algo semelhante com isso:

    [{
      id: 1,
      name: 'Brendon',
      email: 'mail@mail.com',
      vehicles: [{ // 2 veículos encontrados para o usuário 1
        id: 1,
        model: 'GOL',
        plate: 'ABC 1234'
      },{
        id: 2,
        model: 'SAVEIRO',
        plate: 'QWE 7890'
      }]
    },{
      id: 2,
      name: 'Ricardo',
      email: 'mail@mail.com',
      vehicles: [] // nenhum veículo encontrado para o usuário 2
    }]

    Porém, o que estou recebendo no meu console é o seguinte:

    [{
      id: 1,
      name: 'Brendon',
      email: 'mail@mail.com',
      'Vehicles.id': 1,
      'Vehicles.model': 'GOL',
      'Vehicles.plate': 'ABC 1234'
    },{
      id: 1,
      name: 'Brendon',
      email: 'mail@mail.com',
      'Vehicles.id': 2,
      'Vehicles.model': 'SAVEIRO',
      'Vehicles.plate': 'QWE 7890'    
    },{
      id: 2,
      name: 'Ricardo',
      email: 'mail@mail.com',
      'Vehicles.id': null,
      'Vehicles.model': null,
      'Vehicles.plate': null
    }]

     

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.