使用mpxj将大纲代码编写到xml文件中,并将其导入到ms项目2003/2007中



是否有人拥有用于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(创建者)看看。

相关内容

  • 没有找到相关文章

最新更新