我正在尝试创建动态MPP文件。 我遇到的问题是在其他任务(子任务)上创建任务
我正在尝试使用这段代码,在我插入第一个任务之后,所有其他主要任务都是这一个的子项,我想要的子任务以奇怪的方式出现。
Task_0
Task_1
Task_2
Task_3
Task_4
SubTaskName_4
SubTaskName_3
SubTaskName_2
SubTaskName_1
SubTaskName_0
我想要这样
task 1
subtask 1
task 2
subtask 2
我的代码如下
Microsoft.Office.Interop.MSProject.Task task;
string t1, t2;
for (int i = 0; i < 5; i++)
{
task = project.Tasks.Add(
"Task_" + i.ToString(), i + 1);
t1 = "05/12/2012";
t2 = "12/12/2012";
/*TimeSpan span = Convert.ToDateTime(t2) - Convert.ToDateTime(t1);
task.Duration = span.Hours;*/
task.Start = t1;
task.Finish = t2;
task.ResourceNames = "Someone";
//task.OutlineLevel = 1;
task.Text1 = "Task_TestTask" + i.ToString();
//also tried with this one
/*Microsoft.Office.Interop.MSProject.Task newTask = task.OutlineChildren.Add("otraSubTarea_" + i.ToString(), task.ID + 1);
newTask.Start = "12/12/2012";
newTask.Finish = "12/12/2012";
newTask.OutlineIndent();*/
Microsoft.Office.Interop.MSProject.Task subTask = project.Tasks.Add("SubTaskName_" + i.ToString(), task.ID+1);
subTask.Start = "05/12/2012";
subTask.Finish = "12/12/2012";
subTask.OutlineIndent();
}
我找不到太多关于此的信息。
答案 0 :(得分:2)
不确定你是否已经解决了这个问题,但是你的帖子帮我解决了一个缩进问题,所以这里有一个答案,希望也可以解决你的问题。
我认为上面有两个问题可以解决
以下代码适用于我:
int iTaskIndex = 1;
for (int iTaskNameIndex = 1; iTaskNameIndex <= 5; iTaskNameIndex++)
{
Task task = project.Tasks.Add("Task_" + iTaskNameIndex.ToString(), iTaskIndex);
if (iTaskIndex > 1)
task.OutlineOutdent();
Task subTask = project.Tasks.Add("SubTaskName_" + iTaskNameIndex.ToString(), iTaskIndex + 1);
subTask.OutlineIndent();
iTaskIndex += 2;
}
插入新的父子任务对后,您需要
这给了我:
Task_1
SubTaskName_1
Task_2
SubTaskName_2
Task_3
SubTaskName_3
Task_4
SubTaskName_4
Task_5
SubTaskName_5
您可以将这些索引组合在一起,只需将位置索引作为基于命名索引的计算(例如iTaskIndex =((iTaskNameIndex * 2)-1)),但我认为问题和代码会更清晰两个单独的indeces