protected void ArticleTypesList_SelectedIndexChanged(object sender, EventArgs e) { //Загружаем группы изделий выбранной категории MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectArticleGroupsResult> a = dataContext.ogk_SelectArticleGroups(0, Convert.ToInt32(ArticleTypesList.SelectedValue)); List <ogk_SelectArticleGroupsResult> b = a.ToList(); //Загрузка дерева изделий TreeView1.Nodes.Clear(); for (int i = 0; i < b.Count; i++) { //Изображение группы изделий TreeNode tn = new TreeNode(b.ElementAt(i).NAME.ToString(), b.ElementAt(i).ID.ToString(), "../Icons/folder.png"); //Добавляем всплывающую подсказку для длинных названий групп tn.ToolTip = b.ElementAt(i).NAME.ToString(); TreeView1.Nodes.Add(tn); LoadTreeNodeChildren(tn); } //Выбираем первый узел дерева и обрабатываем событие выбора TreeView1.Nodes[0].Select(); //Удаляем остальные обработчики OnLoading = null; OnLoading += TreeView1_SelectedNodeChanged; OnLoading(sender, e); OnLoading = null; //Сворачиваем все узлы TreeView1.CollapseAll(); //Показываем кнопку добавления изделия необходимого типа if (ArticleTypesList.SelectedIndex == 1) { //Скрываем кнопку добавления внутреннего изделия AddInnerProductButton.Visible = false; //Показываем кнопку добавления покупного изделия AddOuterProductButton.Visible = true; } else { //Показываем кнопку добавления внутреннего изделия AddInnerProductButton.Visible = true; //Скрываем кнопку добавления покупного изделия AddOuterProductButton.Visible = false; } //Загружаем значение выбранного пункта в скрытую переменную hiddenTypeID.Value = ArticleTypesList.SelectedValue; }
protected void Page_Load(object sender, EventArgs e) { LogIn.Attributes.Add("onclick", "Authentificate();return false;"); //Заполняем список пользователей программы MainDataClassesDataContext dc = new MainDataClassesDataContext(); ISingleResult <ogk_GetUsersResult> result = dc.ogk_GetUsers(); List <ogk_GetUsersResult> userList = result.ToList(); for (int i = 0; i < userList.Count; i++) { user_name.Items.Add(new ListItem(userList[i].NAME)); } }
/// <summary> /// Загружает все типы изделий, кроме продукции /// </summary> /// <returns></returns> public ListItem[] LoadProductionArticleTypesForGroups() { MainDataClassesDataContext context = new MainDataClassesDataContext(); ISingleResult <ogk_SelectArticleTypesForGroupsResult> a = context.ogk_SelectArticleTypesForGroups();; List <ogk_SelectArticleTypesForGroupsResult> list = a.ToList(); ListItem[] types = new ListItem[list.Count]; for (int i = 0; i < list.Count; i++) { ListItem li = new ListItem(list.ElementAt(i).NAME, list.ElementAt(i).ID.ToString()); types[i] = li; } return(types); }
/// <summary> /// Загрузка покупных и внутренних изделий /// </summary> /// <param name="productType">Тип изделия (2 - внутреннее изделие, 3 - покупное)</param> /// <param name="groupID"></param> private void LoadProducts(string productType, string groupID) { //Выгружаем группу и подгруппы из дерева групп groupAndSubGroupsID.Clear(); groupAndSubGroupsID.Add(Convert.ToInt32(groupID)); //Загружаем подгруппы выбранной группы LoadSubgroups(Convert.ToInt32(productType), Convert.ToInt32(groupID)); //Готовим таблицу dt для загрузки DataTable dt = new DataTable(); dt.Columns.Add("Image"); dt.Columns.Add("Чертеж"); dt.Columns.Add("Изделия"); dt.Columns.Add("ID"); //Определяем изображение изделия string imageURL = ""; switch (productType) { case "2": imageURL = "../Icons/box.png"; break; case "3": imageURL = "../Icons/box_closed.png"; break; } //Выгружаем список изделий для каждой из подгрупп в таблицу dt for (int i = 0; i < groupAndSubGroupsID.Count; i++) { MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectArticlesOfGroupResult> a = dataContext.ogk_SelectArticlesOfGroup(groupAndSubGroupsID[i], Convert.ToInt32(productType)); List <ogk_SelectArticlesOfGroupResult> b = a.ToList(); for (int j = 0; j < b.Count; j++) { if (b.ElementAt(j).DRAWING == null) { b.ElementAt(j).DRAWING = "[Нет данных]"; } dt.Rows.Add(imageURL, b.ElementAt(j).DRAWING, b.ElementAt(j).NAME, b.ElementAt(j).ID.ToString()); } } GridView1.DataSource = dt; GridView1.DataBind(); }
private void SelectedNodeChanged_Product() { MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectProductionArticlesResult> a = dataContext.ogk_SelectProductionArticles(Convert.ToInt32(TreeView2.SelectedValue)); List <ogk_SelectProductionArticlesResult> b = a.ToList(); DataTable dt = new DataTable(); dt.Columns.Add("Название"); dt.Columns.Add("Чертеж"); TreeView2.Nodes.Clear(); for (int i = 0; i < b.Count; i++) { } }
private void LoadTreeNodeChildren(TreeNode treeNode) { //Загружаем подгруппы MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectArticleGroupsResult> a = dataContext.ogk_SelectArticleGroups(Convert.ToInt32(treeNode.Value), Convert.ToInt32(ArticleTypesList.SelectedValue)); List <ogk_SelectArticleGroupsResult> b = a.ToList(); for (int i = 0; i < b.Count; i++) { //Изображение подгруппы изделий такое же как и у группы TreeNode tn = new TreeNode(b.ElementAt(i).NAME.ToString(), b.ElementAt(i).ID.ToString(), "../Icons/folder.png"); treeNode.ChildNodes.Add(tn); LoadTreeNodeChildren(tn); } }
/// <summary> /// Поиск изделия по названию /// </summary> /// <param name="productNameParameter"></param> private void LoadProductsToGridView_SearchName(string productNameParameter) { MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SearchForProductionArticleName_AllResult> a = dataContext.ogk_SearchForProductionArticleName_All(productNameParameter); List <ogk_SearchForProductionArticleName_AllResult> b = a.ToList(); DataTable dt = new DataTable(); dt.Columns.Add("Image"); dt.Columns.Add("Чертеж"); dt.Columns.Add("Изделия"); dt.Columns.Add("ID"); for (int i = 0; i < b.Count; i++) { if ((b.ElementAt(i).DRAWING == null) || (b.ElementAt(i).DRAWING == "")) { b.ElementAt(i).DRAWING = "[Нет данных]"; } //В зависимости от типа найденного изделия , формируем ссылку на изображение string imageUrl = ""; switch (b.ElementAt(i).TYPE_NAME) { case "Продукция": imageUrl = "../Icons/package.png"; break; case "Внутреннее изделие": imageUrl = "../Icons/box.png"; break; case "Покупное изделие": imageUrl = "../Icons/box_closed.png"; break; } dt.Rows.Add(imageUrl, b.ElementAt(i).DRAWING, b.ElementAt(i).NAME, b.ElementAt(i).ID.ToString()); } //Если изделий не найдено if (b.Count == 0) { //Скрываем панель вывода списка изделий GridViewPanel.Visible = false; //Показываем сообщение о том , что никаких изделий не найдено NoProductsFoundMessage.Visible = true; } GridView1.DataSource = dt; GridView1.DataBind(); }
public void UsersGridView_OnRowDeleting(object sender, GridViewDeleteEventArgs e) { try { MainDataClassesDataContext dc = new MainDataClassesDataContext(); dc.ogk_DeleteUser(Convert.ToInt32(UsersGridView.Rows[e.RowIndex].Cells[0].Text)); LoadUsers(); UserName.Text = "Логин"; UserPassword.Text = "Пароль"; MessageLabel.Text = String.Empty; } catch (Exception) { MessageLabel.Text = "Удаление пользователя " + UsersGridView.Rows[e.RowIndex].Cells[1].Text + " не удалось"; } }
//Сохраняет изменен ия для данного изделия private void SaveChanges(string IDparameter, string productNameParameter, string drawingParameter, string groupIDParameter, string priceParameter, string typeIDParameter, string kod_okpdParameter, string kod_skmtrParameter) { //Обрезаем пробелы по концам строк productNameParameter = productNameParameter.Trim(); drawingParameter = drawingParameter.Trim(); priceParameter = priceParameter.Trim(); if (inputDataIsCorrect(IDparameter, productNameParameter, drawingParameter, priceParameter)) { try { int ID = Convert.ToInt32(IDparameter); string Name = productNameParameter; string Drawing = drawingParameter; int Groupid = Convert.ToInt32(groupIDParameter); decimal Price = Convert.ToDecimal(priceParameter); int TypeID = Convert.ToInt32(typeIDParameter); MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); int result = dataContext.ogk_EditArticle(ID, Name, Drawing, Groupid, Price, TypeID, kod_okpdParameter, kod_skmtrParameter); btnPanel1.Visible = false; SuccessMessage.Visible = true; btnPanel2.Visible = true; productionArticlesGroups.Enabled = false; productionArticlesTypes.Enabled = false; productName.Enabled = false; drawing.Enabled = false; price.Enabled = false; kod_skmtr.Enabled = false; kod_okpd.Enabled = false; //Задаем тип окна для реакции на нажатие клавиши enter windowMarker.Value = "SaveOK"; } catch (Exception ex) { //ShowErrorMessage("Ошибка сохранения изделия"); ShowErrorMessage(ex.Message); } } else { return; } }
/// <summary> /// Загрузка дерева групп продукции /// </summary> /// <param name="productType">Тип изделия (SELL - продукция, MAKE - внутреннее изделий, BUY - покупное изделие )</param> /// <param name="groupID">Идентификатор группы</param> public void LoadProductGroupsTree(string productType, string groupID) { MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectProductionTypesResult> a = dataContext.ogk_SelectProductionTypes(); List <ogk_SelectProductionTypesResult> b = a.ToList(); for (int i = 0; i < b.Count; i++) { TreeNode tn = new TreeNode(); tn.NavigateUrl = "javascript:AddNodeContent('" + productType + "','" + b.ElementAt(i).ID.ToString() + "')"; tn.Value = b.ElementAt(i).ID.ToString(); tn.Text = b.ElementAt(i).NAME; tn.ToolTip = b.ElementAt(i).NAME; TreeView2.Nodes.Add(tn); } CreateStartUpScript(productType, b.ElementAt(0).ID.ToString()); }
public static List <string> GetProductList_Drawing(string drawing) { //Добавляем символы для поиска вхождений указанного ГОСТа/Чертежа в другие ГОСТ drawing = "%" + drawing + "%"; //Определяем количество ГОСТов/Чертежей в выборке int number = 5; MainDataClassesDataContext context = new MainDataClassesDataContext(); ISingleResult <ogk_SearchForProductionArticleDrawingResult> a = context.ogk_SearchForProductionArticleDrawing(drawing, number); List <ogk_SearchForProductionArticleDrawingResult> List = a.ToList(); List <string> productDrawingList = new List <string>(); for (int i = 0; i < List.Count; i++) { productDrawingList.Add(List[i].DRAWING.ToString()); } return(productDrawingList); }
public static List <string> GetProductList_Name(string name) { //Добавляем символы для поиска вхождений указанного названия name = "%" + name + "%"; //Устанавливаем количество изделий в выборке int number = 5; MainDataClassesDataContext context = new MainDataClassesDataContext(); ISingleResult <ogk_SearchForProductionArticleNameResult> a = context.ogk_SearchForProductionArticleName(name, number); List <ogk_SearchForProductionArticleNameResult> List = a.ToList(); List <string> productNameList = new List <string>(); for (int i = 0; i < List.Count; i++) { productNameList.Add(List[i].NAME.ToString()); } return(productNameList); }
/// <summary> /// Загружает все группы выбранного типа изделий /// </summary> /// <param name="selectedType">Идентификатор типа изделий</param> private void LoadProductionArticlesGroups(string selectedType) { int typeID = Convert.ToInt32(selectedType); //Загружаем группы изделий выбранной категории MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectArticleGroupsResult> a = dataContext.ogk_SelectArticleGroups(0, typeID); List <ogk_SelectArticleGroupsResult> b = a.ToList(); for (int i = 0; i < b.Count; i++) { //string groupName = prefix + b.ElementAt(i).NAME.ToString(); //groupName = CutGroupName(groupName); ListItem item = new ListItem(prefix + b.ElementAt(i).NAME.ToString(), b.ElementAt(i).ID.ToString()); //Добавляем группу в список productionArticlesGroups.Items.Add(item); //Загружаем подгруппы LoadSubgroups(item); } }
private void SaveChanges(string groupIDParameter, string groupNameParameter, string prefixParameter, string parentGroupIDParameter, string typeID) { //Обрезаем пробелы по концам строки groupNameParameter = groupNameParameter.Trim(); prefixParameter = prefixParameter.Trim(); parentGroupIDParameter = parentGroupIDParameter.Trim(); //Заменяем несколько пробелов одним groupNameParameter = ReplaceSpacesWithOnlyOne(groupNameParameter); prefixParameter = ReplaceSpacesWithOnlyOne(prefixParameter); if (inputDataIsCorrect(groupNameParameter, groupIDParameter, parentGroupIDParameter, typeID) == true) { MainDataClassesDataContext context = new MainDataClassesDataContext(); //Сохраняем название и префикс группы int a = context.ogk_EditArticleGroup(Convert.ToInt32(groupIDParameter), groupNameParameter, prefixParameter); //Сохраняем родительскую группу int b = context.ogk_MoveArticleGroup(Convert.ToInt32(groupIDParameter), Convert.ToInt32(parentGroupIDParameter)); if (a > 0) { //Скрываем кнопки Сохранить Отмена и Удалить btnPanel1.Visible = false; //Показываем строку успешного изменения данных группы SuccessMessage.Visible = true; //Показываем кнопку ОК btnPanel2.Visible = true; //Задаем тип окна для реакции на нажатие клавиши enter windowMarker.Value = "SaveOK"; //Блокируем доступ к строковым полям редактирования названия,префикса,родительской группы groupName.Enabled = false; prefixLabel.Enabled = false; productionArticlesGroups.Enabled = false; } } }
/// <summary> /// Добавляет изделие с указанными параметрами в базу /// </summary> /// <param name="productName">Имя изделия</param> /// <param name="drawing">Чертеж/ГОСТ изделия</param> /// <param name="price">Цена изделия [руб.,коп.]</param> private void AddProduct(string productNameParameter, string drawingParameter, string groupID, string priceParameter, string typeID, string kod_skmtrParameter, string kod_okpdParameter) { //Удаляем пробелы по концам строк productNameParameter = productNameParameter.Trim(); drawingParameter = drawingParameter.Trim(); priceParameter = priceParameter.Trim(); //Проверяем входную информацию по формату и //ищем конфликты совпадения ГОСТов if (inputDataIsCorrect(productNameParameter, drawingParameter, priceParameter)) { try { //Добавляем изделие в базу MainDataClassesDataContext context = new MainDataClassesDataContext(); int a = context.ogk_AddArticle(productNameParameter, drawingParameter, Convert.ToInt32(groupID), Convert.ToDecimal(priceParameter), Convert.ToInt32(typeID), kod_skmtrParameter, kod_okpdParameter); } catch { //Обрабатываем ошибку CreateErrorScript("Выполнение данной операции невозможно"); } //Скрываем кнопки Сохранить и Отмена btnPanel1.Visible = false; //Показываем кнопку ОК btnPanel2.Visible = true; //Блокируем доступ к полям редактирования productName.Enabled = false; drawing.Enabled = false; price.Enabled = false; kod_okpd.Enabled = false; kod_skmtr.Enabled = false; //Задаем тип окна для реакции на нажатие клавиши enter windowMarker.Value = "CreateOK"; } else { return; } }
/// <summary> /// Загружает подгруппы указанной группы /// </summary> /// <param name="item">Идентификатор выбранной группы</param> private void LoadSubgroups(ListItem item) { //Загружаем подгруппы MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectArticleGroupsResult> a = dataContext.ogk_SelectArticleGroups(Convert.ToInt32(item.Value), Convert.ToInt32(productionArticlesTypes.SelectedValue)); List <ogk_SelectArticleGroupsResult> b = a.ToList(); if (b.Count > 0) { //Выделяем подгруппы префиксом из пробелов prefix += "\xA0\xA0\xA0\xA0"; for (int i = 0; i < b.Count; i++) { ListItem li = new ListItem(prefix + b.ElementAt(i).NAME.ToString(), b.ElementAt(i).ID.ToString()); productionArticlesGroups.Items.Add(li); LoadSubgroups(li); } //Укорачиваем префикс для загрузки последующих элементов prefix = prefix.Substring(4); } }
/// <summary> /// Проверяет существование имени группы в выбранной группе /// </summary> /// <param name="groupName">Проверяемое название группы</param> /// <param name="parentGroupID">Идентификатор родительской группы</param> /// <returns></returns> private bool groupNameIsNotExist(string groupName, string parentGroupID, int typeIDParameter) { groupName = groupName.Trim(); MainDataClassesDataContext context = new MainDataClassesDataContext(); int groupsWithThisName = Convert.ToInt32(context.ogk_GroupNameCheckUp(groupName, Convert.ToInt32(parentGroupID), typeIDParameter)); if (groupsWithThisName > 0) { //Группа с таким же именем уже существует - ошибка groupNameMessage.Visible = true; ErrorMessage.Visible = true; ErrorMessage.Text = "* Группа с таким именем уже существует"; return(false); } else { //Изделие с таким же чертежом/ГОСТ не существует - все ОК return(true); } }
/// <summary> /// Загрузка дерева покупных изделий /// </summary> /// <param name="productType">Тип изделия (SELL - продукция, MAKE - внутреннее изделий, BUY - покупное изделие )</param> /// <param name="groupID">Идентификатор</param> private void LoadOuterProductGroupsTree(string productType, string groupID) { MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectArticleGroupsResult> a = dataContext.ogk_SelectArticleGroups(0, 3); // 0 - корневой узел дерева, 3 - покупное изделие List <ogk_SelectArticleGroupsResult> b = a.ToList(); for (int i = 0; i < b.Count; i++) { TreeNode tn = new TreeNode(); tn.Value = b.ElementAt(i).ID.ToString(); tn.NavigateUrl = "javascript:AddNodeContent('" + productType + "','" + b.ElementAt(i).ID.ToString() + "')"; tn.Text = b.ElementAt(i).NAME; tn.ToolTip = b.ElementAt(i).NAME; TreeView2.Nodes.Add(tn); LoadChildrenTreeNodes(tn, Convert.ToInt32(tn.Value), 3); } TreeView2.CollapseAll(); CreateStartUpScript(productType, b.ElementAt(0).ID.ToString()); }
/// <summary> /// Загружает в окно информацию об изделии /// </summary> /// <param name="ID">Идентификатор изделия</param> private void LoadProductionInfo(string ID) { //Загружаем данные об изделии в окно //Edit Article MainDataClassesDataContext context = new MainDataClassesDataContext(); ISingleResult <ogk_SelectArticleResult> a = context.ogk_SelectArticle(Convert.ToInt32(ID)); List <ogk_SelectArticleResult> list = a.ToList(); //Название изделия productName.Text = list.ElementAt(0).NAME; //Чертеж(ГОСТ) drawing.Text = list.ElementAt(0).DRAWING; //Цена изделия price.Text = list.ElementAt(0).SELF_PRICE.ToString("F2"); //Тип изделия int typeID = list.ElementAt(0).TYPE; //Код СКМТР kod_skmtr.Text = list.ElementAt(0).KOD_SKMTR; //Код ОКПО kod_okpd.Text = list.ElementAt(0).KOD_OKPD; productionArticlesTypes.SelectedValue = typeID.ToString(); //Идентификатор группы изделия string groupID = Convert.ToString(list.ElementAt(0).PRODUCTION_GROUP_ID.Value); LoadProductionArticlesGroups(productionArticlesTypes.SelectedValue); //Выбираем из списка группу изделия for (int i = 0; i < productionArticlesGroups.Items.Count; i++) { if (productionArticlesGroups.Items[i].Value == groupID) { productionArticlesGroups.Items[i].Selected = true; } } }
/// <summary> /// Загрузка продукции /// </summary> /// <param name="productType"></param> /// <param name="groupID"></param> private void LoadProductsToGridView(string productType, string groupID) { MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectProductionArticlesResult> a = dataContext.ogk_SelectProductionArticles(Convert.ToInt32(groupID)); List <ogk_SelectProductionArticlesResult> b = a.ToList(); DataTable dt = new DataTable(); dt.Columns.Add("Image"); dt.Columns.Add("Чертеж"); dt.Columns.Add("Изделия"); dt.Columns.Add("ID"); for (int i = 0; i < b.Count; i++) { if ((b.ElementAt(i).DRAWING == null) || (b.ElementAt(i).DRAWING == "")) { b.ElementAt(i).DRAWING = "[Нет данных]"; } dt.Rows.Add("../Icons/package.png", b.ElementAt(i).DRAWING, b.ElementAt(i).NAME, b.ElementAt(i).ID.ToString()); } GridView1.DataSource = dt; GridView1.DataBind(); }
/// <summary> /// Создает пользователя с именем и сгенерированным паролем /// </summary> /// <param name="userName">Имя пользователя</param> private string CreateUser(string userName, bool edit_skmtr_okpd_only) { try { string password = UserPassword.Text; //Шифруем пароль string encryptedPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(password, "SHA1"); MainDataClassesDataContext dc = new MainDataClassesDataContext(); dc.ogk_CreateUser(userName, encryptedPassword, Convert.ToInt32(edit_skmtr_okpd_only)); UserName.Text = "Логин"; UserPassword.Text = "Пароль"; MessageLabel.ForeColor = System.Drawing.Color.Green; return("Создан пользователь " + userName + " с паролем " + password); } catch (Exception) { MessageLabel.ForeColor = System.Drawing.Color.Red; return("Невозможно создать пользователя"); } }
/// <summary> /// Определяет число изделий в которые входит удаляемое изделие /// </summary> /// <returns>Количество изделий</returns> protected int CountParentProducts() { int productID = 0; try { //Получаем параметр из строки запроса HTTP productID = Convert.ToInt32(Server.UrlDecode(Request.QueryString["productID"])); } catch { return(0); } int count = 0; using (MainDataClassesDataContext dataContext = new MainDataClassesDataContext()) { //Вызываем процедуру подсчета вхождений изделия в состав других изделий count = dataContext.ogk_GetArticleParentsCount(productID).Value; } return(count); }
private void AddGroup(string typeIDParameter, string parentGroupIDParameter, string groupNameParameter, string prefixParameter) { //Удаляем пробелы по концам строк typeIDParameter = typeIDParameter.Trim(); parentGroupIDParameter = parentGroupIDParameter.Trim(); groupNameParameter = groupNameParameter.Trim(); prefixParameter = prefixParameter.Trim(); //Проверяем входную информацию по формату и //ищем конфликты совпадения имен групп if (inputDataIsCorrect(groupNameParameter, parentGroupIDParameter, Convert.ToInt32(typeIDParameter))) { try { //Добавляем группу в базу MainDataClassesDataContext context = new MainDataClassesDataContext(); int a = context.ogk_AddArticleGroup(Convert.ToInt32(parentGroupIDParameter), groupNameParameter, prefixParameter, Convert.ToInt32(typeIDParameter)); } catch { } //Скрываем кнопки Сохранить и Отмена btnPanel1.Visible = false; //Показываем кнопку ОК btnPanel2.Visible = true; //Блокируем доступ к полям редактирования groupName.Enabled = false; prefix.Enabled = false; //Задаем тип окна для реакции на нажатие клавиши enter windowMarker.Value = "CreateOK"; } else { return; } }
/// <summary> /// Действия после выбора узла дерева /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { //Загружаем подгруппы MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectArticleGroupsResult> a = dataContext.ogk_SelectArticleGroups(Convert.ToInt32(TreeView1.SelectedNode.Value), Convert.ToInt32(ArticleTypesList.SelectedValue)); List <ogk_SelectArticleGroupsResult> b = a.ToList(); //Формируем вид таблицы для последующего заполнения DataTable dt = new DataTable(); dt.Columns.Add("Image"); dt.Columns.Add("Название группы"); dt.Columns.Add("Префикс"); dt.Columns.Add("ID"); string imageUrl = "../Icons/folder.png"; for (int i = 0; i < b.Count; i++) { //Добавляем строку в таблицу dt.Rows.Add(imageUrl, b.ElementAt(i).NAME, b.ElementAt(i).PREFIX, b.ElementAt(i).ID.ToString()); } //Показываем панель со списком изделий группы Panel1.Visible = true; ////Настраиваем ширину ячеек таблицы //Столбец изображений элементов GridView1.Columns[0].ItemStyle.CssClass = "productImageColumn"; //Столбец названий групп GridView1.Columns[1].ItemStyle.CssClass = "groupNameColumn"; //Столбец префиксов GridView1.Columns[2].ItemStyle.CssClass = "groupPrefix"; //Столбец ID групп GridView1.Columns[3].ItemStyle.CssClass = "productIdColumn"; GridView1.DataSource = dt; GridView1.DataBind(); if (IsPostBack) { //Записываем значение выбранной группы в скрытую переменную parentGroupID.Value = TreeView1.SelectedNode.Value; TreeView1.SelectedNode.ChildNodes.Clear(); //Если добавляем группу во "Все группы" if (targetGroup == "0") { //Запоминаем путь до выбранного узла дерева string nodePath = TreeView1.SelectedNode.ValuePath.ToString(); //Перезагружаем дерево LoadTreeView(); //Отыскиваем выбранный ранее узел в новом дереве и выбираем его TreeView1.FindNode(nodePath).Select(); ExpandBranchNodes(TreeView1.SelectedNode); } else { LoadTreeNodeChildren(TreeView1.SelectedNode); } } }
/// <summary> /// Действия после выбора узла дерева /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { //Загружаем изделия выбранной группы MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SelectArticlesOfGroupResult> a = dataContext.ogk_SelectArticlesOfGroup(Convert.ToInt32(TreeView1.SelectedNode.Value), Convert.ToInt32(ArticleTypesList.SelectedValue)); List <ogk_SelectArticlesOfGroupResult> b = a.ToList(); //Формируем вид таблицы для последующего заполнения DataTable dt = new DataTable(); dt.Columns.Add("Image"); dt.Columns.Add("Чертеж"); dt.Columns.Add("Изделия"); dt.Columns.Add("Код СКМТР"); dt.Columns.Add("ID"); dt.Columns.Add("Text_tree"); string imageUrl; //Назначаем изображение в зависимости от выбранного типа изделий //1 - покупное изделие, 0 - внутреннее изделие if (ArticleTypesList.SelectedIndex == 1) { imageUrl = "../Icons/box_closed.png"; } else { imageUrl = "../Icons/box.png"; } for (int i = 0; i < b.Count; i++) { if ((b.ElementAt(i).DRAWING == null) || (b.ElementAt(i).DRAWING == "")) { b.ElementAt(i).DRAWING = "[Нет данных]"; } //Добавляем строку в таблицу dt.Rows.Add(imageUrl, b.ElementAt(i).DRAWING, b.ElementAt(i).NAME, b.ElementAt(i).KOD_SKMTR, b.ElementAt(i).ID.ToString()); } //Показываем панель со списком изделий группы Panel1.Visible = true; ////Настраиваем ширину ячеек таблицы //Столбец изображений элементов GridView1.Columns[0].ItemStyle.CssClass = "productImageColumn"; //Столбец чертежей/ГОСТов GridView1.Columns[1].ItemStyle.CssClass = "productDrawingColumn"; //Столбец имен изделий GridView1.Columns[2].ItemStyle.CssClass = "productSkmtrCodeColumn"; //Столбец имен изделий GridView1.Columns[3].ItemStyle.CssClass = "productNameColumn"; //Столбец ID GridView1.Columns[4].ItemStyle.CssClass = "productEnteringColumn"; //Столбец вхождения изделия в другие изделия GridView1.Columns[5].ItemStyle.CssClass = "productIdColumn"; GridView1.DataSource = dt; GridView1.DataBind(); //Записываем значение выбранной группы в скрытую переменную hiddenGroupID.Value = TreeView1.SelectedNode.Value; }
/// <summary> /// Удаляет изделие с указанным ID /// </summary> /// <param name="ID">Идентификатор изделия</param> private void RemoveProduct(string ID) { MainDataClassesDataContext context = new MainDataClassesDataContext(); //Используем хранимую процедуру int a = context.ogk_RemoveArticle(Convert.ToInt32(ID)); }
/// <summary> /// Загружает список найденных изделий в окно поиска /// </summary> /// <param name="productNameParameter">Название изделия</param> /// <param name="productDrawingParameter">Чертеж/ГОСТ изделия</param> /// <param name="searchForTheFirstTime">Если поиск проводится впервые = true, иначе false</param> private void LoadProductsToGridView(string productNameParameter, string productDrawingParameter, string searchForTheFirstTime) { if ((productNameParameter == "") && (productDrawingParameter == "")) { //Скрываем список найденных изделий GridViewPanel.Visible = false; if (searchForTheFirstTime == "false") { //Показываем сообщение о том, что никаких изделий не найдено NoProductsFoundMessage.Visible = true; } else { //Скрываем сообщение о том, что никаких изделий не найдено NoProductsFoundMessage.Visible = false; } return; } //Добавляем % для поиска вхождений искомых названий и чертежей productNameParameter = "%" + productNameParameter + "%"; productDrawingParameter = "%" + productDrawingParameter + "%"; //Если чертежа нет, то ищем изделие по имени if (productDrawingParameter == "%%") { //Ищем изделие по названию LoadProductsToGridView_SearchName(productNameParameter); } else { MainDataClassesDataContext dataContext = new MainDataClassesDataContext(); ISingleResult <ogk_SearchForProductionArticleResult> a = dataContext.ogk_SearchForProductionArticle(productNameParameter, productDrawingParameter); List <ogk_SearchForProductionArticleResult> b = a.ToList(); DataTable dt = new DataTable(); dt.Columns.Add("Image"); dt.Columns.Add("Чертеж"); dt.Columns.Add("Изделия"); dt.Columns.Add("ID"); for (int i = 0; i < b.Count; i++) { if ((b.ElementAt(i).DRAWING == null) || (b.ElementAt(i).DRAWING == "")) { b.ElementAt(i).DRAWING = "[Нет данных]"; } //В зависимости от типа найденного изделия , формируем ссылку на изображение string imageUrl = ""; switch (b.ElementAt(i).TYPE_NAME) { case "Продукция": imageUrl = "../Icons/package.png"; break; case "Внутреннее изделие": imageUrl = "../Icons/box.png"; break; case "Покупное изделие": imageUrl = "../Icons/box_closed.png"; break; } dt.Rows.Add(imageUrl, b.ElementAt(i).DRAWING, b.ElementAt(i).NAME, b.ElementAt(i).ID.ToString()); } //Если изделий не найдено if (b.Count == 0) { //Скрываем панель вывода списка изделий GridViewPanel.Visible = false; //Показываем сообщение о том , что никаких изделий не найдено NoProductsFoundMessage.Visible = true; } GridView1.DataSource = dt; GridView1.DataBind(); } }
/// <summary> /// Определяет изделия, в которые входит изделие /// </summary> /// <returns>Количество изделий</returns> protected int GetParentProducts(string productID) { int ID; try { ID = Convert.ToInt32(productID); } catch { return(0); } int count = 0; using (MainDataClassesDataContext dataContext = new MainDataClassesDataContext()) { ISingleResult <ogk_GetArticleParentsResult> a = dataContext.ogk_GetArticleParents(ID); List <ogk_GetArticleParentsResult> b = a.ToList(); count = b.Count; //Формируем вид таблицы для последующего заполнения DataTable dt = new DataTable(); dt.Columns.Add("Image"); dt.Columns.Add("Чертеж"); dt.Columns.Add("Название"); dt.Columns.Add("ID"); string imageUrl = ""; for (int i = 0; i < b.Count; i++) { if ((b.ElementAt(i).DRAWING == null) || (b.ElementAt(i).DRAWING == "")) { b.ElementAt(i).DRAWING = "[Нет данных]"; } switch (b.ElementAt(i).TYPE) { case 1: imageUrl = "../Icons/package.png"; break; case 2: imageUrl = "../Icons/box.png"; break; case 3: imageUrl = "../Icons/box_closed.png"; break; default: imageUrl = "../Icons/package.png"; break; } //Добавляем строку в таблицу dt.Rows.Add(imageUrl, b.ElementAt(i).DRAWING, b.ElementAt(i).NAME, b.ElementAt(i).ID); } //Столбец изображений элементов GridView1.Columns[0].ItemStyle.CssClass = "productImageColumn"; //Столбец чертежей/ГОСТов GridView1.Columns[1].ItemStyle.CssClass = "productDrawingColumn"; //Столбец имен изделий GridView1.Columns[2].ItemStyle.CssClass = "productNameColumn"; //Столбец ID GridView1.Columns[3].ItemStyle.CssClass = "productIdColumn"; GridView1.DataSource = dt; GridView1.DataBind(); } return(count); }