翻譯|使用教程|編輯:楊鵬連|2021-01-14 10:04:59.353|閱讀 259 次
概述:VARCHART XGantt是一個交互式甘特圖組件,可生成清晰,靈活的甘特圖。本文介紹了 XGantt .NET如何創建直方圖。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
甘特圖(Xgantt)從1998年的第一個商用版本開始就致力于計劃編制和項目管理方面控件的研究和開發,經過20多年的積累和沉淀,目前可為軟件開發商和最終用戶提供最頂級的計劃編制和項目管理的控件產品,幫助用戶快速的整合項目管理軟件所需的甘特圖,網絡圖,資源柱狀圖,日程日歷,資源調度等功能模塊,并提供全方位的支持和服務。
VARCHART XGantt是一款功能強大的甘特圖控件,其模塊化的設計讓您可以創建滿足需要的應用程序。XGantt可用于.NET,ActiveX和ASP.NET應用程序,可以快速、簡單地集成到您的應用程序中,幫助您識別性能瓶頸、避免延遲以及高效利用資源,使復雜數據變得更加容易理解。
VARCHART XGantt在市場上已有近30年的歷史,它提供了最完善的C#Gantt圖表控件,可用于構建現代而又可靠的行業資源調度應用程序。
步驟5:在這一步驟中,創建了兩個不同的過濾器,將選定和未選定的活動分開。請調用 "對象 "屬性頁,點擊 "過濾器... "按鈕,進入 "管理過濾器 "對話框。通過點擊按鈕創建兩個新的過濾器,并將它們命名為 "已選擇 "和 "未選擇"。
現在,請設置過濾條件。對于 "未選擇 "過濾器,請指定條件 "選擇不等于1"。由于這個條件,只有未選擇的節點才會被過濾?,F在請標記 "未選擇 "過濾器,并點擊對話框頂部右側的按鈕。它將調用編輯過濾器對話框。在 "字段名 "欄中選擇 "選定 "字段,在 "操作者 "欄中選擇 "不等于",在 "比較值 "欄中輸入 "1"。通過 "確定 "退出對話框。
現在,用同樣的方法將條件“Selected = 1”分配給“Selected”過濾器。
步驟6:在這個步驟中,我們將為被選中和未選中的節點定義兩種不同的外觀,以與篩選器結合。
請選擇屬性頁對象,然后點擊對象圖層....這將彈出指定欄外觀的對話框。請直接輸入新名稱,將層“開始-結束”重命名為“未選擇的節點”輸入列名中的字段。請找到列濾鏡,并將濾鏡指定為“未被選中”。通過點擊按鈕復制圖層并命名為“Selected Nodes”。為圖層指定“Selected”濾鏡。
兩層看起來還是一樣的。雙擊“層設計”列對應的字段,可以修改“已選節點”層的設計。對話框編輯層將彈出。請選擇一個十字艙口圖案,有黃色底色或圖案顏色2和黑色圖案顏色。
為了確保非工作間隔的周末顯示為一行而不是條,需要在Nodes屬性頁上設置非工作間隔的選項層。
步驟7:在此步驟中,直方圖將創建四條曲線:容量曲線、未標記活動曲線、已標記活動曲線和填充區域的輔助曲線。點擊管理直方圖…在屬性頁布局中調用相應的對話框。
幾個直方圖可以同時出現在甘特圖中。每個直方圖都有自己的數字刻度,并包含自己的曲線。
現在請定義數字刻度的起始值和結束值。單擊“End value”列的“histogram gram_1”,輸入“6”。
現在,請編輯柱狀圖。為此,請單擊對話框頂部右側的編輯按鈕。
“曲線1”應代表容量曲線(紅色)。“曲線2”對已標記節點進行總結,“曲線3”表示未標記節點?!扒€4”是輔助曲線,為短缺地區提供綠色背景。
一條曲線已經存在。請再創建三條曲線,并根據圖示定義它們的屬性。
一條曲線最多可指定兩條參考曲線。一條曲線形成了有ist參考曲線的區域,可以指定顏色和圖案(見下面的草圖)。第一條參考曲線的所有部分曲線下面的加起來就是面積(上圖)。在第二條參考曲線中,只有在曲線下方的面積上增加的部分,即y值小于原始曲線(下圖)。此外,由第二條參考曲線形成的區域將以更高的優先級顯示。我們將在下面的柱狀圖中看到結果。
容量曲線(曲線1)將從一個列表中接收它的值,我們稍后將通過編程代碼提供這個列表。因此,請在source字段中將其數據源設置為via API。因此,一個額外的過濾器可以從中獲取數據的節點不需要。
請將線條類型設置為粗紅線。該曲線的值不得與其他曲線的值相加;因此,字段堆棧引用仍然為空。此外,容量曲線不打算形成一個面積與另一條曲線,因此兩個填充引用和它們的填充模式仍然是空的。請按對話框中相應的字段創建曲線1。
曲線2表示未被選中的節點,由名為“未被選中節點”的層中的值組成。不需要篩選器進行進一步的選擇。請為曲線選擇一種藍色的線顏色。曲線值不會添加到另一條曲線的值,因此堆棧引用保持為空。曲線應該與x軸形成一個區域,所以請在字段填充參考選擇值Flatline。
這條曲線由未選擇的節點組成,它還應該以一種特殊的方式表示超過容量曲線的位置,以便標記生產系統的瓶頸。因此,一旦它的y值超過曲線1的y值,就開始繪制曲線1下面的區域。所以請設置曲線1作為它的第二個參考曲線,并選擇一個陰影填充模式。
“曲線3”表示所選節點。因此,請將層命名為“已選節點”作為其數據源。不需要過濾器。請分配一個淺灰色的線顏色。因為選擇的節點將被顯示在非選中節點之上,它們的值必須添加到非選中節點的值中。所以請選擇曲線2作為堆棧參考。同一條曲線也作為第一條參考曲線,因為被選中的節點在視覺上與未被選中的節點不同。作為填充圖案,請選擇一個灰色十字圖案在黃色背景上。
形成的區域將在曲線2的上方和下方可見。此外,還應出現在容量曲線以上;因此,請指定曲線1作為第二條參考曲線,用相同的顏色和圖案填充該區域。如果
選中的節點高于容量曲線,它們將以與容量曲線下方相同的顏色和圖案出現(您可以通過指定一個紅色來區分容量曲線上方和下方的選中節點顏色)。
通過曲線4,我們將定義一個區域,代表容量曲線和下面的節點堆之間的淺綠色背景。表示生產系統的可用資源。它的底部受到了限制未選中的節點,因此請選擇它們作為數據源。在頂部,面積受到容量曲線的限制,請設置為第一條參考曲線。
問:為什么曲線4的面積不隱藏所選的節點?答:因為在這個對話框所呈現的曲線列表中有一個優先級。列出在底部的曲線比列出在頂部的曲線優先級低。這就是為什么曲線3的區域顯示在曲線區域的頂部
4. 您可以通過窗口頂部右側的箭頭修改優先級。
第八步:
在最后一步,我們將提供容量曲線的值。為此,請修改Load事件中的代碼,如下所示:
示例代碼VB.NET
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load VcGantt1.Width = ClientSize.Width - VcGantt1.Left VcGantt1.Height = ClientSize.Height - VcGantt1.Top VcGantt1.InsertNodeRecord("1;Node 1;07.05.2007;;5") VcGantt1.InsertNodeRecord("2;Node 2;09.05.2007;;5") VcGantt1.InsertNodeRecord("3;Node 3;10.05.2007;;6") VcGantt1.InsertNodeRecord("4;Node 4;17.05.2007;;10") VcGantt1.InsertNodeRecord("5;Node 5;22.05.2007;;3") VcGantt1.InsertNodeRecord("6;Node 6;23.05.2007;;1") VcGantt1.EndLoading() VcGantt1.OptimizeTimeScaleStartEnd(3) 'calculate end date Dim node As VcNode For Each node In VcGantt1.NodeCollection setNodeEndDate(node) Next Dim histogram As VcHistogram Dim curve As VcCurve histogram = VcGantt1.HistogramCollection.FirstHistogram curve = histogram.CurveCollection.CurveByName(" Curve1 ") curve.PointsEquidistant = False curve.SetValues("01.05.2007", "2") curve.SetValues("05.05.2007", "0") curve.SetValues("07.05.2007", "2") curve.SetValues("12.05.2007", "0") curve.SetValues("14.05.2007", "4") curve.SetValues("19.05.2007", "0") curve.SetValues("21.05.2007", "2") curve.SetValues("26.05.2007", "0") curve.SetValues("28.05.2007", "2") End Subc#示例代碼
private void Form1_Load(object sender, System.EventArgs e) { vcGantt1.Width = ClientSize.Width - vcGantt1.Left; vcGantt1.Height = ClientSize.Height - vcGantt1.Top; vcGantt1.InsertNodeRecord("1;Node 1;07.05.2007;;5"); vcGantt1.InsertNodeRecord("2;Node 2;09.05.2007;;5"); vcGantt1.InsertNodeRecord("3;Node 3;10.05.2007;;6"); vcGantt1.InsertNodeRecord("4;Node 4;17.05.2007;;10"); vcGantt1.InsertNodeRecord("5;Node 5;22.05.2007;;3"); vcGantt1.InsertNodeRecord("6;Node 6;23.05.2007;;1"); vcGantt1.EndLoading(); vcGantt1.OptimizeTimeScaleStartEnd(3); // calculate end date foreach (VcNode node in vcGantt1.NodeCollection) { SetNodeEndDate(node); } VcHistogram histogram = vcGantt1.HistogramCollection.FirstHistogram(); VcCurve curve = histogram.CurveCollection.CurveByName("Curve 1"); curve.PointsEquidistant = false; curve.SetValues(Convert.ToDateTime("01.05.2007"),"2"); curve.SetValues(Convert.ToDateTime("05.05.2007"),"0"); curve.SetValues(Convert.ToDateTime("07.05.2007"),"2"); curve.SetValues(Convert.ToDateTime("12.05.2007"),"0"); curve.SetValues(Convert.ToDateTime("14.05.2007"),"4"); curve.SetValues(Convert.ToDateTime("19.05.2007"),"0"); curve.SetValues(Convert.ToDateTime("21.05.2007"),"2"); curve.SetValues(Convert.ToDateTime("26.05.2007"),"0"); curve.SetValues(Convert.ToDateTime("28.05.2007"),"2"); }
現在,請運行程序并標記一個活動。通過直方圖中黃色背景上的灰色陰影部分,您可以立即識別出該活動在大部分工作負載中所占的部分顯示出來。
如果您移動了活動,那么工作負載將會改變,并且您可以識別由您的交互引起的容量過載和不足。
想要了解甘特圖或慧都APS系統,請登錄慧都網,解決您的問題!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: