5 using System.Collections.Generic;
9 namespace sage.ew.graficas.clases
26 public void Leer_xml_graficas(
string tcFileXML, out DataTable toTablaDatos, out
string tcCampoX, out
string tcTitulo, out
string tcTituloX, out
string tcTituloY, out Dictionary<string, string> toDic)
36 if (File.Exists(tcFileXML) ==
true)
39 XmlDocument xGDocXML =
new XmlDocument();
42 xGDocXML.Load(tcFileXML);
45 XmlNodeList oNodoTagXML = xGDocXML.GetElementsByTagName(
"XML");
48 XmlElement loNodoChild = (XmlElement)oNodoTagXML[0];
50 if (loNodoChild[
"Titulo_Grafica"] != null)
52 tcTitulo = loNodoChild[
"Titulo_Grafica"].InnerText.ToString();
56 if (loNodoChild[
"TituloX"] != null)
58 tcTituloX = loNodoChild[
"TituloX"].InnerText;
62 if (loNodoChild[
"TituloY"] != null)
64 tcTituloY = loNodoChild[
"TituloY"].InnerText;
68 XmlNodeList oNodoTagDatos = ((XmlElement)oNodoTagXML[0]).GetElementsByTagName(
"Tabla");
71 crear_TablaDatos_from_XML(oNodoTagDatos, out toTablaDatos, out tcCampoX, out toDic);
84 public void crear_TablaDatos_from_XML(XmlNodeList loNodoTabla, out DataTable loTabla, out
string tcCampoX, out Dictionary<string, string> loDic)
89 string lcNombreCampo =
"";
90 string lcTipoCampo=
"" ;
91 string lcTituloCampo =
"";
93 loDic =
new Dictionary<string, string>();
96 loTabla =
new DataTable();
102 XmlNodeList loNodoCampos = ((XmlElement)loNodoTabla[0]).GetElementsByTagName(
"ListaCampos");
105 XmlNodeList loCampos = ((XmlElement)loNodoCampos[0]).GetElementsByTagName(
"Campos");
108 foreach (XmlElement loNodoChild
in loCampos)
114 lcNombreCampo = loNodoChild[
"Nombre"].InnerText;
115 lcTipoCampo = loNodoChild[
"TipoCampo"].InnerText;
117 if (loNodoChild[
"Titulo"] != null && (
string.IsNullOrEmpty(loNodoChild[
"Titulo"].InnerText) ==
false))
119 lcTituloCampo = loNodoChild[
"Titulo"].InnerText;
123 loDic.Add(lcNombreCampo, lcTituloCampo);
125 if ((
string.IsNullOrEmpty(lcNombreCampo) ==
false) && (
string.IsNullOrEmpty(lcTipoCampo) ==
false))
133 loTabla.Columns.Add(lcNombreCampo, typeof(Int32));
139 loTabla.Columns.Add(lcNombreCampo, typeof(Decimal));
144 loTabla.Columns.Add(lcNombreCampo, typeof(
double));
149 loTabla.Columns.Add(lcNombreCampo, typeof(
bool));
155 loTabla.Columns.Add(lcNombreCampo, typeof(DateTime));
160 loTabla.Columns.Add(lcNombreCampo, typeof(
string));
164 tcCampoX = lcNombreCampo;
169 loTabla.Columns.Add(lcNombreCampo);
173 tcCampoX = lcNombreCampo;
186 XmlNodeList loNodoDatos = ((XmlElement)loNodoTabla[0]).GetElementsByTagName(
"Datos");
188 XmlNodeList loNodoRegistro = ((XmlElement)loNodoDatos[0]).GetElementsByTagName(
"Registro");
190 foreach (XmlElement loNodoChild
in loNodoRegistro)
192 loNewRow = loTabla.NewRow();
195 for (
int lnI = 0; lnI < lnCampos; lnI++)
201 lcNombreCampo = loNodoChild.ChildNodes.Item(lnI).Name;
204 Type loTipoColumna = loTabla.Columns[lcNombreCampo].DataType;
205 lcTipoCampo = loTipoColumna.Name.ToString();
211 loNewRow[lcNombreCampo] = Convert.ToInt32(Text2Val(loNodoChild[lcNombreCampo].InnerText));
215 loNewRow[lcNombreCampo] = Convert.ToDecimal(Text2Val(loNodoChild[lcNombreCampo].InnerText));
219 loNewRow[lcNombreCampo] = Convert.ToDouble(Text2Val(loNodoChild[lcNombreCampo].InnerText));
223 loNewRow[lcNombreCampo] = Convert.ToBoolean(loNodoChild[lcNombreCampo].InnerText);
227 loNewRow[lcNombreCampo] = Convert.ToDateTime(loNodoChild[lcNombreCampo].InnerText);
231 loNewRow[lcNombreCampo] = loNodoChild[lcNombreCampo].InnerText;
234 if ((
string.IsNullOrEmpty(tcCampoX) ==
true) && (lnI == 0))
236 tcCampoX = loNodoChild[lcNombreCampo].InnerText;
241 loNewRow[lcNombreCampo] = loNodoChild[lcNombreCampo].InnerText;
244 if ((
string.IsNullOrEmpty(tcCampoX) ==
true) && (lnI == 0))
246 tcCampoX = loNodoChild[lcNombreCampo].InnerText;
254 loTabla.Rows.Add(loNewRow);
266 String Text2Val(String tcCadena)
268 return tcCadena.Replace(
",",
"_").Replace(
".",
",").Replace(
"_",
".");
281 string lcValorTag =
"";
284 if (File.Exists(tcFileXML) ==
true)
287 XmlDocument xGDocXML =
new XmlDocument();
290 XmlNodeList oNodoTagXML = xGDocXML.GetElementsByTagName(tcNodo);
292 foreach (XmlElement loNodoChild
in oNodoTagXML)
294 lcValorTag = loNodoChild[tcNameTag].InnerText;
295 toLista.Add(lcValorTag);
void Leer_xml_graficas(string tcFileXML, out DataTable toTablaDatos, out string tcCampoX, out string tcTitulo, out string tcTituloX, out string tcTituloY, out Dictionary< string, string > toDic)
Leer xml de gráficas
void crear_TablaDatos_from_XML(XmlNodeList loNodoTabla, out DataTable loTabla, out string tcCampoX, out Dictionary< string, string > loDic)
Crear tabla de datos a partir del XML
void crear_Lista_from_XML(List< string > toLista, string tcFileXML, string tcNodo, string tcNameTag)
Crear lista a partir del XML