using CPM; using MLL; // Namespace da sua model using System; using System.Drawing; using System.Windows.Forms; using UI; // Namespace do seu FormularioModelo namespace UI { public partial class EquipamentosCadastroPanel : FormularioModelo { // Instância da model para controle de dados private ModeloEquipamentos _equipamento = new ModeloEquipamentos(); // Controles do formulário private LV_TEXTBOX1 txtId, txtCodigo, txtDescricao, txtMarca, txtModelo; private LV_TEXTBOX1 txtSerie, txtPatrimonio, txtDataCompra, txtRevenda; private LV_TEXTBOX1 txtNF, txtCertificado, txtObservacoes; public EquipamentosCadastroPanel() { this.Titulo = "Cadastro de Equipamentos"; MontarInterface(); LimparTela(); } private void MontarInterface() { // --- SEÇÃO 1: Identificação --- content.Controls.Add(CreateSectionHeader("IDENTIFICAÇÃO E DESCRIÇÃO", 20)); txtId = AddInput(content, "ID", 20, 50, 80, 30, true); // Somente leitura txtCodigo = AddInput(content, "CÓDIGO INTERNO", 110, 50, 150, 30); txtDescricao = AddInput(content, "DESCRIÇÃO DO EQUIPAMENTO", 270, 50, 450, 30); // --- SEÇÃO 2: Detalhes Técnicos --- content.Controls.Add(CreateSectionHeader("ESPECIFICAÇÕES TÉCNICAS", 110)); txtMarca = AddInput(content, "MARCA", 20, 140, 240, 30); txtModelo = AddInput(content, "MODELO", 270, 140, 240, 30); txtSerie = AddInput(content, "Nº DE SÉRIE", 520, 140, 200, 30); txtPatrimonio = AddInput(content, "PATRIMÔNIO (PAT)", 730, 140, 150, 30); // --- SEÇÃO 3: Compra e Garantia --- content.Controls.Add(CreateSectionHeader("DADOS DE AQUISIÇÃO E GARANTIA", 200)); txtDataCompra = AddInput(content, "DATA DA COMPRA", 20, 230, 150, 30); txtRevenda = AddInput(content, "REVENDA / FORNECEDOR", 180, 230, 330, 30); txtNF = AddInput(content, "NOTA FISCAL", 520, 230, 150, 30); txtCertificado = AddInput(content, "Nº CERT. GARANTIA", 680, 230, 200, 30); // --- SEÇÃO 4: Observações --- content.Controls.Add(CreateSectionHeader("OBSERVAÇÕES ADICIONAIS", 290)); txtObservacoes = AddInput(content, "NOTAS GERAIS", 20, 320, 860, 60); // Se o seu LV_TEXTBOX1 suportar Multiline, você pode ajustar aqui } private void LimparTela() { _equipamento = new ModeloEquipamentos(); // Lógica para limpar todos os campos txtId.Text = "", etc. // Dica: Você pode criar um método auxiliar na base para limpar o 'content' } // --- IMPLEMENTAÇÃO DOS MÉTODOS DA BASE --- protected override void OnNovo() { LimparTela(); txtCodigo.Focus(); } protected override void OnSalvar() { try { // Mapeia a tela para a model _equipamento.CODIGO = txtCodigo.Text; _equipamento.DESCRICAO = txtDescricao.Text; _equipamento.MARCA = txtMarca.Text; _equipamento.MODELO = txtModelo.Text; _equipamento.SERIE = txtSerie.Text; _equipamento.PAT = txtPatrimonio.Text; _equipamento.DATA_COMPRA = txtDataCompra.Text; _equipamento.REVENDA = txtRevenda.Text; _equipamento.NUM_NF = txtNF.Text; _equipamento.NUM_CERTGAR = txtCertificado.Text; _equipamento.OBSERVACOES = txtObservacoes.Text; // Aqui você chamaria sua BLL ou DAL passando o _equipamento MessageBox.Show("Equipamento salvo com sucesso!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("Erro ao salvar: " + ex.Message); } } protected override void OnAlterar() { // Lógica para habilitar campos ou mudar estado } protected override void OnExcluir() { if (MessageBox.Show("Deseja excluir este equipamento?", "Confirmar", MessageBoxButtons.YesNo) == DialogResult.Yes) { // Lógica de exclusão } } protected override void OnLocalizar() { // Aqui você abriria um formulário de busca } protected override void OnCancelar() { LimparTela(); } } }