翻譯|使用教程|編輯:黃竹雯|2019-01-31 15:36:11.000|閱讀 332 次
概述:本文主要介紹在VARCHART XGantt的分組視圖中如何更好的顯示節點
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
VARCHART XGantt是一款功能強大的甘特圖控件,其模塊化的設計讓您可以創建滿足需要的應用程序。XGantt可用于.NET,ActiveX和ASP.NET應用程序,可以快速、簡單地集成到您的應用程序中,幫助您識別性能瓶頸、避免延遲以及高效利用資源,使復雜數據變得更加容易理解。
本文主要介紹如何在分組視圖中更好地顯示節點,有任何建議或提示請在下方評論區留言。
在甘特圖中活動通常以組的形式展現,比如machine Gantt代表機器負載可視化,它區分機器組和各自的機器,這被稱為雙階段分組。甘特圖的分組可以用來表示擴張或者收縮,這取決于你想從哪個角度查看詳細數據。
有一個傳統甘特圖控制所面臨的問題:那就是通常節點只在一個組級別中顯示。那么如何在甘特圖組中顯示節點?是在頂部折疊或是在底部展開?在下文中將詳細介紹如何在組級別上可視化節點,以及基于節點的單個組的排列如何增強甘特圖的信息價值。
VARCHART XGantt是一款非常靈活的.Net甘特控制工具,僅通過少量的編程就可以針對面向時間的規劃數據進行幾乎所有可視化需求定制。
當特定機器的甘特圖啟動時如果顯示崩潰,下面的示例將顯示機器組,而單個機器最初并沒有顯示,并且所有節點都顯示在頂層。
當展開機器組后,可以看到第二層單獨的機器。現在我們直觀的將節點從機器組移動到機器上(只需撤銷移動,節點就會再次出現在第一層)。
為了將節點排列在第一層和第二層,我們同時選擇了VARCHART XGantt模式all nodes in one row和nodes optimized選項。這樣就可以實現:
由于我們希望為planner提供盡可能詳細的視圖選項,所以我們將all nodes in one row更改為nodes in separate rows,方法是為第二個分組級別勾選相應的復選框。
在展開機器視圖時,每個節點將被清晰地安排在它自己的一行中,這樣規劃人員就可以識別出活動的確切時間。此外活動是按開始日期排序的,因此計劃人員可以很容易地立即找到下一個計劃的活動
本例中不使用擴展數據表,在傳統的數據結構中,組是根據節點的分組標準自動創建的。VARCHART XGantt屬性頁上的設置如下:
如果第二個分組字段為空,例如空字符串,則VARCHART XGantt將各個節點排序到下一個最高級別的組中。不要簡單地將第二層的分組名稱替換為空字符串,因為這樣肯定會刪除該值,并且無法再分配該值。這就是為什么我們需要在需要時將空字符串或第二層的分組名稱復制到其中的虛擬數據字段(最初虛擬數據字段將保持為空)。
接下來如果尚未指定,我們將在設置中為這兩個分組級別中的每一個創建GroupLevelLayout:
現在需要導出VARCHART XGantt配置文件,使用文本編輯器進行編輯,然后再次導入。導出的INI文件會為每個分組級別顯示CreateGroupForEmptyEntry關鍵字,為了簡化問題,對于所有現有分組級別,這個關鍵字設置必須從YES改為NO。并且不要忘記為以后添加的所有分組級別再次設置此鍵。
我們需要檢查哪個分組級別觸發了修改后的事件,參考以下代碼:
private void vcGantt1_VcGroupModified(object sender, VcGroupModifiedEventArgs e) { vcGantt1.SuspendUpdate(true); if (e.Group.GroupingLevel == 0) { if (e.Group.Collapsed) { foreach (VcNode node in e.Group.NodeCollection) { node.set_DataField(DT.Maindata_GroupLvl2FieldIndex, ""); node.Update(); e.Group.NodesOptimized = true; e.Group.Update(); } } else { foreach (VcNode node in e.Group.NodeCollection) { node.set_DataField(DT.Maindata_GroupLvl2FieldIndex, node.get_DataField(DT.Maindata_GroupLvl2DummyFieldIndex)); node.Update(); } } } if (e.Group.GroupingLevel == 1) { if (e.Group.Collapsed) { e.Group.NodesArrangedInOneRow = true; e.Group.NodesOptimized = true; e.Group.Update(); } else { e.Group.NodesArrangedInOneRow = false; e.Group.Update(); } } vcGantt1.SuspendUpdate(false); }
更多VARCHART XGantt實用教程敬請關注!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn