Разработка подсистемы документооборота в системе управления проектами сервисной компании
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
GV в factsTGV
//Источник docsTgvvoid docsTgv_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
-1&&e.ColumnIndex>-1)">{(e.RowIndex > -1 && e.ColumnIndex > -1)
{= false;timer = new Timer();.Interval = 50;.Tag = e.RowIndex;.Tick += DragTimerTick;.Start();
}
}void docsTgv_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e)
-1&&e.ColumnIndex>-1)">{(e.RowIndex > -1 && e.ColumnIndex > -1)
{= true;
}
}void DragTimerTick(object sender, EventArgs e)
{
((Timer)sender).Stop();(!flagCellMouseUpped)
{
//Тащим несколько разных выделенных объектов И группы и ПозицииtypeofFirstAddedItem = docsTgv.SelectedRows[0].Tag.GetType(); //Либо тип группа - либо тип позиция
listGroups=newList();flagNeedToDrag =true;(int i = 0; i < docsTgv.SelectedRows.Count; i++)
{(docsTgv.SelectedRows[i].Tag.GetType() == typeofFirstAddedItem)
{(typeofFirstAddedItem == typeof(Pos_group)).Add((Pos_group)docsTgv.SelectedRows[i].Tag);.Add((Positions)docsTgv.SelectedRows[i].Tag);
}
{= false;.Show("Невозможно перетащить группы и позиции одновременно");
return;
}
}(flagNeedToDrag)
0).DoDragDrop(listGroups,DragDropEffects.Copy);(listPositions.Count>0).DoDragDrop(listPositions,DragDropEffects.All);">{(listGroups.Count>0).DoDragDrop(listGroups, DragDropEffects.Copy);(listPositions.Count > 0).DoDragDrop(listPositions, DragDropEffects.All);
}
}
}
//Приемник factTgvvoid factTgv_DragEnter(object sender, DragEventArgs e)
{.Effect = DragDropEffects.Copy;
}void factTgv_DragDrop(object sender, DragEventArgs e)
{clientPoint = factTgv.PointToClient(new Point(e.X, e.Y));rowIndexOfItemUnderMouseToDrop = factTgv.HitTest(clientPoint.X, clientPoint.Y).RowIndex;
#region Если в пустое место(rowIndexOfItemUnderMouseToDrop == -1)//Если в пустое место
listGroups=e.Data.GetData(typeof(List;
if (listGroups == null)//Драгаем позицию.Show("Невозможно перетатащить позиции в корень групп");
else//Драгаем группу
{(int j = 0; j < listGroups.Count; j++)
listPositionsFact=connector.getAllDataFromDB("PositionsASposWHEREpos.delISNULLANDpos.post_post_id=1ANDpos.pos_pos_idISNULLANDpos.pg_pg_id="+listGroups[j].pg_id).ConvertAll(newConverter(ConverterPositions));(int i = 0; i < listPositionsFact.Count; i++)
{nodeChild = group.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);
}_group newGroup = new Pos_group();.name = ((Pos_group)group.Tag).name;.descript = ((Pos_group)group.Tag).descript;.cs_cs_id = ((Pos_group)group.Tag).cs_cs_id;.pt_pt_id = (Pos_type)connector.executeUniqueResultQuery("from Pos_type AS pt WHERE pt.pos_type_id =2");.Tag = newGroup;.Update(newGroup);(group);
}.CommitChanges();
}
}
#endregion
#region Если в группуif (factTgv.Rows[rowIndexOfItemUnderMouseToDrop].Tag.GetType() == typeof(Pos_group))//Если в группу
listPositions=e.Data.GetData(typeof(List;(listPositions == null)//Драгаем группу.Show("Невозможно перетащить группы в группу");//Драгаем позицию
{parent = factTgv.GetNodeForRow(rowIndexOfItemUnderMouseToDrop);//Получили нод, на который мы перетащили(int i = 0; i < listPositions.Count; i++)
{newChild = parent.Nodes.Add(listPositions[i].article, listPositions[i].name, listPositions[i].um_um_id.short_name, listPositions[i].count,[i].val_val_id.name, listPositions[i].price, listPositions[i].summa, listPositions[i].stat_stat_id.name, listPositions[i].delivery,[i].cancel, listPositions[i].official);.Tag = listPositions[i];(newChild, listPositions[i].pos_id, listPositions[i].post_post_id, listPositions[i].pg_pg_id);newPos = new Positions();.name = ((Positions)newChild.Tag).name;.article = ((Positions)newChild.Tag).article;.cancel = ((Positions)newChild.Tag).cancel;.count = ((Positions)newChild.Tag).count;.delivery = ((Positions)newChild.Tag).delivery;.official = ((Positions)newChild.Tag).official;.delivery = ((Positions)newChild.Tag).delivery;.price = ((Positions)newChild.Tag).price;.summa = ((Positions)newChild.Tag).summa;.stat_stat_id = ((Positions)newChild.Tag).stat_stat_id;.prop_prop_id = ((Positions)newChild.Tag).prop_prop_id;.um_um_id = ((Positions)newChild.Tag).um_um_id;.val_val_id = ((Positions)newChild.Tag).val_val_id;.cs_cs_id = ((Positions)newChild.Tag).cs_cs_id;.pg_pg_id = ((Pos_group)newChild.Parent.Tag);.post_post_id = ((Pos_group)newChild.Parent.Tag).pt_pt_id;
newPos.pos_pos_id = null;
newChild.Tag = newPos;.Update(newPos);(newChild);
}.CommitChanges();
}
}
#endregion
#region Если в позициюif (factTgv.Rows[rowIndexOfItemUnderMouseToDrop].Tag.GetType() == typeof(Positions))//Если в позицию
listPositions=e.Data.GetData(typeof(List; (listPositions == null)//Драгаем группу
MessageBox.Show("Невозможно перетащить группы в позицию");
else//Драгаем позицию
{
TreeGridNode parent = factTgv.GetNodeForRow(rowIndexOfItemUnderMouseToDrop);//Получили нод, на который мы перетащили
for (int i = 0; i < listPositions.Count; i++)
{newChild = parent.Nodes.Add(listPositions[i].article, listPositions[i].name, listPositions[i].um_um_id.short_name, listPositions[i].count,[i].val_val_id.name, listPositions[i].price, listPositions[i].summa, listPositions[i].stat_stat_id.name, listPositions[i].delivery,[i].cancel, listPositions[i].official);.Tag = listPositions[i];(newChild, listPositions[i].pos_id, listPositions[i].post_post_id, listPositions[i].pg_pg_id);newPos = new Positions();.name = ((Positions)newChild.Tag).name;.article = ((Positions)newChild.Tag).article;.cancel = ((Positions)newChild.Tag).cancel;.count = ((Positions)newChild.Tag).count;.delivery = ((Positions)newChild.Tag).delivery;.official = ((Positions)newChild.Tag).official;.delivery = ((Positions)newChild.Tag).delivery;.price = ((Positions)newChild.Tag).price;.summa = ((Positions)newChild.Tag).summa;.stat_stat_id = ((Positions)newChild.Tag).stat_stat_id;.prop_prop_id = ((Positions)newChild.Tag).prop_prop_id;.um_um_id = ((Positions)newChild.Tag).um_um_id;.val_val_id = ((Positions)newChild.Tag).val_val_id;.pg_pg_id = ((Positions)newChild.Parent.Tag).pg_pg_id;.post_post_id = ((Positions)newChild.Parent.Tag).post_post_id;.pos_pos_id = ((Positions)newChild.Parent.Tag);.cs_cs_id = ((Positions)newChild.Parent.Tag).cs_cs_id;.Tag = newPos;.Update(newPos);(newChild);
}.CommitChanges();
}
}
#endregion
}
#endregion
#region Drag and Drop внутри docsTGV
//Приемник docsTgvvoid docsTgv_DragEnter(object sender, DragEventArgs e)
{.Effect = DragDropEffects.Move;
}void docsTgv_DragDrop(object sender, DragEventArgs e)
{clientPoint = docsTgv.PointToClient(new Point(e.X, e.Y));rowIndexOfItemUnderMouseToDrop = docsTgv.HitTest(clie