Как добавить список деталей задачи проекта в "задачу net.sf.mpxj.Task" в C#
У меня есть объект aC#, имеющий ProjectInfo с ProjectTasks, теперь, как я могу добавить эти projectTasks к "net.sf.mpxj.Task task" в C#
Пока я создаю новый объект для net.sf.mpxj.Task, он показывает ошибку, что "тип net.sf.mpxj.Task не имеет определенных конструкторов", поэтому он не может создать новый объект, тогда как я могу добавить projectTasks,
Ниже приведен пример кода, который не работает:
List<net.sf.mpxj.Task> tasks=new List<net.sf.mpxj.Task>();
foreach (var pTask in projectInfo.ProjectTasks)
{
net.sf.mpxj.Task task = new net.sf.mpxj.Task();
task.TaskId=ptask.TaskId;
task.Name = pTask.TaskName;
task.Notes = pTask.Description;
task.Start=pTask.EstimatedStartDate.ToJavaDate();
task.Finish = pTask.EstimatedEndDate.ToJavaDate();
task.Estimated = true;
task.Priority = null;
task.Type = null;
tasks.Add(task);
}
заранее спасибо.
2 ответа
Вы не создаете объект MPXJ правильно. Пожалуйста, следуйте следующему коду для создания задач MPXJ. Здесь я создаю MSPDI-файл в формате XML для MS Project.
ProjectFile project = new ProjectFile();
foreach (var pTask in projectInfo.ProjectTasks)
{
Task task = project.AddTask();
task.Name = pTask.TaskName;
task.Notes = pTask.Description;
task.Start=pTask.EstimatedStartDate.ToJavaDate();
task.Finish = pTask.EstimatedEndDate.ToJavaDate();
task.Estimated = true;
task.Priority = null;
task.Type = null;
}
TaskContainer taskCon = project.AllTasks;
if (taskCon.Size() >= 1)
{
java.io.OutputStream outs = null;
try
{
// string serverPath = Server.MapPath(fileName);
if (System.IO.File.Exists(fullFileName))
{
System.IO.File.Delete(fullFileName);
}
MSPDIWriter writer = new MSPDIWriter();
outs = new java.io.FileOutputStream(fullFileName);
writer.Write(project, outs);
outs.close();
if (System.IO.File.Exists(fullFileName))
{
string fileName = "ProjectTask.xml";
WebClient client = new WebClient();
HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.ClearContent();
response.ClearHeaders();
response.Buffer = true;
response.ContentType = "Application/msproject";
response.AddHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\"");
byte[] data = client.DownloadData(fullFileName);
response.BinaryWrite(data);
Response.End();
}
}
catch (System.Exception ex)
{
}
finally
{
if (outs != null)
outs.close();
}
}
Я провел хорошее исследование в этом. Пожалуйста, дайте мне знать, если вам нужна дополнительная помощь по этому вопросу.
Краткий обзор форматов файлов.MPP, .MPX
http://mpxj.sourceforge.net/howto-start.html
Пример кода для записи в формате.MPX