如何将项目任务详细信息列表添加到'net.sf.mpxj.Task任务'在C#

问题描述:

我有ac#对象具有ProjectInfo随着ProjectTasks,现在如何将这些projectTasks添加到'net.sf.mpxj 。任务'在C#如何将项目任务详细信息列表添加到'net.sf.mpxj.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); 

      } 

在此先感谢。

一览关于.MPP,.MPX文件格式

http://mpxj.sourceforge.net/howto-start.html

一个例子代码来写.MPX文件格式

https://iniy.org/?p=337

没有创建MPXJ对象正确。请按照以下代码创建MPXJ任务。这里我正在创建MS Project的XML格式的MSPDI文件。

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(); 
     } 
    } 

我做了很好的研究。请让我知道如果需要更多的帮助。