Merge branch 'develop' of https://www.narvaling.com/Bonobo.Git.Server/OliviaAddInPro into develop
commit
a728cf770f
|
|
@ -38,7 +38,7 @@
|
||||||
<tooltip heading="OLIVIA - Recogida de Residuos">
|
<tooltip heading="OLIVIA - Recogida de Residuos">
|
||||||
Add-In de ArcGIS Pro para la herramienta de optimización de la limpieza viaria, OLIVIA<disabledText /></tooltip>
|
Add-In de ArcGIS Pro para la herramienta de optimización de la limpieza viaria, OLIVIA<disabledText /></tooltip>
|
||||||
</button>
|
</button>
|
||||||
<button id="OliviaAddInPro_ButtonConfig" caption="Configuración" className="ButtonConfig" loadOnClick="true" largeImage="Images/config2.png">
|
<button id="OliviaAddInPro_ButtonConfig" caption="Configuración" className="ButtonConfig" loadOnClick="true" largeImage="Images/config2_olv.png">
|
||||||
<tooltip heading="OLIVIA - Configuración">
|
<tooltip heading="OLIVIA - Configuración">
|
||||||
Add-In de ArcGIS Pro para la herramienta de optimización de la limpieza viaria, OLIVIA<disabledText /></tooltip>
|
Add-In de ArcGIS Pro para la herramienta de optimización de la limpieza viaria, OLIVIA<disabledText /></tooltip>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
||||||
|
|
@ -562,7 +562,7 @@ namespace OliviaAddInPro.Helper
|
||||||
return ftclss;
|
return ftclss;
|
||||||
}
|
}
|
||||||
//devuelve el campo dado el nombre
|
//devuelve el campo dado el nombre
|
||||||
private static ArcGIS.Core.Data.Field GetFieldByNameSinc(FeatureClass ftClss, string fieldName)
|
private static ArcGIS.Core.Data.Field GetFieldByNameSync(FeatureClass ftClss, string fieldName)
|
||||||
{
|
{
|
||||||
FeatureClassDefinition ftcldef = ftClss.GetDefinition();
|
FeatureClassDefinition ftcldef = ftClss.GetDefinition();
|
||||||
ReiniciaOutStr();
|
ReiniciaOutStr();
|
||||||
|
|
@ -739,9 +739,10 @@ namespace OliviaAddInPro.Helper
|
||||||
if (!fields.Contains(field))
|
if (!fields.Contains(field))
|
||||||
{
|
{
|
||||||
HelperGdb.OutStr = "No se encuentra el campo " + field;
|
HelperGdb.OutStr = "No se encuentra el campo " + field;
|
||||||
|
Free(fc);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Free(fc);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
|
@ -757,13 +758,14 @@ namespace OliviaAddInPro.Helper
|
||||||
}
|
}
|
||||||
|
|
||||||
ObservableCollection<string> fields = GetFieldsSync(fc);
|
ObservableCollection<string> fields = GetFieldsSync(fc);
|
||||||
|
bool encuentra = true;
|
||||||
if (!fields.Contains(field))
|
if (!fields.Contains(field))
|
||||||
{
|
{
|
||||||
HelperGdb.OutStr = "No se encuentra el campo " + field;
|
HelperGdb.OutStr = "No se encuentra el campo " + field;
|
||||||
return false;
|
encuentra= false;
|
||||||
}
|
}
|
||||||
|
Free(fc);
|
||||||
return true;
|
return encuentra;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Lee la capa que se ha seleccionzdo de recogida y se comprueba que contiene los campos necesarios
|
* Lee la capa que se ha seleccionzdo de recogida y se comprueba que contiene los campos necesarios
|
||||||
|
|
@ -1946,6 +1948,8 @@ namespace OliviaAddInPro.Helper
|
||||||
if (brwsFilt != null)
|
if (brwsFilt != null)
|
||||||
dlg.BrowseFilter = brwsFilt;
|
dlg.BrowseFilter = brwsFilt;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
bool? ok = dlg.ShowDialog();
|
bool? ok = dlg.ShowDialog();
|
||||||
|
|
||||||
if ((ok ?? true) && dlg.FilePath.Length > 0)
|
if ((ok ?? true) && dlg.FilePath.Length > 0)
|
||||||
|
|
@ -1953,6 +1957,19 @@ namespace OliviaAddInPro.Helper
|
||||||
else
|
else
|
||||||
return string.Empty;
|
return string.Empty;
|
||||||
}
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
return string.Empty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Saca diálogo para elegir directorio
|
||||||
|
*/
|
||||||
|
public static string FolderBrowseDlg(string title_, string initloc_)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Comprueva si una GDB contiene un Dataset
|
* Comprueva si una GDB contiene un Dataset
|
||||||
|
|
@ -2391,5 +2408,113 @@ namespace OliviaAddInPro.Helper
|
||||||
Free(ftcl);
|
Free(ftcl);
|
||||||
return tipo;
|
return tipo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 };
|
||||||
|
// execute the tool
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var gpres = Geoprocessing.ExecuteToolAsync("management.AlterField", args);
|
||||||
|
if (gpres.Result.IsFailed)
|
||||||
|
{
|
||||||
|
var gpResult = gpres.Result;
|
||||||
|
string msg;
|
||||||
|
if (gpResult.ErrorMessages != null)
|
||||||
|
msg = gpResult.ErrorMessages.First().Text;
|
||||||
|
else
|
||||||
|
msg = "Errores al renombrar campo "+newFieldName;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
res= true; //ha ido bien
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
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 = "";
|
||||||
|
int camps = 0;
|
||||||
|
for(int i=0;i<fields.Length;i++)
|
||||||
|
{
|
||||||
|
if (CheckFieldSync(fcname, fields[i].Name))
|
||||||
|
continue;
|
||||||
|
camps++;
|
||||||
|
|
||||||
|
fields_str += fields[i].Name + " " + fields[i].Tipo + " ";
|
||||||
|
if (!string.IsNullOrEmpty(fields[i].Alias))
|
||||||
|
fields_str += fields[i].Alias;
|
||||||
|
else
|
||||||
|
fields_str += "#";
|
||||||
|
|
||||||
|
fields_str += " ";
|
||||||
|
if (fields[i].Length != 0)
|
||||||
|
fields_str += fields[i].Length;
|
||||||
|
else
|
||||||
|
fields_str += "#";
|
||||||
|
fields_str += " #"; //def value siempre #
|
||||||
|
|
||||||
|
if (i < fields.Length - 1)
|
||||||
|
fields_str += ";";
|
||||||
|
}
|
||||||
|
if (camps == 0)
|
||||||
|
return true;//no tiene que añadir ningún campo porque los tiene
|
||||||
|
|
||||||
|
//var f1 = "field1 long field1 # #;field2 Text # 255 myDefaultValue"; //los # son opciones sin rellenar el orden es: Nombre Tipo Alias Longitud Valor Defecto
|
||||||
|
|
||||||
|
var args = Geoprocessing.MakeValueArray(fcname, fields_str);
|
||||||
|
|
||||||
|
// run the tool
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var gpres = Geoprocessing.ExecuteToolAsync("management.AddFields", args);
|
||||||
|
if (gpres.Result.IsFailed)
|
||||||
|
{
|
||||||
|
var gpResult = gpres.Result;
|
||||||
|
string msg;
|
||||||
|
if (gpResult.ErrorMessages != null)
|
||||||
|
msg = gpResult.ErrorMessages.First().Text;
|
||||||
|
else
|
||||||
|
msg = "Errores al añadir campos";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
res = true; //ha ido bien
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
|
|
@ -66,9 +66,12 @@ namespace OliviaAddInPro.Model
|
||||||
/////
|
/////
|
||||||
///DEBUG
|
///DEBUG
|
||||||
///
|
///
|
||||||
/*Respuesta<TiposEjecucion> res1 = new Respuesta<TiposEjecucion> { Value = TiposEjecucion.FinEjecOk };
|
//Respuesta<TiposEjecucion> res1 = new Respuesta<TiposEjecucion> { Value = TiposEjecucion.FinEjecOk };
|
||||||
HelperGdb.OpenLayer(@"C:\Users\Elena\Documents\ArcGIS\Projects\MyProject3\MyProject3.gdb\Barrido_man\BarMan_AceM_AceNM_20220529_134336", "SECTOR", true);
|
//HelperGdb.OpenLayer(@"C:\Users\Elena\Documents\ArcGIS\Projects\MyProject3\MyProject3.gdb\Barrido_man\BarMan_AceM_AceNM_20220529_134336", "SECTOR", true);
|
||||||
return res1;*/
|
//Serv.ActualizaSecto(@"D:\Proyectos\Olivia\Instal2.0\data\data_T00_A0405_20220628_214902.shp", @"C:\\Users\\Elena\\Documents\\ArcGIS\\Projects\\MyProject3\\MyProject3.gdb\\Barrido_man\\BarMan_AceM_AceNM_20220628_214613");
|
||||||
|
//return res1;
|
||||||
|
|
||||||
|
//////////////////
|
||||||
/////////////////////////////
|
/////////////////////////////
|
||||||
|
|
||||||
Respuesta<bool> res = new Respuesta<bool> { Value=false};
|
Respuesta<bool> res = new Respuesta<bool> { Value=false};
|
||||||
|
|
@ -144,5 +147,20 @@ namespace OliviaAddInPro.Model
|
||||||
ambitos = ambitos + shapefile.Substring(aux);
|
ambitos = ambitos + shapefile.Substring(aux);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Restaura el nombre original del campo si se ha truncado a 10 car al exportar a shp
|
||||||
|
*/
|
||||||
|
public override string[] GetCamposRestaura()
|
||||||
|
{
|
||||||
|
string[] camps = {
|
||||||
|
LimpiezaDef.Campos.consulta_entidad,
|
||||||
|
LimpiezaDef.Campos.consulta_mecan,
|
||||||
|
LimpiezaDef.Campos.consulta_observ,
|
||||||
|
LimpiezaDef.Campos.consulta_anch_tip,
|
||||||
|
LimpiezaDef.Campos.consulta_tipolo,
|
||||||
|
/*LimpiezaDef.Campos.consulta_sector,
|
||||||
|
LimpiezaDef.Campos.consulta_secuen */};
|
||||||
|
return camps;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -212,7 +212,7 @@ namespace OliviaAddInPro.Model
|
||||||
if (sh)
|
if (sh)
|
||||||
{
|
{
|
||||||
DockpaneLimpiezaViewModel.Show();
|
DockpaneLimpiezaViewModel.Show();
|
||||||
SetFlagTipEjec(TiposEjecucion.Limp);
|
//SetFlagTipEjec(TiposEjecucion.Limp);
|
||||||
ViewSetFlagTipEjec(TiposEjecucion.Limp);
|
ViewSetFlagTipEjec(TiposEjecucion.Limp);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -226,7 +226,7 @@ namespace OliviaAddInPro.Model
|
||||||
if (sh)
|
if (sh)
|
||||||
{
|
{
|
||||||
DockpaneRecogidaViewModel.Show();
|
DockpaneRecogidaViewModel.Show();
|
||||||
SetFlagTipEjec(TiposEjecucion.Reco);
|
//SetFlagTipEjec(TiposEjecucion.Reco);
|
||||||
ViewSetFlagTipEjec(TiposEjecucion.Reco);
|
ViewSetFlagTipEjec(TiposEjecucion.Reco);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -155,5 +155,42 @@ namespace OliviaAddInPro.Model
|
||||||
//concatena el timestamp
|
//concatena el timestamp
|
||||||
carga = carga + shapefile.Substring(aux);
|
carga = carga + shapefile.Substring(aux);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restaura el nombre original del campo si se ha truncado a 10 car al exportar a shp
|
||||||
|
*/
|
||||||
|
public override string[] GetCamposRestaura()
|
||||||
|
{
|
||||||
|
string[] camps = {
|
||||||
|
RecogidaDef.campos_def.cons_id,
|
||||||
|
RecogidaDef.campos_def.cons_nomrec,
|
||||||
|
RecogidaDef.campos_def.cons_lateral ,
|
||||||
|
RecogidaDef.campos_def.cons_fracc,
|
||||||
|
RecogidaDef.campos_def.cons_capac,
|
||||||
|
RecogidaDef.campos_def.cons_uds,
|
||||||
|
RecogidaDef.campos_def.cons_kgrec };
|
||||||
|
return camps;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rellena el array de filtros en base a la config
|
||||||
|
*/
|
||||||
|
public void RellenaFiltrosReco()
|
||||||
|
{
|
||||||
|
//se rellena el array de filtros
|
||||||
|
RecogidaDef.filtro_str = new string[RecogidaDef.tipos_fracc_str.Length + RecogidaDef.tipos_carg_str.Length];
|
||||||
|
for (int i = 0; i < RecogidaDef.tipos_fracc_str.Length; i++)
|
||||||
|
{
|
||||||
|
//se comprueba que tipo de fracción se ha seleccionado. Si se ha seleccionado una fracción sin nombre (el campo en la capa es NULL, y en el comboBox de fracciiones aparece como "-") hay que modificar el filtro
|
||||||
|
if (RecogidaDef.tipos_fracc_str[i] == "-")
|
||||||
|
RecogidaDef.filtro_str[i] = RecogidaDef.campos_def.cons_fracc + " IS NULL";
|
||||||
|
else
|
||||||
|
RecogidaDef.filtro_str[i] = RecogidaDef.campos_def.cons_fracc + "= '" + RecogidaDef.tipos_fracc_str[i] + "'";
|
||||||
|
}
|
||||||
|
for (int i = RecogidaDef.tipos_fracc_str.Length; i < RecogidaDef.filtro_str.Length; i++)
|
||||||
|
{
|
||||||
|
RecogidaDef.filtro_str[i] = RecogidaDef.campos_def.cons_nomrec + "= '" + RecogidaDef.tipos_carg_str[i - RecogidaDef.tipos_fracc_str.Length] + "'";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,9 @@ using OliviaAddInPro.Helper;
|
||||||
using OliviaAddInPro.Model.contract;
|
using OliviaAddInPro.Model.contract;
|
||||||
using OliviaAddInPro.Services;
|
using OliviaAddInPro.Services;
|
||||||
using static OliviaAddInPro.Model.ComunDef;
|
using static OliviaAddInPro.Model.ComunDef;
|
||||||
|
using ArcGIS.Core.CIM;
|
||||||
|
using ArcGIS.Core.Data;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
namespace OliviaAddInPro.Model
|
namespace OliviaAddInPro.Model
|
||||||
{
|
{
|
||||||
|
|
@ -191,5 +194,62 @@ namespace OliviaAddInPro.Model
|
||||||
tratamiento = string.Empty;
|
tratamiento = string.Empty;
|
||||||
ambitos = string.Empty;
|
ambitos = string.Empty;
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* Restaura el nombre original del campo si se ha truncado a 10 car al exportar a shp
|
||||||
|
*/
|
||||||
|
public virtual string[] GetCamposRestaura()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Restaura el nombre original del campo si se ha truncado a 10 car al exportar a shp
|
||||||
|
*/
|
||||||
|
public Respuesta<bool> RestauraNomCampos(string nombFtClass)
|
||||||
|
{
|
||||||
|
int LENGTHCAMPSHP = 10;
|
||||||
|
Respuesta<bool> resp = new Respuesta<bool> { Value = false };
|
||||||
|
FeatureClass fc = HelperGdb.GetFtClassSync(nombFtClass);
|
||||||
|
if (fc == null)
|
||||||
|
return resp;
|
||||||
|
////////////////////////////////////////////////////////
|
||||||
|
string[] camps = GetCamposRestaura();
|
||||||
|
|
||||||
|
ObservableCollection<string> fields = HelperGdb.GetFieldsSync(fc);
|
||||||
|
HelperGdb.Free(fc);
|
||||||
|
if (fields == null)
|
||||||
|
return resp;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
int i = 0;
|
||||||
|
int indx;
|
||||||
|
string campTrunc = string.Empty;
|
||||||
|
for (i = 0; i < camps.Length; i++)
|
||||||
|
{
|
||||||
|
if (camps[i].Length <= LENGTHCAMPSHP)
|
||||||
|
continue;
|
||||||
|
campTrunc = camps[i].Substring(0, LENGTHCAMPSHP);
|
||||||
|
//si tiene más de 10 caracteres, lo ha truncado al exportar
|
||||||
|
//busca el nombre actual del campo en la fc
|
||||||
|
indx = fields.IndexOf(campTrunc);
|
||||||
|
if (indx < 0)
|
||||||
|
break;
|
||||||
|
if (!HelperGdb.RenameFieldSync(nombFtClass, campTrunc, camps[i],camps[i]))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (i < camps.Length)
|
||||||
|
{
|
||||||
|
resp.Error.Add("Error en el campo " + camps[i]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
resp.Value = true;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
<OutputPath>bin\Debug\</OutputPath>
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
<ErrorReport>prompt</ErrorReport>
|
<ErrorReport>prompt</ErrorReport>
|
||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>0</WarningLevel>
|
||||||
<StartAction>Program</StartAction>
|
<StartAction>Program</StartAction>
|
||||||
<StartProgram>$(ArcGISFolder)\bin\ArcGISPro.exe</StartProgram>
|
<StartProgram>$(ArcGISFolder)\bin\ArcGISPro.exe</StartProgram>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
|
|
@ -357,6 +357,9 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AddInContent Include="Images\carrito2.png" />
|
<AddInContent Include="Images\carrito2.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AddInContent Include="Images\config2_olv.png" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!--
|
<!--
|
||||||
PackageAction can be:
|
PackageAction can be:
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,8 @@ namespace OliviaAddInPro.Services
|
||||||
//ahora si está en modo planificación y la capa no tiene esa columna, exporta la sectorización
|
//ahora si está en modo planificación y la capa no tiene esa columna, exporta la sectorización
|
||||||
if (modo==ModosEjec.Planifica && !string.IsNullOrEmpty(com.CapaPlanif))
|
if (modo==ModosEjec.Planifica && !string.IsNullOrEmpty(com.CapaPlanif))
|
||||||
{
|
{
|
||||||
|
string capa_principal = System.IO.Path.GetFileNameWithoutExtension(OliviaGlob.Paths.PathData);
|
||||||
|
HelperGdb.CloseLayer(capa_principal);
|
||||||
if (!ActualizaSecto(OliviaGlob.Paths.PathData, com.CapaPlanif))
|
if (!ActualizaSecto(OliviaGlob.Paths.PathData, com.CapaPlanif))
|
||||||
{
|
{
|
||||||
ErrStr = "Error al exportar campos de SECTOR y/o SECUENCIA de la capa " + com.CapaPlanif;
|
ErrStr = "Error al exportar campos de SECTOR y/o SECUENCIA de la capa " + com.CapaPlanif;
|
||||||
|
|
@ -280,7 +282,136 @@ namespace OliviaAddInPro.Services
|
||||||
*/
|
*/
|
||||||
public bool ActualizaSecto(string path_shp, string path_secto)
|
public bool ActualizaSecto(string path_shp, string path_secto)
|
||||||
{
|
{
|
||||||
|
//Añade al shp exportado la columna de sector y secuencia
|
||||||
|
HelperGdb.FieldToAdd[] fields = new HelperGdb.FieldToAdd[2];
|
||||||
|
//campo SECTOR
|
||||||
|
fields[0].Name = LimpiezaDef.Campos.consulta_sector;
|
||||||
|
fields[0].Alias = LimpiezaDef.Campos.consulta_sector;
|
||||||
|
fields[0].Tipo = "LONG";
|
||||||
|
fields[0].Length = 0;
|
||||||
|
//campo SECUENCIA
|
||||||
|
fields[1].Name = LimpiezaDef.Campos.consulta_secuen;
|
||||||
|
fields[1].Alias = LimpiezaDef.Campos.consulta_secuen;
|
||||||
|
fields[1].Tipo = "LONG";
|
||||||
|
fields[1].Length = 0;
|
||||||
|
|
||||||
|
if (!HelperGdb.AddFieldsSync(path_shp, fields))
|
||||||
return false;
|
return false;
|
||||||
|
//vuelve a cerrar la capa
|
||||||
|
string capa_principal = System.IO.Path.GetFileNameWithoutExtension(path_shp);
|
||||||
|
HelperGdb.CloseLayer(capa_principal);
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//ahora rellena las columnas
|
||||||
|
using (FeatureClass fc_secto = HelperGdb.GetFtClassSync(path_secto))
|
||||||
|
{
|
||||||
|
using (FeatureClass fc_shp = HelperGdb.GetFtClassSync(path_shp))
|
||||||
|
{
|
||||||
|
if (fc_secto == null || fc_shp == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (RowCursor rc_shp = fc_shp.Search())
|
||||||
|
{
|
||||||
|
using (RowCursor rc_secto = fc_secto.Search())
|
||||||
|
{
|
||||||
|
if (rc_shp == null || rc_secto == null)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
var modifyOp = new ArcGIS.Desktop.Editing.EditOperation();
|
||||||
|
modifyOp.Name = "Actualiza SECTOR y SECUENCIA";
|
||||||
|
bool ex = false;
|
||||||
|
//modifyOp.Callback((context) =>
|
||||||
|
//{
|
||||||
|
while (rc_shp.MoveNext() && rc_secto.MoveNext())
|
||||||
|
{
|
||||||
|
using (Row rowsecto = rc_secto.Current)
|
||||||
|
{
|
||||||
|
using (Row rowshp = rc_shp.Current)
|
||||||
|
{
|
||||||
|
//context.Invalidate(rowshp);
|
||||||
|
// 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]);
|
||||||
|
rowshp.Store();
|
||||||
|
//context.Invalidate(rowshp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//}, fc_shp);
|
||||||
|
ex = modifyOp.Execute();
|
||||||
|
ArcGIS.Desktop.Core.Project.Current.SaveEditsAsync();
|
||||||
|
if (ex && modifyOp.IsDone)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
var modifyOp = new ArcGIS.Desktop.Editing.EditOperation();
|
||||||
|
modifyOp.Name = "Actualiza SECTOR y SECUENCIA";
|
||||||
|
bool ex=false;
|
||||||
|
modifyOp.Callback((context) =>
|
||||||
|
{
|
||||||
|
using (RowCursor rc_shp = fc_shp.Search())
|
||||||
|
{
|
||||||
|
using (RowCursor rc_secto = fc_secto.Search())
|
||||||
|
{
|
||||||
|
|
||||||
|
if (rc_shp != null && rc_secto != null)
|
||||||
|
{
|
||||||
|
while (rc_shp.MoveNext() && rc_secto.MoveNext())
|
||||||
|
{
|
||||||
|
using (Row rowsecto = rc_secto.Current)
|
||||||
|
{
|
||||||
|
using (Row rowshp = rc_shp.Current)
|
||||||
|
{
|
||||||
|
context.Invalidate(rowshp);
|
||||||
|
// 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]);
|
||||||
|
rowshp.Store();
|
||||||
|
context.Invalidate(rowshp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bien = true;
|
||||||
|
rc_secto.Dispose();
|
||||||
|
rc_shp.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, fc_shp);
|
||||||
|
ex = modifyOp.Execute();
|
||||||
|
if (bien && ex && modifyOp.IsDone)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
fc_secto.Dispose();
|
||||||
|
fc_shp.Dispose();
|
||||||
|
HelperGdb.Free(fc_secto);
|
||||||
|
HelperGdb.Free(fc_shp);
|
||||||
|
|
||||||
|
}
|
||||||
|
return false;*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -437,22 +568,28 @@ namespace OliviaAddInPro.Services
|
||||||
//abre las capas, pintando los sectores
|
//abre las capas, pintando los sectores
|
||||||
string path_import = res.Value;
|
string path_import = res.Value;
|
||||||
int NOPEN = 6;
|
int NOPEN = 6;
|
||||||
|
int nopen_ = 4;
|
||||||
string[] path_lyr_arr = new string[NOPEN];
|
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
|
//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
|
//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;
|
path_lyr_arr[1]= 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;
|
|
||||||
//se añade la capa de ruta_aux y se pinta por sectores - shape + name_ruta_out + name_aux
|
//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;
|
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
|
//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;
|
path_lyr_arr[3] = path_import + NAME_CONTROL_OUT;
|
||||||
bool[] visible_arr = {false,false,true,true,false,false };
|
|
||||||
|
//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;
|
int i;
|
||||||
var resb = new Respuesta<bool>();
|
var resb = new Respuesta<bool>();
|
||||||
for(i =0;i<NOPEN;i++)
|
for(i =0;i<NOPEN;i++)
|
||||||
|
|
@ -491,15 +628,7 @@ namespace OliviaAddInPro.Services
|
||||||
string tratamiento = string.Empty;
|
string tratamiento = string.Empty;
|
||||||
string ambitos = string.Empty;
|
string ambitos = string.Empty;
|
||||||
com.decode_gdb(shapefile, out tratamiento, out ambitos); //supsuestamente distingue si es limpieza o recogida
|
com.decode_gdb(shapefile, out tratamiento, out ambitos); //supsuestamente distingue si es limpieza o recogida
|
||||||
/*
|
|
||||||
if (prefijo == "T")
|
|
||||||
{
|
|
||||||
com.decode_gdb(shapefile, out tratamiento, out ambitos);
|
|
||||||
}
|
|
||||||
else if (prefijo == "F")
|
|
||||||
{
|
|
||||||
com.decode_gdb(shapefile, out tratamiento, out ambitos);
|
|
||||||
}*/
|
|
||||||
if(string.IsNullOrEmpty(tratamiento) || string.IsNullOrEmpty(ambitos))
|
if(string.IsNullOrEmpty(tratamiento) || string.IsNullOrEmpty(ambitos))
|
||||||
{
|
{
|
||||||
res.Error.Add(string.Format("Nombre del archivo a importar erróneo. No se reconoce el prefijo introducido: {0}", prefijo));
|
res.Error.Add(string.Format("Nombre del archivo a importar erróneo. No se reconoce el prefijo introducido: {0}", prefijo));
|
||||||
|
|
@ -529,48 +658,6 @@ namespace OliviaAddInPro.Services
|
||||||
}
|
}
|
||||||
string dataset = tratamiento;
|
string dataset = tratamiento;
|
||||||
|
|
||||||
/*
|
|
||||||
* //YA NO hace falta preguntar ni comprobar el ftclass porque pone el timestamp y el nombre es único
|
|
||||||
/////////////////////////////////////////
|
|
||||||
//pregunta a ver si se quiere ese nombre u otro
|
|
||||||
bool replace = false;
|
|
||||||
string dataset = tratamiento;
|
|
||||||
bool sal = true;
|
|
||||||
string ambitos_aux;
|
|
||||||
//repite por si se ha equivocado hasta que elige el nombre de clase
|
|
||||||
do
|
|
||||||
{
|
|
||||||
sal = true;
|
|
||||||
ambitos_aux = HelperGdb.SaveFileDlg("Guardar Feature Class como...", GdbFileName + "\\" + tratamiento, null, null,
|
|
||||||
ArcGIS.Desktop.Core.BrowseProjectFilter.GetFilter("esri_browseDialogFilters_featureClasses_all"));
|
|
||||||
if (string.IsNullOrEmpty(ambitos_aux))
|
|
||||||
sal = HelperGlobal.ponMsg("¿Desea cancelar el proceso de imporación?",
|
|
||||||
MessageBoxImage.Question, "OLIVIA", MessageBoxButton.YesNo);
|
|
||||||
} while (!sal);
|
|
||||||
if (!string.IsNullOrEmpty(ambitos_aux))
|
|
||||||
{
|
|
||||||
//sustituye los ámbitos por los elegidos
|
|
||||||
ambitos = System.IO.Path.GetFileNameWithoutExtension(ambitos_aux);
|
|
||||||
replace = System.IO.File.Exists(ambitos_aux);
|
|
||||||
dataset = System.IO.Path.GetFileNameWithoutExtension(System.IO.Path.GetDirectoryName(ambitos_aux)) ;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
res.Error.Add("Se ha cancelado la importación de resultados. Se cancela la elección de nombre de la Feature Class.");
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
//comprueba si la proyección es la misma la del dataset que la que llega
|
|
||||||
if (!dataset.Equals(tratamiento))
|
|
||||||
{
|
|
||||||
//ha cambiado de dataset al elegir
|
|
||||||
//comprueba las proyecciones
|
|
||||||
if (!HelperGdb.GetSpatRef(GdbFileName, dataset).Equals(spatRefData))
|
|
||||||
{
|
|
||||||
//avisa
|
|
||||||
HelperGlobal.ponMsg(err_spatref);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
/////////////////////////////////////////
|
/////////////////////////////////////////
|
||||||
//todo ok, se pone a importar
|
//todo ok, se pone a importar
|
||||||
string err_st =string.Empty;
|
string err_st =string.Empty;
|
||||||
|
|
@ -637,18 +724,6 @@ namespace OliviaAddInPro.Services
|
||||||
//se embucla para hacer todas las importaciones necesarias
|
//se embucla para hacer todas las importaciones necesarias
|
||||||
for (i = 0; i < NIMPORT; i++)
|
for (i = 0; i < NIMPORT; i++)
|
||||||
{
|
{
|
||||||
//mira a ver si hay que borrar para reemplazar
|
|
||||||
/*if (replace)
|
|
||||||
{
|
|
||||||
resp2 = HelperGdb.DeleteFeatureClass(GdbFileName, noms_gdb[i]);
|
|
||||||
if (!resp2.Value)
|
|
||||||
{
|
|
||||||
err_st = "Error al sobreescribir la capa " + noms_gdb[i];
|
|
||||||
if (resp2.HasError)
|
|
||||||
err_st += " " + resp2.Error.First();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
resp2 = HelperGdb.ImportShp(dir_shp + "\\" + noms_shp[i] + HelperGdb.SHP_EXT, GdbFileName + "\\" + dataset, noms_gdb[i]);
|
resp2 = HelperGdb.ImportShp(dir_shp + "\\" + noms_shp[i] + HelperGdb.SHP_EXT, GdbFileName + "\\" + dataset, noms_gdb[i]);
|
||||||
if (!resp2.Value)
|
if (!resp2.Value)
|
||||||
{
|
{
|
||||||
|
|
@ -657,13 +732,23 @@ namespace OliviaAddInPro.Services
|
||||||
err_st += " " + resp2.Error.First();
|
err_st += " " + resp2.Error.First();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if (i < NIMPORT)
|
if (i < NIMPORT)
|
||||||
{
|
{
|
||||||
res.Error.Add("Errores en la importación: "+err_st);
|
res.Error.Add("Errores en la importación: "+err_st);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
//cambia el nombre de los campos que había truncado a 10 caracteres al exportar a shp
|
||||||
|
//solo para la capa original
|
||||||
|
resp2 = com.RestauraNomCampos(GdbFileName + "\\" + dataset + "\\" + noms_gdb[0]);
|
||||||
|
if (!resp2.Value)
|
||||||
|
{
|
||||||
|
err_st = "Error al renombrar campos " + noms_gdb[i];
|
||||||
|
if (resp2.HasError)
|
||||||
|
err_st += " " + resp2.Error.First();
|
||||||
|
res.Error.Add("Errores en la importación: " + err_st);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
|
|
@ -677,7 +762,6 @@ namespace OliviaAddInPro.Services
|
||||||
res.Value = path_import;
|
res.Value = path_import;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cierra del mapa las capas de trabajo después de la exportación
|
* Cierra del mapa las capas de trabajo después de la exportación
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -16,105 +16,8 @@ namespace OliviaAddInPro.Services
|
||||||
{
|
{
|
||||||
Application.Current.Dispatcher.BeginInvoke(new Action<Respuesta<TiposEjecucion>, TratamientoComun>((p, v) => finEjecuta2(p, v)),res,inst);
|
Application.Current.Dispatcher.BeginInvoke(new Action<Respuesta<TiposEjecucion>, TratamientoComun>((p, v) => finEjecuta2(p, v)),res,inst);
|
||||||
|
|
||||||
//borra los archivos que le toca borrar
|
|
||||||
//BorraFiles();
|
|
||||||
}
|
}
|
||||||
public void finEjecuta2_old(Respuesta<TiposEjecucion> res, TratamientoComun inst)
|
|
||||||
{
|
|
||||||
String msg = string.Empty;
|
|
||||||
String msg_err = "Errores en el proceso de importación de resultados";
|
|
||||||
bool mal = false;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
//gestiona los flags, el estado de finok o finnok va en res.Vale
|
|
||||||
if (res.HasError)
|
|
||||||
{
|
|
||||||
msg = res.Error.First();
|
|
||||||
//actualiza los flags
|
|
||||||
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.FinEjecNOk);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//actualiza los flags
|
|
||||||
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.FinEjecOk);
|
|
||||||
//importa resultados
|
|
||||||
var resp = IniImport();
|
|
||||||
if (resp.HasError)
|
|
||||||
{
|
|
||||||
msg = resp.Error.First();
|
|
||||||
mal = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
string GdbFileName = resp.Value;
|
|
||||||
var resp2 = new Respuesta<string> { Value = string.Empty };
|
|
||||||
if (OliviaGlob.HasFlagTipEjec(TiposEjecucion.EjecSecto)) //Ha terminado bien la sectorización
|
|
||||||
{
|
|
||||||
//actualiza los flags
|
|
||||||
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.EjecSecto);
|
|
||||||
//acciones de importación
|
|
||||||
resp2 = inst.ServCom.ImportSecto(GdbFileName);
|
|
||||||
}
|
|
||||||
else if (OliviaGlob.HasFlagTipEjec(TiposEjecucion.EjecPlanif)) //Ha terminado bien la planificación
|
|
||||||
{
|
|
||||||
//actualiza los flags
|
|
||||||
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.EjecPlanif);
|
|
||||||
//guarda csv
|
|
||||||
GuardaCsv(inst);
|
|
||||||
//acciones de importación
|
|
||||||
resp2 = inst.ServCom.ImportPlanif(GdbFileName);
|
|
||||||
|
|
||||||
}
|
|
||||||
if (string.IsNullOrEmpty(resp2.Value))
|
|
||||||
{
|
|
||||||
if (resp2.HasError)
|
|
||||||
{
|
|
||||||
msg = resp2.Error.First();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
msg = msg_err;
|
|
||||||
mal = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
msg = Resource1.String_exito;
|
|
||||||
//pone modo config2
|
|
||||||
OliviaGlob.AddFlagTipEjec(TiposEjecucion.Config2);
|
|
||||||
//actualiza la capa de la que tiene que leer ahora para planificar
|
|
||||||
inst.CapaElems = resp.Value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
msg = msg_err + ": " + msg + ": " + ex.Message;
|
|
||||||
mal = true;
|
|
||||||
}
|
|
||||||
if (mal)
|
|
||||||
{
|
|
||||||
//reinicia flags
|
|
||||||
if (OliviaGlob.IsLimp())
|
|
||||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Limp);
|
|
||||||
else if (OliviaGlob.IsReco())
|
|
||||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Reco);
|
|
||||||
|
|
||||||
}
|
|
||||||
HelperGlobal.ponMsg(msg);
|
|
||||||
OliviaGlob.progrDialog.Hide();
|
|
||||||
//muestra la ventana
|
|
||||||
OliviaGlob.ShowHidePane(true);
|
|
||||||
var task = ArcGIS.Desktop.Framework.Threading.Tasks.QueuedTask.Run(() =>
|
|
||||||
{
|
|
||||||
//borra los archivos que le toca borrar
|
|
||||||
BorraFiles();
|
|
||||||
});
|
|
||||||
//task.Wait();
|
|
||||||
//borra los archivos que le toca borrar
|
|
||||||
//BorraFiles();
|
|
||||||
}
|
|
||||||
public void finEjecuta2(Respuesta<TiposEjecucion> res, TratamientoComun inst)
|
public void finEjecuta2(Respuesta<TiposEjecucion> res, TratamientoComun inst)
|
||||||
{
|
{
|
||||||
String msg = string.Empty;
|
String msg = string.Empty;
|
||||||
|
|
@ -153,16 +56,16 @@ namespace OliviaAddInPro.Services
|
||||||
if (OliviaGlob.HasFlagTipEjec(TiposEjecucion.EjecSecto)) //Ha terminado bien la sectorización
|
if (OliviaGlob.HasFlagTipEjec(TiposEjecucion.EjecSecto)) //Ha terminado bien la sectorización
|
||||||
{
|
{
|
||||||
//actualiza los flags
|
//actualiza los flags
|
||||||
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.EjecSecto);
|
//OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.EjecSecto);
|
||||||
//acciones de importación
|
//acciones de importación
|
||||||
resp2 = inst.ServCom.ImportSecto(GdbFileName);
|
resp2 = inst.ServCom.ImportSecto(GdbFileName);
|
||||||
}
|
}
|
||||||
else if (OliviaGlob.HasFlagTipEjec(TiposEjecucion.EjecPlanif)) //Ha terminado bien la planificación
|
else if (OliviaGlob.HasFlagTipEjec(TiposEjecucion.EjecPlanif)) //Ha terminado bien la planificación
|
||||||
{
|
{
|
||||||
//actualiza los flags
|
//actualiza los flags
|
||||||
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.EjecPlanif);
|
//OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.EjecPlanif);
|
||||||
//guarda csv
|
//guarda csv
|
||||||
GuardaCsv(inst);
|
//GuardaCsv(inst); en finEjecuta3
|
||||||
//acciones de importación
|
//acciones de importación
|
||||||
resp2 = inst.ServCom.ImportPlanif(GdbFileName);
|
resp2 = inst.ServCom.ImportPlanif(GdbFileName);
|
||||||
|
|
||||||
|
|
@ -218,11 +121,15 @@ namespace OliviaAddInPro.Services
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
msg = Resource1.String_exito;
|
|
||||||
//pone modo config2
|
|
||||||
OliviaGlob.AddFlagTipEjec(TiposEjecucion.Config2);
|
|
||||||
//actualiza la capa de la que tiene que leer ahora para planificar
|
//actualiza la capa de la que tiene que leer ahora para planificar
|
||||||
inst.CapaPlanif = resp2.Value;
|
inst.CapaPlanif = resp2.Value;
|
||||||
|
if (OliviaGlob.HasFlagTipEjec(TiposEjecucion.EjecPlanif)) //Ha terminado bien la planificación
|
||||||
|
{
|
||||||
|
//guarda csv
|
||||||
|
GuardaCsv(inst);
|
||||||
|
}
|
||||||
|
msg = Resource1.String_exito;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
|
|
@ -231,7 +138,7 @@ namespace OliviaAddInPro.Services
|
||||||
mal = true;
|
mal = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mal)
|
/*if (mal)
|
||||||
{
|
{
|
||||||
//reinicia flags
|
//reinicia flags
|
||||||
if (OliviaGlob.IsLimp())
|
if (OliviaGlob.IsLimp())
|
||||||
|
|
@ -239,7 +146,13 @@ namespace OliviaAddInPro.Services
|
||||||
else if (OliviaGlob.IsReco())
|
else if (OliviaGlob.IsReco())
|
||||||
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Reco);
|
OliviaGlob.SetFlagTipEjec(TiposEjecucion.Reco);
|
||||||
|
|
||||||
}
|
}*/
|
||||||
|
//actualiza los flags
|
||||||
|
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.EjecPlanif);
|
||||||
|
OliviaGlob.RemoveFlagTipEjec(TiposEjecucion.EjecSecto);
|
||||||
|
//pone modo config2
|
||||||
|
OliviaGlob.AddFlagTipEjec(TiposEjecucion.Config2);
|
||||||
|
///////////////////////////////////////////////////
|
||||||
HelperGlobal.ponMsg(msg);
|
HelperGlobal.ponMsg(msg);
|
||||||
OliviaGlob.progrDialog.Hide();
|
OliviaGlob.progrDialog.Hide();
|
||||||
//muestra la ventana
|
//muestra la ventana
|
||||||
|
|
@ -304,16 +217,15 @@ namespace OliviaAddInPro.Services
|
||||||
nameDokL = Directory.GetFiles(DirData,
|
nameDokL = Directory.GetFiles(DirData,
|
||||||
System.IO.Path.GetFileNameWithoutExtension(OliviaGlob.Paths.PathData) + inst.ServCom.NAME_CSV + ".*");
|
System.IO.Path.GetFileNameWithoutExtension(OliviaGlob.Paths.PathData) + inst.ServCom.NAME_CSV + ".*");
|
||||||
|
|
||||||
string Title = "Guardar Secuencia de la Planificación";
|
string Title = "Directorio para guardar Secuencia de la Planificación";
|
||||||
string Filter = "Secuencia en formato CSV (*.csv)|*.csv";
|
string Filter = "Secuencia en formato CSV (*.csv)|*.csv";
|
||||||
inst.decode_gdb(System.IO.Path.GetFileNameWithoutExtension(OliviaGlob.Paths.PathData),
|
inst.decode_gdb(System.IO.Path.GetFileNameWithoutExtension(OliviaGlob.Paths.PathData),
|
||||||
out auxi, out nombre);
|
out auxi, out nombre);
|
||||||
string InitialDirectory = System.IO.Path.Combine(DirData, nombre);
|
|
||||||
|
|
||||||
|
//string Path = HelperGdb.SaveFileDlg(Title, DirData, inst.ServCom.EXT_CSV, Filter);
|
||||||
|
string Path = HelperGdb.SaveFileDlg(Title, DirData, null, ArcGIS.Desktop.Catalog.ItemFilters.folders);
|
||||||
|
|
||||||
string FileName = HelperGdb.SaveFileDlg(Title, InitialDirectory, inst.ServCom.EXT_CSV, Filter);
|
if (string.IsNullOrEmpty(Path) || Path.Length == 0)
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(FileName) || FileName.Length == 0)
|
|
||||||
{
|
{
|
||||||
bool ok = HelperGlobal.ponMsg("Se va a perder el archivo que contiene la secuencia en planificación, ¿está seguro?",
|
bool ok = HelperGlobal.ponMsg("Se va a perder el archivo que contiene la secuencia en planificación, ¿está seguro?",
|
||||||
MessageBoxImage.Question,"OLIVIA",MessageBoxButton.YesNo);
|
MessageBoxImage.Question,"OLIVIA",MessageBoxButton.YesNo);
|
||||||
|
|
@ -322,6 +234,8 @@ namespace OliviaAddInPro.Services
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
var FileName = System.IO.Path.Combine(Path, nombre);
|
||||||
|
FileName += inst.ServCom.EXT_CSV;
|
||||||
if (File.Exists(FileName))
|
if (File.Exists(FileName))
|
||||||
File.Delete(FileName);
|
File.Delete(FileName);
|
||||||
File.Move(nameDokL[0], FileName);
|
File.Move(nameDokL[0], FileName);
|
||||||
|
|
@ -343,7 +257,7 @@ namespace OliviaAddInPro.Services
|
||||||
//repite por si se ha equivocado hasta que elige la gdb
|
//repite por si se ha equivocado hasta que elige la gdb
|
||||||
GdbFileName = HelperGdb.OpenFileDialog(HelperGdb.TiposOpenFileDlg.OpenGdb,"", "Seleccionar GDB a la que importar los resultados");
|
GdbFileName = HelperGdb.OpenFileDialog(HelperGdb.TiposOpenFileDlg.OpenGdb,"", "Seleccionar GDB a la que importar los resultados");
|
||||||
if(string.IsNullOrEmpty(GdbFileName))
|
if(string.IsNullOrEmpty(GdbFileName))
|
||||||
sal= HelperGlobal.ponMsg("¿Desea cancelar el proceso de imporación?",
|
sal= HelperGlobal.ponMsg("¿Desea cancelar el proceso de importación?",
|
||||||
MessageBoxImage.Question, "OLIVIA", MessageBoxButton.YesNo);
|
MessageBoxImage.Question, "OLIVIA", MessageBoxButton.YesNo);
|
||||||
} while (!sal);
|
} while (!sal);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -109,7 +109,7 @@ namespace OliviaAddInPro.Services
|
||||||
{
|
{
|
||||||
//NO SE USA AQUÍ, ESTÁ EN EJECSERV
|
//NO SE USA AQUÍ, ESTÁ EN EJECSERV
|
||||||
//si ha importado no hace falta que compruebe, seguro que las tiene
|
//si ha importado no hace falta que compruebe, seguro que las tiene
|
||||||
if (OliviaGlob.IsConfig2() && ComprCamposPlanif(limp.CapaPlanif))
|
if (OliviaGlob.IsConfig2() && ComprCamposPlanif(limp.CapaElems))
|
||||||
return true;
|
return true;
|
||||||
//no ha importado, comprueba capa
|
//no ha importado, comprueba capa
|
||||||
if (ComprCamposPlanif(limp.CapaElems))
|
if (ComprCamposPlanif(limp.CapaElems))
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@ namespace OliviaAddInPro.Services
|
||||||
public RecogidaServ(Recogida _reco)
|
public RecogidaServ(Recogida _reco)
|
||||||
{
|
{
|
||||||
reco = _reco;
|
reco = _reco;
|
||||||
RellenaFiltrosReco();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -95,7 +94,7 @@ namespace OliviaAddInPro.Services
|
||||||
|
|
||||||
//cierra las capas que se han abierto durante la exportación
|
//cierra las capas que se han abierto durante la exportación
|
||||||
CierraCapas();
|
CierraCapas();
|
||||||
|
res.Value = true;
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -147,25 +146,5 @@ namespace OliviaAddInPro.Services
|
||||||
return consulta;
|
return consulta;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Rellena el array de filtros en base a la config
|
|
||||||
*/
|
|
||||||
public void RellenaFiltrosReco()
|
|
||||||
{
|
|
||||||
//se rellena el array de filtros
|
|
||||||
RecogidaDef.filtro_str = new string[RecogidaDef.tipos_fracc_str.Length + RecogidaDef.tipos_carg_str.Length];
|
|
||||||
for (int i = 0; i < RecogidaDef.tipos_fracc_str.Length; i++)
|
|
||||||
{
|
|
||||||
//se comprueba que tipo de fracción se ha seleccionado. Si se ha seleccionado una fracción sin nombre (el campo en la capa es NULL, y en el comboBox de fracciiones aparece como "-") hay que modificar el filtro
|
|
||||||
if (RecogidaDef.tipos_fracc_str[i] == "-")
|
|
||||||
RecogidaDef.filtro_str[i] = RecogidaDef.campos_def.cons_fracc + " IS NULL";
|
|
||||||
else
|
|
||||||
RecogidaDef.filtro_str[i] = RecogidaDef.campos_def.cons_fracc + "= '" + RecogidaDef.tipos_fracc_str[i] + "'";
|
|
||||||
}
|
|
||||||
for (int i = RecogidaDef.tipos_fracc_str.Length; i < RecogidaDef.filtro_str.Length; i++)
|
|
||||||
{
|
|
||||||
RecogidaDef.filtro_str[i] = RecogidaDef.campos_def.cons_nomrec + "= '" + RecogidaDef.tipos_carg_str[i - RecogidaDef.tipos_fracc_str.Length] + "'";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ namespace OliviaAddInPro
|
||||||
}
|
}
|
||||||
else if (DataContext is PaneRecogidaViewModel modrec)
|
else if (DataContext is PaneRecogidaViewModel modrec)
|
||||||
{
|
{
|
||||||
modrec.Ejecuta(OliviaAddInPro.Services.ModosEjec.Planifica);
|
modrec.Ejecuta(OliviaAddInPro.Services.ModosEjec.SoloPlanifica);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,9 @@ namespace OliviaAddInPro
|
||||||
err_str = "";
|
err_str = "";
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
//Rellena el array de filtros
|
||||||
|
reco.RellenaFiltrosReco();
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
///Lee el panel 1
|
///Lee el panel 1
|
||||||
if (!_subPanel1ViewModel.CapaAbierta || string.IsNullOrEmpty(_subPanel1ViewModel.CapaElems))
|
if (!_subPanel1ViewModel.CapaAbierta || string.IsNullOrEmpty(_subPanel1ViewModel.CapaElems))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue