public BillData(IBackgroundContext context, string lFileName, string hFileName) { LFileName = Path.GetFileName(lFileName); HFileName = Path.GetFileName(hFileName); if (File.Exists(lFileName) && File.Exists(hFileName)) { Reestr = new ZL_LIST(); context.ReportProgress(@"Загрузка файла {0} ...", Path.GetFileName(hFileName)); Reestr.ReadXml(hFileName); Persons = new PERS_LIST(); context.ReportProgress(@"Загрузка файла {0} ...", Path.GetFileName(lFileName)); Persons.ReadXml(lFileName); } else throw new ApplicationException(string.Format(@"Файл счета не найден {0}/{1}", lFileName, hFileName)); }
private void LoadXMLAction_Execute(object sender, SimpleActionExecuteEventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); if (dialog.ShowDialog() == DialogResult.OK) { using (Stream stream = dialog.OpenFile()) { UnitOfWork uow = new UnitOfWork(((DevExpress.ExpressApp.Xpo.XPObjectSpace)ObjectSpace).Session.DataLayer); XDocument doc = XDocument.Load(stream); if (doc.Root.Name != "PERS_LIST") { throw new ArgumentException("PERS_LIST"); } var pers_list = new PERS_LIST(uow); //PERS_LIST pers_list = ObjectSpace.CreateObject<PERS_LIST>(); //заголовок XElement xzglv = doc.Root.Element("ZGLV"); if (xzglv != null) { var zglv = new ZGLV(uow); //var zglv = ObjectSpace.CreateObject<ZGLV>(); zglv.VERSION = GetString(xzglv.Element("VERSION"), true); zglv.DATA = GetString(xzglv.Element("DATA"), true); zglv.FILENAME = GetString(xzglv.Element("FILENAME"), true); zglv.FILENAME1 = GetString(xzglv.Element("FILENAME1"), false); pers_list.ZGLV = zglv; } else { throw new ArgumentException("ZGLV"); } int counter = 0; //Список персов foreach (var xpers in doc.Root.Elements("PERS")) { var pers = new PERS(uow); //var pers = ObjectSpace.CreateObject<PERS>(); pers.ID_PAC = GetString(xpers.Element("ID_PAC"), true); pers.FAM = GetString(xpers.Element("FAM"), false); pers.IM = GetString(xpers.Element("IM"), false); pers.OT = GetString(xpers.Element("OT"), false); pers.W = GetNumber(xpers.Element("W"), true); pers.DR = GetString(xpers.Element("DR"), false); //foreach (var xdost in xpers.Elements("DOST")) //{ // Dost dost = (Dost)GetNumber(xdost, true); // pers.DOST.Add(dost); //} pers.FAM_P = GetString(xpers.Element("FAM_P"), false); pers.IM_P = GetString(xpers.Element("IM_P"), false); pers.OT_P = GetString(xpers.Element("OT_P"), false); pers.W_P = GetNumber(xpers.Element("W_P"), false); pers.DR_P = GetString(xpers.Element("DR_P"), false); //foreach (var xdost in xpers.Elements("DOST_P")) //{ // Dost dost = (Dost)GetNumber(xdost, true); // pers.DOST_P.Add(dost); //} pers.MR = GetString(xpers.Element("MR"), false); pers.DOCTYPE = GetString(xpers.Element("DOCTYPE"), false); pers.DOCSER = GetString(xpers.Element("DOCSER"), false); pers.DOCNUM = GetString(xpers.Element("DOCNUM"), false); pers.SNILS = GetString(xpers.Element("SNILS"), false); pers.OKATOG = GetString(xpers.Element("OKATOG"), false); pers.OKATOP = GetString(xpers.Element("OKATOP"), false); pers.COMENTP = GetString(xpers.Element("COMENTP"), false); //pers.PERS_LIST = pers_list; pers_list.People.Add(pers); counter++; if (counter % 1000 == 0) { uow.CommitChanges(); uow.Dispose(); uow = new UnitOfWork(((DevExpress.ExpressApp.Xpo.XPObjectSpace)ObjectSpace).Session.DataLayer); pers_list = uow.GetObjectByKey <PERS_LIST>(pers_list.Oid); } } uow.CommitChanges(); MessageBox.Show("Загрузка завершена. Всего записей : " + counter); } } }
private void SaveLAction_Execute(object sender, SimpleActionExecuteEventArgs e) { SaveFileDialog dialog = new SaveFileDialog(); if (dialog.ShowDialog() == DialogResult.OK) { int counter = 0; if (View.CurrentObject is PERS_LIST) { PERS_LIST list = (PERS_LIST)View.CurrentObject; XElement pers_list = new XElement("PERS_LIST"); XElement xzglv = new XElement("ZGLV"); xzglv.Add(new XElement("VERSION") { Value = list.ZGLV.VERSION }); xzglv.Add(new XElement("DATA") { Value = list.ZGLV.DATA }); xzglv.Add(new XElement("FILENAME") { Value = list.ZGLV.FILENAME }); xzglv.Add(new XElement("FILENAME1") { Value = list.ZGLV.FILENAME1 }); pers_list.AddFirst(xzglv); foreach (PERS pers in list.People) { XElement xpers = new XElement("PERS"); xpers = AddXElement(xpers, "ID_PAC", pers.ID_PAC, true); xpers = AddXElement(xpers, "FAM", pers.FAM, false); xpers = AddXElement(xpers, "IM", pers.IM, false); xpers = AddXElement(xpers, "OT", pers.OT, false); xpers = AddXElement(xpers, "W", Convert.ToString(pers.W), false); xpers = AddXElement(xpers, "DR", pers.DR, false); xpers = AddXElement(xpers, "FAM_P", pers.FAM_P, false); xpers = AddXElement(xpers, "IM_P", pers.IM_P, false); xpers = AddXElement(xpers, "OT_P", pers.OT_P, false); xpers = AddXElement(xpers, "W_P", Convert.ToString(pers.W_P), false); xpers = AddXElement(xpers, "DR_P", pers.DR_P, false); xpers = AddXElement(xpers, "MR", pers.MR, true); xpers = AddXElement(xpers, "DOCTYPE", pers.DOCTYPE, false); xpers = AddXElement(xpers, "DOCSER", pers.DOCSER, false); xpers = AddXElement(xpers, "DOCNUM", pers.DOCNUM, false); xpers = AddXElement(xpers, "SNILS", pers.SNILS, false); xpers = AddXElement(xpers, "OKATOG", pers.OKATOG, false); xpers = AddXElement(xpers, "OKATOP", pers.OKATOP, false); xpers = AddXElement(xpers, "COMENTP", pers.COMENTP, false); pers_list.Add(xpers); counter++; } using (Stream stream = dialog.OpenFile()) { XDeclaration decl = new XDeclaration("1.0", "windows-1251", ""); XDocument doc = new XDocument(decl, pers_list); //doc.Declaration = decl; doc.Save(stream); } } MessageBox.Show("Выгрузка завершена. Всего записей : " + counter); } }