public static void GuardarXml(Form pForm, int pPagina, int pTamanoPagina, Enums.EstadoRegistros pRegistrosGrilla, string pBuscar, DataGridView pDataGrid = null) { var archivo = @"FormSettings\" + pForm.Text + ".xml"; if (!Directory.Exists("FormSettings")) { Directory.CreateDirectory("FormSettings"); } if (File.Exists(archivo)) { File.Delete(archivo); } var doc = new XDocument(new XElement("HDF.NET")); doc.Save(archivo); var xmlDoc = XDocument.Load(archivo); var firstElement = xmlDoc.Element("HDF.NET"); var nuevoElemento = new XElement("Form", new XAttribute("Name", pForm.Text), new XElement("WindowState", pForm.WindowState), new XElement("Left", pForm.Left), new XElement("Top", pForm.Top), new XElement("Width", pForm.Width), new XElement("Height", pForm.Height) ); firstElement?.Add(nuevoElemento); if (pDataGrid != null) { var columnas = new XElement("Grilla", new XAttribute("Name", pForm.Text), new XAttribute("Pagina", pPagina + 1), new XAttribute("TamanoPagina", pTamanoPagina), new XAttribute("RegistrosGrilla", pRegistrosGrilla), new XAttribute("Buscar", pBuscar)); foreach (DataGridViewColumn columna in pDataGrid.Columns) { if (columna.Visible) { var orden = columna.HeaderCell.SortGlyphDirection.ToString(); var columnaXml = new XElement("Columna", new XAttribute("Name", columna.HeaderText), new XAttribute("Width", Convert.ToInt32(columna.Width)), new XAttribute("Sort", orden)); columnas.Add(columnaXml); } } firstElement?.Add(columnas); } xmlDoc.Save(archivo); }
public static void LeerXml(Form pForm, ref int pPagina, ref int pTamanoPagina, ref Enums.EstadoRegistros pRegistrosGrilla, ref string pBuscar, DataGridView pDataGrid = null) { var archivo = @"FormSettings\" + pForm.Text + ".xml"; if (File.Exists(archivo)) { var xmlDoc = new XmlDocument(); xmlDoc.Load(archivo); var raiz = xmlDoc.GetElementsByTagName("HDF.NET"); var form = ((XmlElement)raiz[0]).GetElementsByTagName("Form"); var left = ((XmlElement)form[0]).GetElementsByTagName("Left"); pForm.Left = Int32.Parse(left[0].InnerText); var top = ((XmlElement)form[0]).GetElementsByTagName("Top"); pForm.Top = Int32.Parse(top[0].InnerText); var width = ((XmlElement)form[0]).GetElementsByTagName("Width"); pForm.Width = Int32.Parse(width[0].InnerText); var height = ((XmlElement)form[0]).GetElementsByTagName("Height"); pForm.Height = Int32.Parse(height[0].InnerText); var windowState = ((XmlElement)form[0]).GetElementsByTagName("WindowState"); switch (windowState[0].Value) { case "Maximized": pForm.WindowState = FormWindowState.Maximized; break; case "Minimized": pForm.WindowState = FormWindowState.Minimized; break; default: pForm.WindowState = FormWindowState.Normal; break; } if (pDataGrid != null) { var grilla = xmlDoc.GetElementsByTagName("Grilla"); pPagina = Convert.ToInt32(((XmlElement)grilla[0]).GetAttribute("Pagina")); pTamanoPagina = Convert.ToInt32(((XmlElement)grilla[0]).GetAttribute("TamanoPagina")); if (pTamanoPagina == 0) { pTamanoPagina = 25; } if (pPagina == 0) { pPagina = 1; } pRegistrosGrilla = ((XmlElement)grilla[0]).GetAttribute("RegistrosGrilla") == Enums.EstadoRegistros.Habilitados.ToString() ? Enums.EstadoRegistros.Habilitados : Enums.EstadoRegistros.Inhabilitados; pBuscar = ((XmlElement)grilla[0]).GetAttribute("Buscar"); XmlNodeList columnas = xmlDoc.GetElementsByTagName("Grilla"); XmlNodeList columnaLista = ((XmlElement)columnas[0]).GetElementsByTagName("Columna"); foreach (XmlElement columnaXml in columnaLista) { foreach (DataGridViewColumn columnaDataGrid in pDataGrid.Columns) { if (columnaDataGrid.Visible) { var attributeNode = columnaXml.GetAttributeNode("Name"); if (attributeNode != null && columnaDataGrid.HeaderText == attributeNode.Value) { var xmlAttribute = columnaXml.GetAttributeNode("Width"); if (xmlAttribute != null) { columnaDataGrid.Width = Convert.ToInt32(xmlAttribute.Value); } var attribute = columnaXml.GetAttributeNode("Sort"); if (attribute != null) { switch (attribute.Value) { case "Ascending": columnaDataGrid.HeaderCell.SortGlyphDirection = SortOrder.Ascending; break; case "Descending": columnaDataGrid.HeaderCell.SortGlyphDirection = SortOrder.Descending; break; default: columnaDataGrid.HeaderCell.SortGlyphDirection = SortOrder.Ascending; break; } } break; } } } } } } else { pPagina = 1; pTamanoPagina = 20; pRegistrosGrilla = Enums.EstadoRegistros.Habilitados; pBuscar = ""; } }