private void CargarCtaSII() { SAPbouiCOM.ProgressBar oProgressBar = null; Int32 NroLineas; System.Data.DataTable dtConceptos; Boolean bRegistroOk; String sHojaExcel; String sCuenta; String sRegistro; String Padre; //String Hijo; String sPeriodoActual; String strConn; Boolean bIngresaConceptos = false; DataSet ADOQueryExcel; Int32 Entry; OleDbDataAdapter adapter; String sPathArchivo = ""; try { sPathArchivo = Directory.GetCurrentDirectory() + "\\SQLs\\CL\\Carga\\DiccionarioSII.xls"; sHojaExcel = "[CTASII$]"; strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0;Mode=ReadWrite"; strConn = String.Format(strConn, sPathArchivo); adapter = new OleDbDataAdapter("Select * from [CTASII$]", strConn); ADOQueryExcel = new DataSet(); try { adapter.Fill(ADOQueryExcel, "CTASII"); dtConceptos = new System.Data.DataTable(); dtConceptos = ADOQueryExcel.Tables["CTASII"]; } catch //(Exception y) { FSBOApp.StatusBar.SetText("Error leyendo archivo excel...", BoMessageTime.bmt_Short, BoStatusBarMessageType.smt_Error); return; } if (dtConceptos.Rows.Count == 0) { FSBOApp.StatusBar.SetText("No existen Cuentas SII para importar...", BoMessageTime.bmt_Short, BoStatusBarMessageType.smt_Error); return; } oProgressBar = FSBOApp.StatusBar.CreateProgressBar("Importando Cuentas SII...", dtConceptos.Rows.Count + 2, false); NroLineas = 1; foreach (DataRow oRow in dtConceptos.Rows) { bIngresaConceptos = false; sCuenta = oRow.Field <String>("Cuenta"); if (sCuenta != null) { sRegistro = Convert.ToString(oRow.Field <Double>("Registro")); if (Convert.ToString(oRow.Field <String>("Glosa")).Trim() == "") { s = @"UPDATE {0} SET validacion = 'Debe ingresar Glosa' where [Registro] = {1}"; s = String.Format(s, sHojaExcel, sRegistro); Funciones.EjecutarSQLOleDb(s, strConn); } else { bIngresaConceptos = true; } if (bIngresaConceptos) { oDBDSHeader.Clear(); oDBDSHeader.InsertRecord(0); oDBDSHeader.SetValue("U_Cuenta", 0, Convert.ToString(oRow.Field <String>("Cuenta")).Trim()); oDBDSHeader.SetValue("U_Desc", 0, Convert.ToString(oRow.Field <String>("Glosa")).Trim()); oDBDSHeader.SetValue("U_Clasif", 0, Convert.ToString(oRow.Field <String>("Clasificacion")).Trim()); Entry = Funciones.AddDataSourceInt1("VID_FEPLANCTA", oDBDSHeader, "", null, "", null, "", null); if (Entry > 0) { var ss = FCmpny.GetNewObjectKey(); s = @"UPDATE {0} SET validacion = 'OK' WHERE [Registro] = {1}"; s = String.Format(s, sHojaExcel, sRegistro); } else { var err = FCmpny.GetLastErrorDescription(); s = @"UPDATE {0} SET validacion = 'Error al crear {1}' WHERE [Registro] = {2}"; s = String.Format(s, sHojaExcel, err, sRegistro); } Funciones.EjecutarSQLOleDb(s, strConn); } } else { oProgressBar.Value = oProgressBar.Maximum; break; } oProgressBar.Value = NroLineas; NroLineas = NroLineas + 1; } FSBOApp.StatusBar.SetText("Fin de la importaciĆ³n", BoMessageTime.bmt_Long, BoStatusBarMessageType.smt_Success); FSBOApp.MessageBox("Fin de la importaciĆ³n", 1, "Ok", "", ""); } catch (Exception e) { FSBOApp.MessageBox(e.Message + " ** Trace: " + e.StackTrace, 1, "Ok", "", ""); OutLog("Error importando Conceptos desde: " + sPathArchivo + ". Error: " + e.Message + " ** Trace: " + e.StackTrace); } finally { if (oProgressBar != null) { oProgressBar.Stop(); } FSBOf._ReleaseCOMObject(oProgressBar); } }