VARCHART XGantt 是一个交互式的甘特图控件,其模块化的设计让您可以创建满足您和您的客户所需求的应用程序。(我们领先的甘特图控件 VARCHART XGantt 可用于.NET,ActiveX 和 ASP.NET 应用程序。)使用 VARCHART XGantt,您便具有一个可以生成清晰、灵活的甘特图的健壮开发工具。这篇文章主要介绍 VARCHART XGantt 的用户手册(是.NET 版哦),如何提供数据,跟着小编来看一看吧~
对于要显示的活动和链接,VARCHART XGantt 需要提供数据。默认情况下,对于相关的通信使用两个表:
- NodeTable(也称为 Maindata)
- LinkTable(也称为关系)
在表单中放置 VARCHART XGantt 时,已经提前提供了基本字段。
Maindata 数据表的字段:
关系字段数据表:
需要手动定义所需的其他字段。您可以在设计时通过对话框管理数据表(下部)或在运行时通过对象 VcDataTableFieldCollection 的 Add(…)方法执行此操作。
如果您需要的表格多于默认情况下定义的表格,则可以在单击常规属性页面启用的扩展数据表后,在对话框管理数据表的上部创建表格。
VcDataRecordCollection 的 DataRecordByID()方法允许通过主键快速查找对象。
为了使活动和链接在入门示例中可见,您需要首先在数据表中输入一些记录。
这可以通过使用对象类型 VcDataRecordCollection 的 Add(…)方法来完成。EndLoading 方法完成了相应图表的数据输入。为此,请在表单的加载事件中输入以下代码行。
示例代码 VB.NET
Dim dataTable As VcDataTable
Dim dataRecCltn As VcDataRecordCollection
VcGantt1.ExtendedDataTablesEnabled = True
dataTable = VcGantt1.DataTableCollection.DataTableByName(“Maindata”)
dataRecCltn = dataTable.DataRecordCollection
dataRecCltn.Add(“1;Node 1;07.05.2010;;5”)
dataRecCltn.Add(“2;Node 2;14.05.2010;;5”)
dataRecCltn.Add(“3;Node 3;21.05.2010;;5”)
dataTable = VcGantt1.DataTableCollection.DataTableByName(“Relations”)
dataRecCltn = dataTable.DataRecordCollection
dataRecCltn.Add(“1;1;2”)
dataRecCltn.Add(“2;2;3”)
VcGantt1.EndLoading
示例代码 C#
vcGantt1.ExtendedDataTablesEnabled = true;
VcDataTable dataTable =
vcGantt1.DataTableCollection.DataTableByName(“Maindata”);
VcDataRecordCollection dataRecCltn = dataTable.DataRecordCollection;
dataRecCltn.Add(“1;Node 1;07.05.2010;;5”);
dataRecCltn.Add(“2;Node 2;14.05.2010;;5”);
dataRecCltn.Add(“3;Node 3;21.05.2010;;5”);
dataTable =
vcGantt1.DataTableCollection.DataTableByName(“Relations”);
dataRecCltn = dataTable.DataRecordCollection;
dataRecCltn.Add(“1;1;2”);
dataRecCltn.Add(“2;2;3”);
vcGantt1.EndLoading;
记录中的值由分号分隔。字段的顺序必须与数据定义中字段的顺序相对应。新记录必须具有明确的非空标识。记录中的日期必须与数据定义表中的 DateFormat 定义相对应。持续时间的解释取决于时间单位的设置。它预先设置为 days,您可以在常规属性页面上修改它们。
对于表和常规属性页上的每个对话框,一致地定义 Date 输出格式。
从 CSV 文件加载数据
或者,您也可以从 CSV 文件加载数据。文件的结构必须符合以下方案:
示例代码
1;Node 1;07.05.2010;;5;
2;Node 2;14.05.2010;;5;
3;Node 3;21.05.2010;;5;
1;1;2;
2;2;3;
每条记录都有自己的行。行的内容对应于对象类型 VcDataRecordCollection 的 Add(…)方法传递的参数。
首先列出 Maindata 数据表的记录,然后列出 Relation 数据表的记录。使用 表名 标记记录组的开头。
如果您保存此类文件,例如名称为 intro.csv,则可以按如下方式导入数据:
示例代码 VB.NET
VcGantt1.Open(“c:intro.csv”)
示例代码 C#
vcGantt1.Open(@”c:intro.csv”);
指定表示的时间段
到目前为止,您将看不到任何活动,因为时间尺度尚未调整到相应的时间段。时间刻度的显示范围可以通过属性 TimeScaleStart 和 TimeScaleEnd 定义,或者通过对象 VcGantt 的 OptimizeTimeScaleStartEnd(…)方法从数据确定。
示例代码 VB.NET
VcGantt1.TimeScaleEnd = New DateTime(2011, 1, 1)
VcGantt1.TimeScaleStart = New DateTime(2010, 5, 4)
示例代码 C#
vcGantt1.TimeScaleEnd = new DateTime(2011,1,1);
vcGantt1.TimeScaleStart =new DateTime(2010,5,4);
您可以在下面找到我们的入门示例所需的代码。
示例代码 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
Dim dataTable As VcDataTable
Dim dataRecCltn As VcDataRecordCollection
vcGantt1.ExtendedDataTablesEnabled = True
dataTable = VcGantt1.DataTableCollection.DataTableByName(“Maindata”)
dataRecCltn = dataTable.DataRecordCollection
dataRecCltn.Add(“1;Node 1;03.05.2010;;5”)
dataRecCltn.Add(“2;Node 2;08.05.2010;;5”)
dataRecCltn.Add(“3;Node 3;15.05.2010;;5”)
dataTable = VcGantt1.DataTableCollection.DataTableByName(“Relations”)
dataRecCltn = dataTable.DataRecordCollection
dataRecCltn.Add(“1;1;2”)
dataRecCltn.Add(“2;2;3”)
VcGantt1.EndLoading()
VcGantt1.OptimizeTimeScaleStartEnd(3)
End Sub
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Resize
VcGantt1.Width = ClientSize.Width – VcGantt1.Left
VcGantt1.Height = ClientSize.Height – VcGantt1.Top
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.ExtendedDataTablesEnabled = true;
VcDataTable dataTable =
vcGantt1.DataTableCollection.DataTableByName(“Maindata”);
VcDataRecordCollection dataRecCltn = dataTable.DataRecordCollection;
dataRecCltn.Add(“1;Node 1;03.05.2010;;5”);
dataRecCltn.Add(“2;Node 2;08.05.2010;;5”);
dataRecCltn.Add(“3;Node 3;15.05.2010;;5”);
dataTable =
vcGantt1.DataTableCollection.DataTableByName(“Relations”);
dataRecCltn = dataTable.DataRecordCollection;
dataRecCltn.Add(“1;1;2”);
dataRecCltn.Add(“2;2;3”);
vcGantt1.EndLoading();
vcGantt1.OptimizeTimeScaleStartEnd(3);
}
private void Form1_Resize(object sender, System.EventArgs e)
{
vcGantt1.Width = ClientSize.Width – vcGantt1.Left;
vcGantt1.Height = ClientSize.Height – vcGantt1.Top;
}
如果您现在运行该程序,结果应如下图所示。