public void procInsertar(string tabla, string campo, TextBox txt) { //se recibe el codigo por medio de la consulta realizada en la clase de sentencias procDesbloquear(); string tbl = tabla; string cmp1 = campo; TextBox txt1 = txt; int codigo = cn.funcCodigoMax(tbl, cmp1); txt1.Text = codigo.ToString(); txt1.Enabled = false; }
private void btnAgregar_Click(object sender, EventArgs e) { int Nivel = 1; int Padre = 0; string Indice = ""; bool Res; int Codigo = 0; try { //revisa que el nombre de la cuenta este escrito y este seleccionado el tipo de cuenta, de lo contrario no deja avanzar if (txtNombreCuenta.Text.Length == 0) { MessageBox.Show("Debe de ingresar el nombre de la cuenta", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else if (cmbTipoCuenta.SelectedIndex == 0) { MessageBox.Show("Debe de seleccionar el tipo de cuenta contable", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } else if (txtNombreCuenta.Text.Length > 75) { MessageBox.Show("El nombre no puede tener mas de 75 caracteres", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Crea un nodo nuevo con el texto introducido TreeNode ANode = new TreeNode(txtNombreCuenta.Text.Trim()); string NodoP, Nodo; NodoP = Nodo = ""; //Comprueba si existen nodos if (tvwCuentas.Nodes.Count == 0) { //Si no hay lo añade al nodo raíz NodoP = ""; Nodo = ANode.Text; Codigo = 1; Nivel = 1; Padre = 0; tvwCuentas.Nodes.Add(ANode); } else { Nodo = ANode.Text; //si se selecciono algun nodo if (tvwCuentas.SelectedNode != null) { //Añadimos el nodo al treeView tvwCuentas.SelectedNode.Nodes.Add(ANode); //Guardamos el padre, nivel, indice y codigo del nodo para despues guardarlo con la consulta Padre = int.Parse(tvwCuentas.SelectedNode.Name.ToString()); Nivel = int.Parse(tvwCuentas.SelectedNode.Tag.ToString()) + 1; Indice = funcRecuperaindiceNodo(tvwCuentas.SelectedNode); //obtiene el codigo usando la funcion de cuando se selecciona un nodo Codigo = Cn.funcCodigoMax(int.Parse(Indice)); //si la longitud del codigo es la misma del camino obtenido se concatena un 1 sino se suma un 1 if (Codigo.ToString().Length == Indice.Length) { string Aux = Indice + "1"; Codigo = int.Parse(Aux); } else { Codigo++; } } else //si no se selecciona un nodo se llama a su respectiva funcion { Codigo = Cn.funcCodigoMaxNivel0(); Nivel = 1; Padre = 0; MessageBox.Show("La cuenta se va agregar en la raíz ya que no se seleccionó ninguna", "AGREGADO A RAIZ", MessageBoxButtons.OK, MessageBoxIcon.Information); tvwCuentas.Nodes.Add(ANode); } } /*MessageBox.Show("codigo es: " + Codigo); * MessageBox.Show("el nivel es " + Nivel); * MessageBox.Show("el papa es " + Padre);*/ //se llama a la funcion para hacer la consulta con los datos obtenidos Res = Cn.funcAgregar(Codigo, txtNombreCuenta.Text.ToString(), Nivel, Padre, int.Parse(cmbIdTipoCuenta.SelectedItem.ToString())); //se muestra su mensaje dependiendo de la respuesta obtenida if (Res == true) { MessageBox.Show("La cuenta se agrego correctamente", "EXITO", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("La cuenta no se agrego correctamente", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } //LIMPIA txtNombreCuenta.Text = ""; cmbTipoCuenta.SelectedIndex = 0; //refresca el treeview procCargaDatos(); tvwCuentas.ExpandAll(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error en btnNodo_Click", MessageBoxButtons.OK, MessageBoxIcon.Error); } }