Ir para conteúdo

BrendonPawn

Members
  • Total de itens

    66
  • Registro em

  • Última visita

Tudo que BrendonPawn postou

  1. BrendonPawn

    Formatação de valores monetários

    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á!
  2. BrendonPawn

    Formatação de valores monetários

    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.
  3. BrendonPawn

    Banco de dados com relação 1:N

    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. BrendonPawn

    Retornando associação com Sequelize

    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.