是否有人拥有用于ms项目2003或2007的mpxj和outince代码?
我尝试使用以下代码导出大纲代码:
ProjectFile project = new ProjectFile();
Task task = project.addTask();
task.setOutlineCode1("outlineCode1");
生成的xml看起来像这样:
<Project xmlns="http://schemas.microsoft.com/project">
..
<ExtendedAttributes>
<ExtendedAttribute>
<FieldID>188744096</FieldID>
<FieldName>Outline Code1</FieldName>
</ExtendedAttribute>
</ExtendedAttributes>
..
<Tasks>
<Task>
..
<ExtendedAttribute>
<FieldID>188744096</FieldID>
<Value>value</Value>
</ExtendedAttribute>
..
</Task>
</Tasks>
</Project>
但我在导入的项目中找不到任何大纲代码。。
当我手动将大纲代码添加到项目中时,生成的xml文件也与上面的不同:
<Project xmlns="http://schemas.microsoft.com/project">
..
<OutlineCodes>
<OutlineCode>
<FieldID>188744096</FieldID>
<FieldName>Outline Code1</FieldName>
<Values>
<Value>
<ValueID>1</ValueID>
<ParentValueID>0</ParentValueID>
<Value>value</Value>
</Value>
..
</Values>
..
</OutlineCode>
</OutlineCodes>
..
<ExtendedAttributes>
<ExtendedAttribute>
<FieldID>188744096</FieldID>
<FieldName>Outline Code1</FieldName>
</ExtendedAttribute>
</ExtendedAttributes>
..
<Tasks>
<Task>
..
<OutlineCode>
<UID>1</UID>
<FieldID>188744096</FieldID>
<ValueID>1</ValueID>
</OutlineCode>
..
</Task>
</Tasks>
</Project>
所以在我看来,我错过了出口程序中的一些重要步骤?!
我已经查看了MPXJ的源代码,并进行了自己的快速测试,看起来你没有做错什么。据我所知,它只是不支持MS Project所需要的OutlineCodes。
正如您所发现的,它将它们输出为普通的ExtendedAttributes
,但MSPDI模式定义了一组OutlineCode
元素,专门用于存储这些元素(如您在MS Project创建的xml中所见)。实际上,OutlineCode
元素存储对Project中定义的查找值的引用,而不是直接存储该值。
你最好的办法是在SourceForge上记录一个bug,让Jon(创建者)看看。