Разработка подсистемы документооборота в системе управления проектами сервисной компании
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
ntPoint.X, clientPoint.Y).RowIndex;(docsTgv.Rows[rowIndexOfItemUnderMouseToDrop].Tag.GetType() == typeof(Positions))//Если на позицию
listPositions=e.Data.GetData(typeof(List; (listPositions == null)//Драгаем группу
MessageBox.Show("Невозможно перетащить группы в позицию");
else//Драгаем позицию
{targetPosition = (Positions)docsTgv.Rows[rowIndexOfItemUnderMouseToDrop].Tag;
for (int i = 0; i < listPositions.Count; i++)//Проверка: Невозможно переместить позиции на самих себя
if (listPositions[i] == targetPosition);flagOneGroupOneLevel = false;(int i = 0; i < listPositions.Count; i++)//Проверка: принадлежат одной группе и находятся на одном уровне
{(listPositions[i].pg_pg_id == targetPosition.pg_pg_id && listPositions[i].pos_pos_id == targetPosition.pos_pos_id)= true;
{= false;
MessageBox.Show("Перемещение позиций возможно только в рамках группы и на одном уровне");
return;
}
}(flagOneGroupOneLevel)//Если принадлежат
{= false;orderNumberToChange = targetPosition.order_number;
//for ()(targetPosition.order_number < getMinOrderNumberFromList(listPositions))//Меняем местами - Цель вверху, Элементы, которые тянем внизу.
{(int i = 0; i < listPositions.Count; i++)
{[i].order_number = orderNumberToChange + i;.Update(listPositions[i]);(i == listPositions.Count - 1).order_number = orderNumberToChange + i + 1;
}.Update(targetPosition);.CommitChanges();ParentNode = docsTgv.GetNodeForRow(rowIndexOfItemUnderMouseToDrop).Parent;.Nodes.Clear();(ParentNode.Tag.GetType() == typeof(Pos_group))//Если родитель - группа(ParentNode);
getMaxOrderNumberFromList(listPositions))//-,,.">}if (targetPosition.order_number > getMaxOrderNumberFromList(listPositions))//Меняем местами - Элементы, которые тянем вверху, Цель внизу.
{.order_number = getMinOrderNumberFromList(listPositions);(int i = 0; i < listPositions.Count; i++)
{[i].order_number = orderNumberToChange + i;.Update(listPositions[i]);
}.Update(targetPosition);.CommitChanges();ParentNode = docsTgv.GetNodeForRow(rowIndexOfItemUnderMouseToDrop).Parent;.Nodes.Clear();(ParentNode.Tag.GetType() == typeof(Pos_group))//Если родитель - группа(ParentNode);
}
}.Show("Перемещение позиций возможно только в рамках группы");
}
}
}getMinOrderNumberFromList(List list)
{min = 9999;(int i = 0; i < list.Count; i++)(list[i].order_number < min)= list[i].order_number;min;
}getMaxOrderNumberFromList(List list)
max)=list[i].order_number;max;">{max = -9999;(int i = 0; i max)= list[i].order_number;max;
}recursionAddChildrenToGroup(TreeGridNode parentGroupNode)
listPositionsFact=connector.getAllDataFromDB("PositionsASposWHEREpos.delISNULLANDpos.post_post_id="+parentGroup.pt_pt_id.pos_type_id+"ANDpos.pos_pos_idISNULLANDpos.pg_pg_id="+parentGroup.pg_id+"ORDERBYorder_number").ConvertAll(newConverter(ConverterPositions));(int i = 0; i < listPositionsFact.Count; i++)
{nodeChild = parentGroupNode.Nodes.Add(listPositionsFact[i].article, listPositionsFact[i].name, listPositionsFact[i].um_um_id.short_name, listPositionsFact[i].count,[i].val_val_id.name, listPositionsFact[i].price, listPositionsFact[i].summa, listPositionsFact[i].stat_stat_id.name, listPositionsFact[i].delivery,[i].cancel, listPositionsFact[i].official);.Tag = listPositionsFact[i];(nodeChild, listPositionsFact[i].pos_id, listPositionsFact[i].post_post_id, listPositionsFact[i].pg_pg_id);
}
}
#endregion
#region Члены ISessionableConnector Connector
{
{connector;
}
{.connector = value;
}
}ISessionable SessionableTabPage
{
{this;
}
{new NotImplementedException();
}
}void updateView(bool onlyDetailTables)
{
#region Инициализация компонентов (docsTGV, factsDGV)
#region Заполнение ComboBox-ов
//Заполнение комбобокса "Статус"
((DataGridViewComboBoxColumn)docsTgv.Columns[7]).Items.Clear();
listStatuses=connector.getAllDataFromDB("Statuses").ConvertAll(newConverter(ConverterStatuses));(int i = 0; i < listStatuses.Count; i++)
{
((DataGridViewComboBoxColumn)docsTgv.Columns[7]).Items.Add(listStatuses[i].name);
((DataGridViewComboBoxColumn)factTgv.Columns[7]).Items.Add(listStatuses[i].name);
}
//Заполнение комбобокса "Единица измерения"
((DataGridViewComboBoxColumn)docsTgv.Columns[2]).Items.Clear();
listUnits_measur=connector.getAllDataFromDB("Units_measur").ConvertAll(newConverter(ConverterUnits_measur));(int i = 0; i < listUnits_measur.Count; i++)
{
((DataGridViewComboBoxColumn)docsTgv.Columns[2]).Items.Add(listUnits_measur[i].short_name);
((DataGridViewComboBoxColumn)factTgv.Columns[2]).Items.Add(listUnits_measur[i].short_name);
}
//Заполнение комбобокса "Валюта"
((DataGridViewComboBoxColumn)docsTgv.Columns[4]).Items.Clear();
listValuta=connector.getAllDataFromDB("Valuta").ConvertAll(newConverter(ConverterValuta));(int i = 0; i < listValuta.Count; i++)
{
((DataGridViewComboBoxColumn)docsTgv.Columns[4]).Items.Add(listValuta[i].name);
((DataGridViewComboBoxColumn)factTgv.Columns[4]).Items.Add(listValuta[i].name);
}
#endregion
listPos_group2=connector.getAllDataFromDB("Pos_groupASpgWHEREpg.pt_pt_id=2ANDpg.cs_cs_id="+ParentContractSpec.cs_id).ConvertAll(newConverter(ConverterPos_group));(int j = 0; j < listPos_group2.Count; j++)
listPositionsFact=connector.getAllDataFromDB("PositionsASposWHEREpos.delISNULLANDpos.post_post_id=2ANDpos.pos_pos_idISNULLANDpos.pg_pg_id="+listPos_group2[j].pg_id+"ANDpos.cs_cs_id="+ParentContractSpec.cs_id+"ORDERBYpos.order_numberasc").ConvertAll(newConverter listPositionsFact = connector.getAllDataFromDB("Positions AS pos WHERE pos.del IS NULL AND pos.post_post_id=2 AND pos.pos_pos_id IS NULL AND pos.pg_pg_id = " + listPos_group2[j].pg_id + " AND pos.cs_cs_id = "+ParentContractSpec.cs_id+" ORDER BY po