0
Good afternoon,
I need to save the information on condition, because when registering the patrimony I made a checkbox that represents whether the patrimony is internal or external. If it’s checked, it’s external and if it’s not checked, it’s internal. With that if it is checked I release only the Comboboxes of the external information and if it is not checked I release only the Comboboxes of the internal information. I would like the information to be saved before these conditions contained in the code below.
Note: the save part is working, but the information gets lost when editing it, because I use the same screen to edit the information.
using Patronum.Negocio;
using Patronum.Negocio.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Patronum.Grafico
{
public partial class ManterPatrimonio : Form
{
public Patrimonio PatrimonioSelecionado { get; set; }
Patrimonio patrimonio = new Patrimonio();
public ManterPatrimonio()
{
InitializeComponent();
}
private void ManterPatrimonio_Load(object sender, EventArgs e)
{
CarregaExterno();
CarregarComboBoxes();
}
private void CarregarComboBoxes()
{
{
cbSetores.DisplayMember = "DescricaoSetor";
cbSetores.ValueMember = "Id";
cbSetores.DataSource = Program.Gerenciador.TodosOsSetores();
cbGestores.DisplayMember = "DescricaoGestor";
cbGestores.ValueMember = "Id";
cbGestores.DataSource = Program.Gerenciador.TodosOsSetores();
cbFornecedores.DisplayMember = "DescricaoFornecedor";
cbFornecedores.ValueMember = "Id";
cbFornecedores.DataSource = Program.Gerenciador.TodosOsFornecedores();
cbEmpresa.DisplayMember = "DescricaoEmpresa";
cbEmpresa.ValueMember = "Id";
cbEmpresa.DataSource = Program.Gerenciador.TodosOsClientes();
cbSetorEmpresa.DisplayMember = "DescricaoSetorEmpresa";
cbSetorEmpresa.ValueMember = "Id";
cbSetorEmpresa.DataSource = Program.Gerenciador.TodosOsClientes();
cbResp.DisplayMember = "DescricaoResp";
cbResp.ValueMember = "Id";
cbResp.DataSource = Program.Gerenciador.TodosOsClientes();
}
}
private void btSalvar_Click(object sender, EventArgs e)
{
Patrimonio patrimonio = new Patrimonio();
if (Int64.TryParse(tbId.Text, out long value))
{
patrimonio.Id = value;
}
else
{
patrimonio.Id = -1;
}
if (ckbExterno.CheckState == CheckState.Checked)
{
patrimonio.SetorCliente = cbSetorEmpresa.Text;
patrimonio.RespCliente = cbResp.Text;
}
else
{
patrimonio.Setor = cbSetores.Text;
patrimonio.Gestor = cbGestores.Text;
}
patrimonio.Nome = tbNome.Text;
patrimonio.NomeCliente = cbEmpresa.Text;
patrimonio.Nfe = tbNfe.Text;
patrimonio.Fornecedor = cbFornecedores.Text;
patrimonio.ServiceTag = tbServiceTag.Text;
patrimonio.DataAquisi = Convert.ToDateTime(dtpDataAquisi.Text);
patrimonio.PrazoGarant = Convert.ToDateTime(dtpPrazoGarant.Text);
patrimonio.Obs = tbObs.Text;
patrimonio.Ativo = ckbAtivo.Checked;
Validacao validacao;
if (PatrimonioSelecionado == null)
{
validacao = Program.Gerenciador.CadastrarPatrimonio(patrimonio);
}
else
{
validacao = Program.Gerenciador.AlterarPatrimonio(patrimonio);
}
if (!validacao.Valido)
{
String mensagemValidacao = "";
foreach (var chave in validacao.Mensagens.Keys)
{
String msg = validacao.Mensagens[chave];
mensagemValidacao += msg;
mensagemValidacao += Environment.NewLine;
}
MessageBox.Show(mensagemValidacao);
}
else
{
MessageBox.Show("Patrimônio salvo com sucesso!");
}
}
private void btCancelar_Click(object sender, EventArgs e)
{
this.Close();
}
private void ManterPatrimonio_Shown(object sender, EventArgs e)
{
if(PatrimonioSelecionado != null)
{
this.tbId.Text = PatrimonioSelecionado.Id.ToString();
this.tbNome.Text = PatrimonioSelecionado.Nome;
this.cbSetores.Text = PatrimonioSelecionado.Setor;
this.cbGestores.Text = PatrimonioSelecionado.Gestor;
this.cbSetorEmpresa.Text = PatrimonioSelecionado.SetorCliente;
this.cbEmpresa.Text = PatrimonioSelecionado.NomeCliente;
this.cbResp.Text = PatrimonioSelecionado.RespCliente;
this.cbFornecedores.Text = PatrimonioSelecionado.Fornecedor;
this.tbNfe.Text = PatrimonioSelecionado.Nfe;
this.tbServiceTag.Text = PatrimonioSelecionado.ServiceTag;
this.dtpDataAquisi.Text = PatrimonioSelecionado.DataAquisi.ToShortDateString();
this.dtpPrazoGarant.Text = PatrimonioSelecionado.PrazoGarant.ToShortDateString();
this.tbObs.Text = PatrimonioSelecionado.Obs;
this.ckbAtivo.Checked = PatrimonioSelecionado.Ativo;
}
}
private void ckbExterno_CheckStateChanged(object sender, EventArgs e)
{
CarregaExterno();
}
private void CarregaExterno()
{
if (ckbExterno.CheckState == CheckState.Indeterminate)
{
cbSetorEmpresa.Enabled = true;
cbResp.Enabled = true;
cbSetores.Enabled = true;
cbGestores.Enabled = true;
}
else if (ckbExterno.CheckState == CheckState.Checked)
{
cbSetorEmpresa.Enabled = true;
cbResp.Enabled = true;
cbSetores.Enabled = false;
cbGestores.Enabled = false;
}
else
{
cbSetorEmpresa.Enabled = false;
cbResp.Enabled = false;
cbSetores.Enabled = true;
cbGestores.Enabled = true;
}
}
}
}
you have to check the property
Checked
:if (ckbExterno.Checked) { ... }
– Rovann Linhalis
But then it fits in an if and Else, 2 if, if Else if ? I’ve tried all 3 ways, but always when I edit the information it does not save correctly
– Guilherme Espindola