<% #encoding: UTF-8 =begin CapicuaGen CapicuaGen es un software que ayuda a la creación automática de sistemas empresariales a través de la definición y ensamblado de diversos generadores de características. El proyecto fue iniciado por José Luis Bautista Martín, el 6 de enero de 2016. Puede modificar y distribuir este software, según le plazca, y usarlo para cualquier fin ya sea comercial, personal, educativo, o de cualquier índole, siempre y cuando incluya este mensaje, y se permita acceso al código fuente. Este software es código libre, y se licencia bajo LGPL. Para más información consultar http://www.gnu.org/licenses/lgpl.html =end %>using System; using System.Windows.Forms; <%=get_namespaces_text(:business_interfaces) %><%=get_namespaces_text(:business_entities) %><%=get_namespaces_text(:data_access) %> namespace <%=generation_attributes[:namespace]%> { partial class <%=template_target.class_name%> { #region Propiedades /// /// Acceso a datos /// protected <%=get_entity_data_access_full_name(template_target.entity_schema.name)%><<%=get_entity_name(template_target.entity_schema.name)%>> accesoDatos<%=template_target.entity_schema.name%>=new <%=get_entity_data_access_full_name(template_target.entity_schema.name)%><<%=get_entity_name(template_target.entity_schema.name)%>>(); /// /// Estado Actual del catalogo /// protected EstadosCatalogo estadoCatalogo = EstadosCatalogo.Vista; #endregion Propiedades #region Contructor public <%=template_target.class_name%>() { InitializeComponent(); } #endregion Contructor #region Eventos protected virtual void <%=template_target.class_name%>_Load(object sender, EventArgs e) { //Cargo el estado inicial CambiarEstado(EstadosCatalogo.Vista); } protected virtual void btnAgregar_Click(object sender, EventArgs e) { CambiarEstado(EstadosCatalogo.Nuevo); } protected virtual void btnEditar_Click(object sender, EventArgs e) { CambiarEstado(EstadosCatalogo.Edicion); } protected virtual void btnEliminar_Click(object sender, EventArgs e) { if (this.bindingSource.Current == null) return; Borrar(); } protected virtual void btnAceptar_Click(object sender, EventArgs e) { switch (this.estadoCatalogo) { case EstadosCatalogo.Nuevo: Agregar(); break; case EstadosCatalogo.Edicion: Actualizar(); break; } } protected virtual void btnCancelar_Click(object sender, EventArgs e) { CambiarEstado(EstadosCatalogo.Vista); } protected virtual void btnSalir_Click(object sender, EventArgs e) { this.Close(); } protected virtual void bindingSource_CurrentChanged(object sender, EventArgs e) { if (this.bindingSource.Current != null) { <%=get_entity_full_name(template_target.entity_schema.name)%> registroBusqueda = this.bindingSource.Current as <%=get_entity_full_name(template_target.entity_schema.name)%>; if (registroBusqueda == null) { return; } else { MostrarRegistro(registroBusqueda); } } } #endregion Eventos #region Metodos /// /// Carga la lista de compomentes completa /// protected virtual void CargarLista() { bindingSource.DataSource = accesoDatos<%=template_target.entity_schema.name%>.Listar(); dgvListado.AutoGenerateColumns = true; dgvListado.DataSource = bindingSource; } /// /// Agrego el registro /// protected virtual void Agregar() { try { if (!ValidarNulos()) return; <%=get_entity_full_name(template_target.entity_schema.name)%> registro = ObtenerRegistro(); accesoDatos<%=template_target.entity_schema.name%>.Insertar(registro); MessageBox.Show("Inserción completada", "Operación exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information); CambiarEstado(EstadosCatalogo.Vista); } catch (Exception ex) { ControlExcepciones.MostrarExcepcion(ex); } } /// /// Actualizo el registro /// protected virtual void Actualizar() { try { if (!ValidarNulos()) return; <%=get_entity_full_name(template_target.entity_schema.name)%> registro = ObtenerRegistro(); accesoDatos<%=template_target.entity_schema.name%>.Actualizar(registro); MessageBox.Show("Actualización completada", "Operación exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information); CambiarEstado(EstadosCatalogo.Vista); } catch (Exception ex) { ControlExcepciones.MostrarExcepcion(ex); } } /// /// Borro el registro /// protected virtual void Borrar() { try { <%=get_entity_full_name(template_target.entity_schema.name)%> registroBusqueda = ObtenerRegistro(); accesoDatos<%=template_target.entity_schema.name%>.Eliminar(registroBusqueda); MessageBox.Show("Borrado completo", "Operación exitosa", MessageBoxButtons.OK, MessageBoxIcon.Information); CambiarEstado(EstadosCatalogo.Vista); } catch (Exception ex) { ControlExcepciones.MostrarExcepcion(ex); } } /// /// Estado actual del catalogo. /// /// El estado protected virtual void CambiarEstado(EstadosCatalogo estado) { switch (estado) { case EstadosCatalogo.Vista: //Configuro los campos <% template_target.entity_schema.fields.each { |field| %>this.txt<%=field.name%>.Text = ""; this.txt<%=field.name%>.Enabled = false; <%}%> //Configuro el datagrid dgvListado.Enabled = true; //Configuro los botonos btnAgregar.Enabled = true; btnEditar.Enabled = true; btnEliminar.Enabled = true; btnAceptar.Enabled = false; btnCancelar.Enabled = false; btnSalir.Enabled = true; //Cargo el listado CargarLista(); break; case EstadosCatalogo.Nuevo: //Configuro los campos <% template_target.entity_schema.fields.each { |field| %>this.txt<%=field.name%>.Text = ""; <%next if field.identity%>this.txt<%=field.name%>.Enabled = true; <%}%> //Configuro el datagrid dgvListado.Enabled = false; //Configuro los botonos btnAgregar.Enabled = false; btnEditar.Enabled = false; btnEliminar.Enabled = false; btnAceptar.Enabled = true; btnCancelar.Enabled = true; btnSalir.Enabled = false; break; case EstadosCatalogo.Edicion: if (this.bindingSource.Current == null) return; //Configuro los campos <% template_target.entity_schema.fields.each { |field| next if field.primary_key %>this.txt<%=field.name%>.Enabled = true; <%}%> //Configuro el datagrid dgvListado.Enabled = false; //Configuro los botonos btnAgregar.Enabled = false; btnEditar.Enabled = false; btnEliminar.Enabled = false; btnAceptar.Enabled = true; btnCancelar.Enabled = true; btnSalir.Enabled = false; break; default: break; } this.estadoCatalogo = estado; } protected virtual bool ValidarNulos() { <% template_target.entity_schema.fields.each { |field| next if field.allow_null or field.identity %>if (txt<%=field.name%>.Text.Trim() == "") { MessageBox.Show("El campo <%=field.name%> no puede estar vacio", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return false; } <%}%> return true; } /// /// Muestra un registro en pantalla /// /// Registro a mostrar protected virtual void MostrarRegistro(<%=get_entity_full_name(template_target.entity_schema.name)%> <%=template_target.entity_schema.name%> ) { <% template_target.entity_schema.fields.each { |field| %>this.txt<%=field.name%>.Text = String.Format("{0}",<%=template_target.entity_schema.name%>.<%=field.name%>); <%}%> } /// /// Obtiene un registro para su guardado /// /// Registro a guardar protected virtual <%=get_entity_full_name(template_target.entity_schema.name)%> ObtenerRegistro() { <%=get_entity_full_name(template_target.entity_schema.name)%> <%=template_target.entity_schema.name%> = new <%=get_entity_full_name(template_target.entity_schema.name)%> (); <% template_target.entity_schema.fields.each { |field| %>if (this.txt<%=field.name%>.Text.Trim()!="") <%=template_target.entity_schema.name%>.<%=field.name%> = <%=field.convert_from_text%>this.txt<%=field.name%>.Text.Trim()); <%}%> return <%=template_target.entity_schema.name%>; } #endregion Metodos } }