private void xfrmManMovimiento_KeyDown(object sender, KeyEventArgs e) { try { if (e.KeyCode.Equals(Keys.Enter)) { if (!grvListado.IsFocusedView) { return; } GridColumn varColumna = this.grvListado.FocusedColumn; this.grvListado.FocusedColumn = colDetSecuencia; this.grvListado.FocusedColumn = varColumna; if (this.grvListado.FocusedColumn == null) { return; } if (!this.grvListado.FocusedColumn.Equals(colDetCantidad) && !this.grvListado.FocusedColumn.Equals(colDetPieza) && !this.grvListado.FocusedColumn.Equals(colIdMotPerdida)) { return; } //Limpiamos todos los errores del detalle de movimientos this.grvListado.ClearColumnErrors(); //Recuperamos la fila seleccionada e instanciamos con la clase detalle de inventario clsInvMovimientoDet objFila = (clsInvMovimientoDet)this.grvListado.GetRow(this.grvListado.FocusedRowHandle); //Recuperamos en la variable el valor del campo razon string varRazon = this.lueRazon.EditValue == null ? "" : this.lueRazon.EditValue.ToString(); //Validamos que los campos ha sido debidamente ingresados string varMensaje = objFila.funValidarFila(varRazon, varReqChapetaLote); if (!varMensaje.Equals("")) { string varControl = varMensaje.Split(':')[0]; string varError = varMensaje.Split(':')[1].Trim(); this.grvListado.SetColumnError(this.grvListado.Columns[varControl], varError); this.grvListado.FocusedColumn = this.grvListado.Columns[varControl]; return; } //Agregamos una nueva linea if (grvListado.FocusedRowHandle.Equals(grvListado.RowCount - 1)) { int varPosicion = this.grvListado.FocusedRowHandle; int varLinea = int.Parse(this.grvListado.GetRowCellValue(varPosicion, colDetSecuencia).ToString()); this.objDetalle.Add(new clsInvMovimientoDet(varLinea)); this.grcListado.RefreshDataSource(); this.grvListado.FocusedRowHandle = varPosicion + 1; if (!varRazon.ToLower().Equals("prd")) { this.grvListado.FocusedColumn = colIteCodigo; } else { this.grvListado.FocusedColumn = colDetIdDestino; } } } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void btnExtraer_Click(object sender, EventArgs e) { try { //Debemos instanciar la clase a la grilla para el ingreso de detalles this.objDetalle = new List <clsInvMovimientoDet>(); this.grcListado.DataSource = objDetalle; string varPath = this.butExaminar.Text.Trim(); if (!varPath.Equals("")) { using (OleDbConnection varConexion = new OleDbConnection() { ConnectionString = (String.Format("Provider=Microsoft.ACE.OLEDB.12.0; Data Source={0};Extended Properties=\"Excel 12.0;HDR=YES\"", varPath)) }) { varConexion.Open(); OleDbCommand varComando = new OleDbCommand("Select Nro, Item, Descripcion, TipoDestino, ChapetaLote, Cantidad, Piezas From [INVSALIDA$]", varConexion); OleDbDataAdapter varAdaptador = new OleDbDataAdapter(varComando); DataSet dsExcel = new DataSet(); DataTable dtInvSalida = new DataTable(); varAdaptador.Fill(dsExcel); dtInvSalida = dsExcel.Tables[0]; string varRazon = this.lueRazon.EditValue == null ? "" : this.lueRazon.EditValue.ToString(); //Recorremos la informacion recuperada del excel foreach (DataRow drFilaDetalle in dtInvSalida.Rows) { string varIteCodigo = drFilaDetalle["Item"] == null ? "" : drFilaDetalle["Item"].ToString(); string varAnmAlternativo = drFilaDetalle["ChapetaLote"] == null ? "" : drFilaDetalle["ChapetaLote"].ToString(); string varTipoDestino = drFilaDetalle["TipoDestino"].ToString().ToUpper().Equals("CHAPETA") ? "A" : "L"; //Recuperamos la informacion del item List <clsInvItem> lisItem = clsInvItem.funListar(varIteCodigo); //Recuperamos la informacion de la chapeta o el lote DataTable lisChapeta = null; if (varTipoDestino.Equals("A")) { lisChapeta = clsGraAnimal.funListar(string.Format("Where a.AnmAlternativo = '{0}'", varAnmAlternativo)); if (lisChapeta.Rows.Count > 0) { if (!lisChapeta.Rows[0]["EstCodigo"].ToString().Equals("ACTIVO")) { this.grcListado.RefreshDataSource(); XtraMessageBox.Show(string.Format("La chapeta nro: {0} no se encuentra activa", varAnmAlternativo), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } } //Instanciamos una fila del detalle de la clase detalle de movimientos clsInvMovimientoDet objFilaDetalle = new clsInvMovimientoDet() { DetSecuencia = drFilaDetalle["Nro"] == null || drFilaDetalle["Nro"].ToString().Equals("") ? 0 : int.Parse(drFilaDetalle["Nro"].ToString()), //Secuencia IdMotPerdida = null, //Motivo de perdida DetPieza = drFilaDetalle["Piezas"] == null || drFilaDetalle["Piezas"].ToString().Equals("") ? 0 : int.Parse(drFilaDetalle["Piezas"].ToString()), //Piezas IteCodigo = drFilaDetalle["Item"] == null ? "" : drFilaDetalle["Item"].ToString(), //Item IteNombre = lisItem.Count().Equals(0) ? "" : lisItem[0].ItemName, //Descripcion IteUndInventario = lisItem.Count().Equals(0) ? "" : lisItem[0].InvntryUom, //Unidad de inventario IteTieLote = lisItem.Count().Equals(0) ? "" : lisItem[0].ManBtchNum, //Item gestionado por lotes DetTipDestino = drFilaDetalle["TipoDestino"].ToString().ToUpper().Equals("CHAPETA") ? "A" : "L", //Verifica si es chapeta o lote DetIdDestino = lisChapeta.Rows.Count.Equals(0) ? null : drFilaDetalle["ChapetaLote"].ToString(), //Codigo alterno de la chapeta o lote ItePsoStd = lisItem.Count().Equals(0) ? 0 : lisItem[0].SWeight1, //Peso standar DetCantidad = drFilaDetalle["Cantidad"] == null || drFilaDetalle["Cantidad"].ToString().Equals("") ? 0 : decimal.Parse(drFilaDetalle["Cantidad"].ToString()), //Cantidad DetPeso = 0, DetCosto = 0, DetValor = 0 }; //Validamos que la informacion de la fila sea la correcta string varMensaje = objFilaDetalle.funValidarFila(varRazon, varReqChapetaLote); if (varMensaje != "") { varMensaje = varMensaje.Substring(varMensaje.IndexOf(':', 0) + 2, varMensaje.Length - varMensaje.IndexOf(':', 0) - 2); } if (!varMensaje.Equals("")) { this.grcListado.RefreshDataSource(); XtraMessageBox.Show(varMensaje, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } objDetalle.Add(objFilaDetalle); } this.grcListado.RefreshDataSource(); XtraMessageBox.Show("Informacion extraida con exito!!!!", "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information); } } else { XtraMessageBox.Show("Debe escoger el archivo para poder extraer la informacion", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { XtraMessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }