翻譯|使用教程|編輯:莫成敏|2019-09-04 11:33:02.583|閱讀 436 次
概述:在本教程中,我們將演示如何編寫直方圖,是VARCHART XGantt .NET版本的教程,主要分為8個步驟來描述,本篇文章是該教程的下半部分內容。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
VARCHART XGantt,用于工業4.0項目管理、交互式的甘特圖絕佳解決方案,世界級甘特圖大師。它是一個交互式的甘特圖控件,其模塊化的設計讓您可以創建滿足您和您的客戶所需求的應用程序。(我們領先的甘特圖控件VARCHART XGantt可用于.NET,ActiveX和ASP.NET應用程序。)
在本教程中,我們將演示如何編寫直方圖,是VARCHART XGantt .NET版本的教程,主要分為8個步驟來描述,本篇文章是該教程的下半部分內容(上部分內容查看),內容緊接上文從第七個步驟開始,跟著小編來看看吧~
步驟7:在此步驟中,將為直方圖創建四條曲線:容量曲線、未標記活動的曲線、標記活動的曲線和填充區域的輔助曲線。單擊屬性頁布局上的管理直方圖...以調用相應的對話框。
甘特圖中可能同時存在多個直方圖。每個直方圖都有一個ist自己的數字刻度,并包含自己的曲線。
現在請定義數字刻度的起始值和結束值。單擊End value列的Histogram_1字段,然后輸入6。
現在,請編輯直方圖。為此,請單擊對話框頂部右側的“編輯”按鈕。
“曲線1”應代表容量曲線(紅色)。 “曲線2”應表示未標記的節點,而“曲線3”應表示標記的節點。 “曲線4”是一條輔助曲線,用于提供不足區域的綠色背景。一條曲線已經存在。請創建另外三條曲線并根據插圖定義其屬性。
對于曲線,最多可以指定兩條參考曲線。曲線形成具有ist參考曲線的區域,可以為其分配顏色和圖案(請參見下面的草圖)。在第一條參考曲線中,在曲線上方和下方形成的所有零件都加到該區域(頂部草圖)。第二個參考曲線,只有那些部分添加到曲線下方形成的區域,即Y值小于原始曲線的值(底部草圖)。另外,由第二參考曲線形成的區域以更高的優先級顯示。我們將在下面看到,直方圖會產生什么后果。
容量曲線(曲線1)將從列表中接收其值,我們稍后將通過編程代碼提供該列表。因此,請在字段Source中將其數據源設置為via API。因此,不需要為可以從中獲取數據的節點添加額外的過濾器。
請將線型設置為粗紅線。該曲線的值不應加到另一條曲線的值上;因此,字段堆棧參考保持為空。此外,容量曲線并非旨在形成具有另一條曲線的區域,因此兩個填充參考及其填充圖案保持為空。請單擊對話框中的相應字段,按照說明創建曲線1。
“曲線2”表示未選擇的節點,并由名為“未選擇的節點”的層組成。不需要用于進一步選擇的過濾器。請為曲線選擇藍線顏色。曲線值不會添加到另一條曲線的值,因此堆棧參考值保持為空。該曲線應該與X軸形成一個區域,因此請在“填充參考”字段中選擇值Flatline。
該曲線由非選定節點組成,還應以特殊方式指示其超出容量曲線以標記生產系統的瓶頸。因此,一旦其Y值超過曲線1的值,下面的區域應畫上陰影線。因此,請將“曲線1”設置為其第二條參考曲線,然后選擇陰影填充圖案。
“曲線3”應代表所選節點。因此,請將其命名為“Selected Nodes”的圖層作為其數據源。不需要過濾器。請指定淺灰色線條顏色。由于所選節點應顯示在未選擇節點上方,因此必須將它們的值添加到非選定節點中。因此,請選擇曲線2作為堆棧參考。相同的曲線也用作第一參考曲線,因為所選節點在視覺上應與未選擇的節點不同。作為填充圖案,請在黃色背景上選擇灰色交叉影線圖案。
形成的區域將在曲線2的上方和下方可見。此外,它應出現在容量曲線的上方;因此請將曲線1指定為第二條參考曲線,并用相同的顏色和圖案填充該區域。如果選定的節點超過容量曲線,它們將以與容量曲線下方相同的顏色和模式出現(您可以通過在此處指定例如紅色來區分容量曲線上方和下方的所選節點)。
通過“曲線4”,我們將定義一個區域,表示容量曲線和下面的節點樁之間的淺綠色背景。它表示生產系統的可用資源。它的底部被未選擇的節點限制,因此請選擇它們作為數據源。在頂部,該區域受容量曲線的限制,您可以將其設置為第一個參考曲線。
問題:為什么曲線4的區域不會隱藏所選節點?答案:因為此對話框顯示的曲線列表中存在優先級。底部列出的曲線的優先級低于頂部列出的曲線。這就是為什么曲線3的區域顯示在曲線4的區域頂部的原因。您可以通過窗口頂部的右箭頭修改優先級。
第8步:在最后一步中,我們將提供容量曲線的值。為此,請修改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 Sub
示例代碼C#
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"); }
現在,請運行該程序并標記一項活動。您可以通過直方圖中黃色背景上的灰色陰影部分立即識別,活動在顯示的大部分工作負荷中占據哪個部分。
如果移動活動,工作負載將發生變化,您可以識別由交互引起的容量過載和不足。
直方圖中的日歷網格
您可以將一個或多個日歷網格分配給直方圖,以便甘特圖中的不同日歷網格也可以在直方圖中顯示。
要將自己的日歷網格分配給直方圖,必須滿足三個條件:
1、必須為直方圖分配日歷
2、必須打開日歷網格
3、必須定義一個外觀,以顯示日歷網格
已分配日歷,日歷網格已打開
相應的API調用是:
示例代碼VB.NET
// assigning the calendar to the histogram (by the calendar name) histogram.calendarName = group.DataField(14) // switching the calendar grid on histogram.ShowCalendarGrids = True // setting the histogram visible histogram.Visible = True
作為直方圖的日歷網格,VARCHART XGantt在時間刻度的第一部分中采用第一個不可見的日歷網格,如果沒有其他的存在。這是在甘特圖中以分組方式使用的相同日歷網格:
因此,日歷網格將在甘特圖中顯示與直方圖中相同的外觀。在下面的示例中,它是一個日歷網格,顯示每個組的不同模式(分組日歷網格):
如果您將另一個日歷網格設置為時間刻度部分,VARCHART XGantt將使用此日歷網格作為其直方圖:
通過使用第二個日歷網格,您可以指定與甘特圖中的日歷網格相比的不同外觀。在我們的例子中,它顯示了不同的顏色:
本教程內容已完結,相關內容請點擊下面的文章查看~
金喜正規買球相關的文章:
VARCHART XGantt_v5.1用戶手冊:如何創建直方圖(.NET版)上
VARCHART XGantt_v5.1用戶手冊:如何創建直方圖(ActiveX版)(上)
VARCHART XGantt_v5.1用戶手冊:如何創建直方圖(ActiveX版)(下)
VARCHART XGantt_v5.1用戶手冊:如何使用過濾器(.NET版)
VARCHART XGantt_v5.1用戶手冊:如何使用過濾器(ActiveX版)
想要購買VARCHART XGantt正版授權,或了解更多產品信息請點擊
掃描關注慧聚IT微信公眾號,及時獲取最新動態及最新資訊
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn