コード例 #1
0
        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);
            }
        }