1

有没有人有 mpxj 和 outlince 代码与 ms 项目 2003 或 2007 一起使用?

我尝试使用以下代码导出大纲代码:

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>

所以在我看来,我错过了导出程序中的一些重要步骤?!

4

1 回答 1

1

我查看了 MPXJ 的源代码并做了自己的快速测试,看起来你没有做错任何事情。据我所知,它不支持 MS Project 所需的 OutlineCodes。

正如您所发现的,它将它们正常输出ExtendedAttributes,但 MSPDI 架构定义了一组OutlineCode专门用于存储这些元素的元素(如您在 MS Project 创建的 xml 中所见)。实际上,该OutlineCode元素存储对项目中定义的查找值的引用,而不是直接存储该值。

最好的办法是在 SourceForge 上记录一个错误,然后让 Jon(创建者)看看。

于 2012-03-26T17:35:30.367 回答