List <Trabajadores> ImportarDatos(string nombrearchivo) { List <Trabajadores> lista = new List <Trabajadores>(); try { SLDocument sl = new SLDocument(nombrearchivo); int iRow = 2; while (!string.IsNullOrEmpty(sl.GetCellValueAsString(iRow, 1))) { Trabajadores trabajador = new Trabajadores(); trabajador.Nombre = sl.GetCellValueAsString(iRow, 1); trabajador.Dui = sl.GetCellValueAsString(iRow, 2); trabajador.Nit = sl.GetCellValueAsString(iRow, 3); trabajador.Afp = sl.GetCellValueAsString(iRow, 4); trabajador.Seguro = sl.GetCellValueAsString(iRow, 5); trabajador.Direccion = sl.GetCellValueAsString(iRow, 6); trabajador.Telefono = sl.GetCellValueAsString(iRow, 7); trabajador.Tipo = sl.GetCellValueAsString(iRow, 8); trabajador.Pago = sl.GetCellValueAsDouble(iRow, 9); trabajador.Fecha = sl.GetCellValueAsString(iRow, 10); lista.Add(trabajador); iRow++; } } catch (Exception e) { MessageBox.Show("Error al importar " + e.Message, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } return(lista); }
private void btnImportar_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog { Filter = "Excel | *.xls;*.xlsx;", Title = "Seleccionar Archivo" }; if (openFileDialog.ShowDialog() == DialogResult.OK) { dgvmostrar.DataSource = ImportarDatos(openFileDialog.FileName); Trabajadores trabajador = new Trabajadores(); //Lleno la lista con todos los datos que se agregaron del archivo for (int i = 0; i < dgvmostrar.Rows.Count - 1; i++) { trabajador.Dui = dgvmostrar.Rows[i].Cells[1].Value.ToString(); trabajador.Nombre = dgvmostrar.Rows[i].Cells[0].Value.ToString(); trabajador.Nit = dgvmostrar.Rows[i].Cells[2].Value.ToString(); trabajador.Afp = dgvmostrar.Rows[i].Cells[3].Value.ToString(); trabajador.Seguro = dgvmostrar.Rows[i].Cells[4].Value.ToString(); trabajador.Direccion = dgvmostrar.Rows[i].Cells[5].Value.ToString(); trabajador.Telefono = dgvmostrar.Rows[i].Cells[6].Value.ToString(); trabajador.Tipo = dgvmostrar.Rows[i].Cells[7].Value.ToString(); trabajador.Pago = float.Parse(dgvmostrar.Rows[i].Cells[8].Value.ToString()); trabajador.Fecha = Convert.ToDateTime(dgvmostrar.Rows[i].Cells[9].Value.ToString()); lista.InsertarF(trabajador); } ActualizarDataGrid(lista); } }
private void btnagregar_Click(object sender, EventArgs e) { try { //Faltan validaciones //Ahorita no las he activado porque sino hay que ingresar toooodos estos datos y es tedioso para hacer pruebas //Creo un objeto del tipo trabajador y lleno los datos de este Trabajadores trabajador = new Trabajadores(); trabajador.Nombre = txtnombre.Text; trabajador.Dui = txtdui.Text; trabajador.Nit = txtnit.Text; trabajador.Afp = txtafp.Text; trabajador.Seguro = txtseguro.Text; trabajador.Direccion = txtdireccion.Text; trabajador.Telefono = txttelefono.Text; trabajador.Tipo = cbtipo.SelectedItem.ToString(); trabajador.Pago = float.Parse(txtpago.Text); trabajador.Fecha = fechanacimiento.SelectionStart; //Si el validador == -1 significa que un dato será INGRESADO if (validador == -1) { //De ser así, ocupo el método InsertarF y le mando el objeto de tipo trabajador lista.InsertarF(trabajador); //Actualizo el datagrid mandandole la lista con el nuevo dato ingresado ActualizarDataGrid(lista); //Limpio pantalla reseteo(); } else { //Caso contrario, significa que el usuario está modificando un trabajador existente //Hago que estos campos ahora sean modificables para cuando quiere ingresar un nuevo dato txtdui.ReadOnly = false; txtafp.ReadOnly = false; txtnit.ReadOnly = false; txtseguro.ReadOnly = false; //Ocupo el método editar y le mando como parametro el DUI del trabajador a modificar y el objeto de tipo trabajador lista.Editar(dui, trabajador); //Actualizo el datagrid ActualizarDataGrid(lista); reseteo(); //Hago que el validador sea nuevamente -1 y el dui le doy un valor nulo validador = -1; dui = ""; } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
//Hago un recorrido y si encuentra que el DUI es el igual al que mandamos, edita la info del trabajador public void Editar(string dui, Trabajadores trabajador) { NodoTrabajador aux = inicio; while (aux != null) { if (aux.info_traba.Dui == dui) { aux.info_traba = trabajador; } aux = aux.sgt; } }
//Es el mismo método InsertarF que la Ing nos enseñó public void InsertarF(Trabajadores item) { NodoTrabajador aux = new NodoTrabajador(); aux.info_traba = item; aux.sgt = null; if (inicio == null) { inicio = aux; } else { NodoTrabajador puntero = inicio; while (puntero.sgt != null) { puntero = puntero.sgt; } puntero.sgt = aux; } }
private void btnagregar_Click(object sender, EventArgs e) { BorrarMensaje(); try { if (validaciones()) { Trabajadores trabajador = new Trabajadores(); trabajador.Nombre = txtnombre.Text; trabajador.Dui = txtdui.Text; trabajador.Nit = txtni.Text; trabajador.Afp = txtafp.Text; trabajador.Seguro = txtseguro.Text; trabajador.Direccion = txtdireccion.Text; trabajador.Telefono = txttelefono.Text; trabajador.Tipo = cbtipo.SelectedItem.ToString(); trabajador.Pago = double.Parse(txtpago.Text); trabajador.Fecha = Convert.ToString(fechanacimiento.Value.ToString("yyyy-MM-dd")); //Si el validador == -1 significa que un dato será INGRESADO if (validador == -1) { //De ser así, ocupo el método InsertarF y le mando el objeto de tipo trabajador lista.InsertarF(trabajador); //Actualizo el datagrid mandandole la lista con el nuevo dato ingresado ActualizarDataGrid(lista); //Limpio pantalla reseteo(); } else { //Caso contrario, significa que el usuario está modificando un trabajador existente //Hago que estos campos ahora sean modificables para cuando quiere ingresar un nuevo dato txtdui.ReadOnly = false; txtafp.ReadOnly = false; txtni.ReadOnly = false; txtseguro.ReadOnly = false; //Ocupo el método editar y le mando como parametro el DUI del trabajador a modificar y el objeto de tipo trabajador lista.Editar(dui, trabajador); //Actualizo el datagrid ActualizarDataGrid(lista); reseteo(); //Hago que el validador sea nuevamente -1 y el dui le doy un valor nulo validador = -1; dui = ""; reseteo(); } //Actualizamos el archivo //actualizamos el archivo de inventario string nombrearchivo = "..\\..\\Datos\\trabajadores.xlsx"; try { if (File.Exists(nombrearchivo)) { File.Delete(nombrearchivo); Exportar(dgvmostrar, nombrearchivo); } } catch (Exception ex) { MessageBox.Show("Error " + ex.Message); } } } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message, "¡Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
public void insertarImportacion(string ruta) { try { List <Trabajadores> lst = new List <Trabajadores>(); lst = ImportarDatos(ruta); bool excelVacio = false; bool idCodigo = false; foreach (var item in lst) { excelVacio = true; Trabajadores trabajador = new Trabajadores(); trabajador.Nombre = item.Nombre; trabajador.Dui = item.Dui; trabajador.Nit = item.Nit; trabajador.Afp = item.Afp; trabajador.Seguro = item.Seguro; trabajador.Direccion = item.Direccion; trabajador.Telefono = item.Telefono; trabajador.Tipo = item.Tipo; trabajador.Pago = item.Pago; trabajador.Fecha = item.Fecha; //Esto es para validar que no se ingrese un registro con codigo ya existente en la lista Queue <Trabajadores> cola = new Queue <Trabajadores>(); cola = lista.Mostrar(); if (cola.Count == 0) { lista.InsertarF(trabajador); } else { if (cola.Contains(item)) { } foreach (var item2 in cola) { if (item2.Dui == trabajador.Dui) { idCodigo = true; break; } } if (idCodigo == false) { lista.InsertarF(trabajador); } } //*********************************************************** } if (ruta != "..\\..\\Datos\\trabajadores.xlsx") { if (excelVacio == true && idCodigo == false) { ActualizarDataGrid(lista); MessageBox.Show("Archivo importado correctamente", "¡Enhorabuena!", MessageBoxButtons.OK, MessageBoxIcon.Information); //Actualizamos el archivo //actualizamos el archivo de inventario string nombrearchivo = "..\\..\\Datos\\trabajadores.xlsx"; try { if (File.Exists(nombrearchivo)) { File.Delete(nombrearchivo); Exportar(dgvmostrar, nombrearchivo); } } catch (Exception ex) { MessageBox.Show("Error " + ex.Message); } } else if (excelVacio == true && idCodigo == true) { ActualizarDataGrid(lista); MessageBox.Show("Archivo importado correctamente, pero algunos registros se omitieron porque el codigo ya existe", "¡Enhorabuena!", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("El archivo agregado no contiene datos", "¡Cuidado!", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { ActualizarDataGrid(lista); } } catch (Exception Ex) { MessageBox.Show("Error al importar " + Ex.Message, "¡Error!", MessageBoxButtons.OK, MessageBoxIcon.Error); } }