C# MSProject.Task创建子任务
我正在尝试创建一个动态MPP文件。 我遇到的问题是在其他任务(子任务)上创建任务 我正在尝试这段代码,在插入第一个任务后,所有其他主要任务都是这一任务的子任务,我想要的子任务以一种奇怪的方式出现C# MSProject.Task创建子任务,c#,project,task,C#,Project,Task,我正在尝试创建一个动态MPP文件。 我遇到的问题是在其他任务(子任务)上创建任务 我正在尝试这段代码,在插入第一个任务后,所有其他主要任务都是这一任务的子任务,我想要的子任务以一种奇怪的方式出现 Task_0 Task_1 Task_2 Task_3 Task_4 SubTaskName_4 SubTaskName_3 SubT
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();
}
Microsoft.Office.Interop.MSProject.Task;
字符串t1,t2;
对于(int i=0;i<5;i++)
{
task=project.Tasks.Add(
“任务”+i.ToString(),i+1);
t1=“2012年12月5日”;
t2=“12/12/2012”;
/*TimeSpan=Convert.ToDateTime(t2)-Convert.ToDateTime(t1);
task.Duration=span.Hours*/
task.Start=t1;
task.Finish=t2;
task.ResourceNames=“某人”;
//task.OutlineLevel=1;
task.Text1=“task_TestTask”+i.ToString();
//我也试过这个
/*Microsoft.Office.Interop.MSProject.Task newTask=Task.OutlineChildren.Add(“otraSubTarea_u”+i.ToString(),Task.ID+1);
newTask.Start=“12/12/2012”;
newTask.Finish=“12/12/2012”;
newTask.OutlineIndent()*/
Microsoft.Office.Interop.MSProject.Task子任务=project.Tasks.Add(“子任务名称”+i.ToString(),任务ID+1);
子任务Start=“05/12/2012”;
子任务.Finish=“12/12/2012”;
子任务。OutlineIndent();
}
我找不到太多关于这个的信息。不确定你是否已经解决了这个问题,但是你的帖子帮助我解决了一个缩进问题,所以这里有一个答案,希望也能解决你的问题 我认为以上两个问题可以解决
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;
}
您可以将这些索引组合在一起,只需将位置索引称为基于命名索引的计算(例如iTaskIndex=((iTaskNameIndex*2)-1)),但我认为使用两个单独的索引,问题和代码会更清楚
Task_1
SubTaskName_1
Task_2
SubTaskName_2
Task_3
SubTaskName_3
Task_4
SubTaskName_4
Task_5
SubTaskName_5