C1.Win.C1GanttView.C1GanttView 甘特图使用经验:子任务
安裝C1控件
在toolbox中添加tab,把C1控件放進工具箱,就可以和一般的Winform控件一起使用了。
本文記錄一下使用:C1.Win.C1GanttView.C1GanttView 踩過的坑,
主要是沒有考慮到:不支持子任務。
如果有用這個控件實現子任務的 謝謝分享一下!
以下主要是代碼實現任務的初始化,及數據的轉換
UI定制:
c1的甘特圖,支持簡單的界面定制,可以設置固定表頭的顏色及邊框;表格內容的顏色及邊框;甘特圖和列表的分離線樣式以及甘特圖bar的樣式定制。
注意:C1甘特圖的外邊框 無法設置顏色,或者是沒有找到設置顏色的入口,多外邊框要求較高的需要想辦法。
如下圖樣式可以很容易的實現:
缺點:外邊框的顏色不受控制。
業務功能實現:
優點:只有一個層級的任務可以很容易實現
缺點:不支持子任務的分層顯示
后臺定義代碼:
初始化數據:
1.清空原來數據 c1GVPlan.Tasks.Clear();
2.轉換數據實體為task類型,task 支持自定義客戶屬性
Task task = ConvertToTask(plan, ref EndDate, ref StartDate);
c1GVPlan.Tasks.Add(task);
//設置項目的開始和結束日期
c1GVPlan.Project.StartDate = StartDate ?? DateTime.Now;
3.添加前置任務或資源
Predecessor _pre = new Predecessor();Task preTask = gvPrjPlan.Tasks.Search(pre[0]);if (preTask != null){_pre.PredecessorTask = preTask;_pre.PredecessorType = (PredecessorType)Enum.Parse(typeof(PredecessorType), pre[1], true);_pre.Lag = double.Parse(pre[2]);task.Predecessors.Add(_pre);}注意事項:task 一定要從現有grid中讀取
新增編輯操作需要觸發其他操作的,可以寫在事件ListChane中
gvPrjPlan.Tasks.ListChanged += new ListChangedEventHandler(TasksResources_ListChanged);void TasksResources_ListChanged(object sender, ListChangedEventArgs e){}保存數據到數據庫注意事項:
因為任務涉及到較多的互相之間的關系及資源,一般建議先清空數據庫中的原有數據,然后把現在的grantview的tasks 保存進去。
難點:實體模型和task之前的類型轉換,前置資源等
定制化的UI
數據庫保存及更新:數據量大,可能速度較慢,看數據關系及業務邏輯的復雜度
一般是不支持摘要任務和子任務的,完整版支持
~~
以上是最近試用該控件的心得,有興趣的可以互相交流
~
總結
以上是生活随笔為你收集整理的C1.Win.C1GanttView.C1GanttView 甘特图使用经验:子任务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TAB选择卡
- 下一篇: USB-C转HDMI/VGA音视频数据转