/// <summary> /// Построение дерева и создание ТБД "ПП" /// </summary> public static void BuiltTreeAndCreateFATable() { // загрузим данные из ТБД "Состав изделий" DatabaseLib.Select str = new DatabaseLib.Select(); str.From("CompositionProducts"); DataTable dt = DBWorker.dbf.Execute(str); // построим дерево классом для деревьев CompositionRow[] data = Converter.ConvertDataTableToCompositionRow(dt); Tree tr = new Tree(data); // подсчитаем полную применяемость изделий if (!tr.IsCalculated) // если еще не рассчитана полная применяемость { // подсчитаем кол-во деталей в изделиях FullApplicationRow[] calc = tr.CalculateFullApplication(); // заполним таблицу БД ПП DBWorker.CreateAndFillFullApplicationTable(calc); } }
/// <summary> /// Выборка всех данных из таблицы по ей тегу /// </summary> /// <param name="TableTag">Тэг для определения таблицы из БД</param> /// <returns>Возвращает таблицу с данными System.Data.DataTable с содержимым таблицы из БД</returns> public static DataTable SelectDataFromTable(string TableTag) { DatabaseLib.Select str = new DatabaseLib.Select(); // создание строки запроса switch (TableTag) { case "СВП": str.From("ReferenceProducts"); break; case "СТП": str.From("ProductTypes"); break; case "СПП": str.From("ReferenceSigns"); break; case "СЕИ": str.From("ReferenceUnits"); break; case "СНП": str.From("ProductNames"); break; case "СТМ": str.From("ReferenceMaterials"); break; case "СНиОД": str.From("ReferenceStandarts"); break; case "СИ": // выборка из таблицы "Состав изделий" str.From("CompositionProducts"); break; case "ПП": // выборка из таблицы "Полная применяемость" str.From("FullApplication"); break; case "ПВИ": // выборка из таблицы "План выпуска изделий" str.From("PlanProducts"); break; case "СНТИ": // выборка из таблицы "Сводная нормативная трудоемкость на изделие" str.From("Complexity"); break; case "СНТИЦ": // выборка из таблицы "Сводная нормативная трудоемкость на изделие по цехам" str.From("ComplexityShop"); break; case "НТПП": // выборка из таблицы "Нормативная трудоемкость производственной программы" str.From("ComplexityProgram"); break; case "НТППЦ": // выборка из таблицы "Нормативная трудоемкость производственной программы по цехам" str.From("ComplexityShopProgram"); break; } DataTable dt; if (flag != false && dbf != null) { dt = dbf.Execute(str); } else dt = null; return dt; }
/// <summary> /// Функция для определения количества и дат для ведомостей по потребности в материалах по месяцам /// </summary> /// <param name="count">Найденное количество дат (=>ведомостей)</param> /// <returns>Возвращает массив найденных дат</returns> public static MNDates[] GetMNDatesCount(ref int count) { // выберем данные из таблицы "ПВИ" DatabaseLib.Select sel = new DatabaseLib.Select(); sel.From("PlanProducts"); DataTable dt = DBWorker.dbf.Execute(sel); MNDates[] data = new MNDates[0]; // подсчитаем количество уникальных месяцев для производства изделий for (int i = 0; i < dt.Rows.Count; i++) { if (!IsItMNDate(data, dt.Rows[i])) // если нет такой даты, AddMNDate(ref data, dt.Rows[i]); // то добавим ее в массив } count = data.Length; return data; }
// загрузка данных в поля подстановки private void InitializeData() { // загрузка данных из таблицы СЕИ radMultiColumnComboBox3.DataSource = DBWorker.SelectDataFromTable("СЕИ"); radMultiColumnComboBox3.EditorControl.Columns[0].IsVisible = false; radMultiColumnComboBox3.EditorControl.Columns[1].HeaderText = "Полное название"; radMultiColumnComboBox3.EditorControl.Columns[1].Width = 100; radMultiColumnComboBox3.EditorControl.Columns[2].HeaderText = "Краткое название"; radMultiColumnComboBox3.EditorControl.Columns[2].Width = 100; // данные из таблицы СНП (частично) DatabaseLib.Select str = new DatabaseLib.Select(); str.From("ProductNames", "ProductKey,Name,Designation"); radMultiColumnComboBox1.DataSource = DBWorker.dbf.Execute(str); radMultiColumnComboBox1.EditorControl.Columns[0].HeaderText = "Код продукции"; radMultiColumnComboBox1.EditorControl.Columns[0].Width = 80; radMultiColumnComboBox1.EditorControl.Columns[1].HeaderText = "Наименование"; radMultiColumnComboBox1.EditorControl.Columns[1].Width = 140; radMultiColumnComboBox1.EditorControl.Columns[2].HeaderText = "Обозначение"; radMultiColumnComboBox1.EditorControl.Columns[2].Width = 150; // данные из таблицы СТМ radMultiColumnComboBox2.DataSource = DBWorker.SelectDataFromTable("СТМ"); radMultiColumnComboBox2.EditorControl.Columns[0].HeaderText = "Код материала"; radMultiColumnComboBox2.EditorControl.Columns[0].Width = 100; radMultiColumnComboBox2.EditorControl.Columns[1].HeaderText = "Наименование"; radMultiColumnComboBox2.EditorControl.Columns[1].Width = 250; radMultiColumnComboBox2.EditorControl.Columns[2].IsVisible = false; // не выбран пункт в полях подстановки radMultiColumnComboBox1.SelectedIndex = -1; radMultiColumnComboBox2.SelectedIndex = -1; radMultiColumnComboBox3.SelectedIndex = -1; }