Вы находитесь на странице: 1из 1

private void btnCargar_Click(object sender, EventArgs e)

{
XmlDocument xDoc;

if (ofdAbrir.ShowDialog() == DialogResult.OK)
{
ruta = ofdAbrir.FileName;
LimpiarDatos();

//Se lee el XML con un XMLDocument


xDoc = new XmlDocument();
xDoc.Load(ruta);

//Añadimos la tabla al horario directamente, con las columnas fijas


dataSet.Tables.Add(new DataTable("horario"));
dataSet.Tables[0].Columns.Add("Hora", typeof(string));
dataSet.Tables[0].Columns.Add("Lunes", typeof(string));
dataSet.Tables[0].Columns.Add("Martes", typeof(string));
dataSet.Tables[0].Columns.Add("Miercoles", typeof(string));
dataSet.Tables[0].Columns.Add("Jueves", typeof(string));
dataSet.Tables[0].Columns.Add("Viernes", typeof(string));

//Recorremos el XMLDocument y vamos rellenando el DataSet junto con los tooltiptext


XmlNodeList horario = xDoc.GetElementsByTagName("horario");
XmlNodeList horas = ((XmlElement)horario[0]).GetElementsByTagName("hora");
int cont_hora = 0;

foreach (XmlElement hora in horas)


{
//Construimos dos arrays de strings, uno para los textos a mostrar y otros con las ayudas
string[] fila_pant = new string[6];
string[] fila_ayu = new string[6];

//La primera columna de cada fila será la hora: primera, segunda, etc.
fila_pant[0] = hora.GetAttribute("id").ToString();
fila_ayu[0] = "";
int col = 1;

XmlNodeList dias = hora.GetElementsByTagName("dia");


foreach (XmlElement dia in dias)
{
XmlNodeList entrada_pant = dia.GetElementsByTagName("pantalla");
fila_pant[col] = ((XmlElement)entrada_pant[0]).InnerText.ToString();

XmlNodeList entrada_ayu = dia.GetElementsByTagName("ayuda");


fila_ayu[col] = ((XmlElement)entrada_ayu[0]).InnerText.ToString();

col++;
}

dataSet.Tables[0].Rows.Add(fila_pant);

//Antes de pasar a la siguiente fila, se enlaza el dataGridView y el DataSet


//Y así podemos establecer los textos de ayuda
dgvHorario.DataSource = dataSet.Tables[0];
for (int c=1; c< fila_ayu.Length; c++)
{
dgvHorario.Rows[cont_hora].Cells[c].ToolTipText = fila_ayu[c];
}

cont_hora++;
}

cargado = true;
} else
{
cargado = false;
}

//Fin del método

Вам также может понравиться