diff --git a/Helper/HelperGdb.cs b/Helper/HelperGdb.cs index ee3f4bd..4368a00 100644 --- a/Helper/HelperGdb.cs +++ b/Helper/HelperGdb.cs @@ -2388,7 +2388,10 @@ namespace OliviaAddInPro.Helper return tipo; } - public static bool RenameField(string fcname, string oldFieldName, string newFieldName, string newFieldAlias) + /* + * Renombra un campo de la feature class dada + */ + public static bool RenameFieldSync(string fcname, string oldFieldName, string newFieldName, string newFieldAlias) { bool res = false; string[] args = { fcname, oldFieldName, newFieldName,newFieldAlias }; @@ -2413,6 +2416,75 @@ namespace OliviaAddInPro.Helper { } + return res; + } + public struct FieldToAdd + { + public string Name; + public string Tipo; //LONG, TEXT, ... + public string Alias; + public int Length; + + public FieldToAdd(string nomb, string tip, string al, int len) + { + Name = nomb; //obligatorio + Tipo = tip; //obligatorio + Alias = al; + Length = len; + } + } + /* + * Renombra un campo de la feature class dada + */ + public static bool AddFieldsSync(string fcname, FieldToAdd[] fields) + { + bool res = false; + + // set up the arguments + string fields_str = ""; + for(int i=0;i + //{ + rc_shp = fc_shp.Search(); + rc_secto = fc_secto.Search(); + + if (rc_shp == null || rc_secto == null) + { + HelperGdb.Free(rc_shp); + HelperGdb.Free(rc_secto); + HelperGdb.Free(fc_secto); + HelperGdb.Free(fc_shp); + return false; + } + + while (rc_shp.MoveNext() && rc_secto.MoveNext()) + { + rowsecto = rc_secto.Current; + rowshp = rc_shp.Current; + // modify and execute + modifyOp.Modify(rowshp, LimpiezaDef.Campos.consulta_sector,rowsecto[LimpiezaDef.Campos.consulta_sector]); + modifyOp.Modify(rowshp, LimpiezaDef.Campos.consulta_secuen, rowsecto[LimpiezaDef.Campos.consulta_secuen]); + } + bien = true; + //}, fc_shp.GetFeatureDataset()); + + modifyOp.Execute(); + if (bien) + return true; + else + return false; + } + catch + { + + } + finally + { + HelperGdb.Free(rowsecto); + HelperGdb.Free(rowshp); + HelperGdb.Free(rc_shp); + HelperGdb.Free(rc_secto); + HelperGdb.Free(fc_secto); + HelperGdb.Free(fc_shp); + + } return false; } @@ -390,7 +473,7 @@ namespace OliviaAddInPro.Services //si ha importado seguro que las tiene if (OliviaGlob.IsConfig2() && !string.IsNullOrEmpty(com.CapaPlanif)) - return true; + return true; return false; } @@ -437,22 +520,28 @@ namespace OliviaAddInPro.Services //abre las capas, pintando los sectores string path_import = res.Value; int NOPEN = 6; + int nopen_ = 4; string[] path_lyr_arr = new string[NOPEN]; + //se añade la capa de ambitos original con la secto, y se pinta por sectores - shape + path_lyr_arr[0] = path_import; //la primera capa que se añade es la de ruta, se le quita la visualización porque lo que interesa //de esa capa es poder acceder si fuera necesario a la tabla de atributos. shape + name_ruta_out - path_lyr_arr[0]= path_import + NAME_RUTA_OUT; - //la siguiente es la de ruta2, se le quita la visualización porque lo que interesa - //de esa capa es poder acceder si fuera necesario a la tabla de atributos. shape + name_ruta2_out - path_lyr_arr[1] = path_import + NAME_RUTA2_OUT; + path_lyr_arr[1]= path_import + NAME_RUTA_OUT; //se añade la capa de ruta_aux y se pinta por sectores - shape + name_ruta_out + name_aux path_lyr_arr[2] = path_import + NAME_RUTA_OUT + NAME_AUX; - //se añade la capa de ambitos original con la secto, y se pinta por sectores - shape - path_lyr_arr[3] = path_import; - //se añade la capa de la ruta a las instalaciones, comprueba si hay configurada coordenadas de la instalación - shape + name_inst_out - path_lyr_arr[4] = path_import + NAME_INSTAL_OUT; //se abre la capa de puntos de control y se pintan por el sector al que pertenecen - shape + name_control_out - path_lyr_arr[5] = path_import + NAME_CONTROL_OUT; - bool[] visible_arr = {false,false,true,true,false,false }; + path_lyr_arr[3] = path_import + NAME_CONTROL_OUT; + + //la siguiente es la de ruta2, se le quita la visualización porque lo que interesa + //de esa capa es poder acceder si fuera necesario a la tabla de atributos. shape + name_ruta2_out + if (System.IO.File.Exists(path_import + NAME_RUTA2_OUT)) + path_lyr_arr[nopen_++] = path_import + NAME_RUTA2_OUT; + //se añade la capa de la ruta a las instalaciones, comprueba si hay configurada coordenadas de la instalación - shape + name_inst_out + if (System.IO.File.Exists(path_import + NAME_INSTAL_OUT)) + path_lyr_arr[nopen_++] = path_import + NAME_INSTAL_OUT; + + NOPEN = nopen_; + bool[] visible_arr = {true,false,true,false,false,false }; int i; var resb = new Respuesta(); for(i =0;i