public void TestMethodMenuToList() { ComReader.Start(); DG = new DGobject { XelementMenu = ComReader.GetMenuToBuffer() }; //var xml = new MenuXml(); //var menu = xml.MenuXmlToList(DG.Menu); var xml = new MenuXmlParser(); var menu = new Folder(){Id = "Главный фолдер"}; foreach (var xElement in xml.GetButtonName(DG.XelementMenu)) { menu.AddComponent(xml.BuildMenu(xElement)); } var cc = menu.FindId("bb118da8-053c-11e0-8cad-20cf308e5b25"); var ccc = (IModifiers)menu.FindId("e450b94c-0540-11e0-8cad-20cf308e5b25"); var mod = ccc.GetModifiers(); ComReader.Stop(); }
public void BuildRecordSets(IHermesDevice device) { //Загружаем один раз официантов и меню ComReader.BufferMembers = ComReader.GetMembers(); ComReader.BufferMenu = ComReader.GetMenuToBuffer(); //Новая загрузка меню var xmlParser = new MenuXmlParser(); Menu.Clear(); foreach (var xElement in xmlParser.GetButtonName(ComReader.BufferMenu)) { Menu.AddComponent(xmlParser.BuildMenu(xElement)); } //Разбираем меню в массив var xml = new MenuXml(); ComReader.ListMenu = xml.MenuXmlToList(ComReader.BufferMenu); // Append a dictionary to the device which hold's all application specific data if (device.Tag == null) device.Tag = new Dictionary<string, object>(2); var nextId = 0; //Создаем Dictionary для сохранения RecordSet IDictionary<string, RecordSet> recSets = new Dictionary<string, RecordSet>(); #region Строим RecordSet Официанты var list = ComReader.BufferMembers; //BufferMembers.xml список официантов // Recordset всегда!!! основывается на recorddefinition построеном с помощью Orderman Screen Designed. // (Recorddefinition определяют вид и формат записей) // В Sol есть Record-Definition USERS - это официанты var def = device.Resources.RecordDefinitions["USERS"]; //Каждой записи Recordset необходим уникальный ID. Мы просто используем счетчик nextId var usersSet = new RecordSet(nextId++, def, RSET_USERS); //usersSet - официанты; public const string RSET_USERS = "Users"; var name = from p in list.Elements("Элемент") select p; foreach (var p in name) { //Каждый официант - свой Record var rec = new Record(def) {Tag = p}; //Заполняем данные для отображения rec.Cells[0].Value = device.Resources.Images[0x0009]; rec.Cells[1].Value = p.Attribute("Наименование").Value; rec.Tag = p.Attribute("IdUser").Value; usersSet.Add(rec); } //Добавляем в Dictionary RecordSt официанты recSets.Add(usersSet.Name, usersSet); //usersSet.Name - "Users" #endregion #region Строим RecordSet menu and StringTables recSets = BuildOrderRecordSet(recSets, device, ref nextId); recSets = BuildMenuRecordSet(recSets, device, ref nextId); recSets = BuildTablesRecordSet(recSets, device, ref nextId); recSets = BuildBillRecordSet(recSets, device, ref nextId); recSets = BuildPrinterTablesRecordSet(recSets, device, ref nextId); recSets = BuildModifiersTablesRecordSet(recSets, device, ref nextId); #endregion GetDeviceData(device)[RSET_NAME] = recSets; //Строим StringTables var menuModifiersStringTables = new Dictionary<string, RecordSet>(); menuModifiersStringTables = BuildMenuModifiersStringTables(menuModifiersStringTables, ref nextId); GetDeviceData(device)["STRINGTABLE"] = menuModifiersStringTables; }