通过 C# 的 MPXJ 读取 P6 活动 ID(.xer 和 xml)

本文关键字:xer xml ID 活动 MPXJ 读取 P6 通过 | 更新日期: 2023-09-27 18:31:03

MPXJ 版本:5.1.17

Q1: 如果我将 p6 文件导出到 .xer .当我使用 MPXJ 读取文件时,我在 c# 中得到了乱码文本。(原来是中文文本),但是如果我将p6文件导出为XML格式,则可以在c#中使用MPXJ获得正确的中文文本。有人有这样的经历吗?

Q2:如何使用 MPXJ 获取 P6 活动 ID?Task.ID 的返回类型是整数.. 但 P6 中的 ID 是字符串。当我打电话给 MPXJ 时,我得到了

ID:6//在XML中,它是"A1010",我怎样才能得到"A1010"?

示例 XML 片段

<Activity>
        <ActualDuration>0</ActualDuration>
        <ActualFinishDate xsi:nil="true" />
        <ActualLaborCost>0</ActualLaborCost>
        <ActualLaborUnits>0</ActualLaborUnits>
        <ActualNonLaborCost>0</ActualNonLaborCost>
        <ActualNonLaborUnits>0</ActualNonLaborUnits>
        <ActualStartDate xsi:nil="true" />
        <ActualThisPeriodLaborCost>0</ActualThisPeriodLaborCost>
        <ActualThisPeriodLaborUnits>0</ActualThisPeriodLaborUnits>
        <ActualThisPeriodNonLaborCost>0</ActualThisPeriodNonLaborCost>
        <ActualThisPeriodNonLaborUnits>0</ActualThisPeriodNonLaborUnits>
        <AtCompletionDuration>8</AtCompletionDuration>
        <AtCompletionExpenseCost>0</AtCompletionExpenseCost>
        <AtCompletionLaborCost>0</AtCompletionLaborCost>
        <AtCompletionLaborUnits>0</AtCompletionLaborUnits>
        <AtCompletionNonLaborCost>0</AtCompletionNonLaborCost>
        <AtCompletionNonLaborUnits>0</AtCompletionNonLaborUnits>
        <AutoComputeActuals>0</AutoComputeActuals>
        <CalendarObjectId>178</CalendarObjectId>
        <DurationPercentComplete>0</DurationPercentComplete>
        <DurationType>Fixed Duration and Units</DurationType>
        <ExpectedFinishDate xsi:nil="true" />
        <ExternalEarlyStartDate xsi:nil="true" />
        <ExternalLateFinishDate xsi:nil="true" />
        <Feedback />
        <FinishDate>2016-01-18T16:00:00</FinishDate>
        <GUID>{255EF498-16AB-5041-B86B-F6F027FB3DF0}</GUID>
        <Id>A1010</Id>
        <IsNewFeedback>0</IsNewFeedback>
        <LevelingPriority>Normal</LevelingPriority>
        <Name>使用教學語系整合</Name>
        <NonLaborUnitsPercentComplete>0</NonLaborUnitsPercentComplete>
        <NotesToResources />
        <ObjectId>101718</ObjectId>
        <PercentComplete>0</PercentComplete>
        <PercentCompleteType>Duration</PercentCompleteType>
        <PhysicalPercentComplete>0</PhysicalPercentComplete>
        <PlannedDuration>8</PlannedDuration>
        <PlannedFinishDate>2016-01-18T16:00:00</PlannedFinishDate>
        <PlannedLaborCost>0</PlannedLaborCost>
        <PlannedLaborUnits>0</PlannedLaborUnits>
        <PlannedNonLaborCost>0</PlannedNonLaborCost>
        <PlannedNonLaborUnits>0</PlannedNonLaborUnits>
        <PlannedStartDate>2016-01-18T08:00:00</PlannedStartDate>
        <PrimaryConstraintDate xsi:nil="true" />
        <PrimaryConstraintType />
        <PrimaryResourceObjectId xsi:nil="true" />
        <ProjectObjectId>4508</ProjectObjectId>
        <RemainingDuration>8</RemainingDuration>
        <RemainingEarlyFinishDate>2016-01-18T16:00:00</RemainingEarlyFinishDate>
        <RemainingEarlyStartDate>2016-01-18T08:00:00</RemainingEarlyStartDate>
        <RemainingLaborCost>0</RemainingLaborCost>
        <RemainingLaborUnits>0</RemainingLaborUnits>
        <RemainingLateFinishDate xsi:nil="true" />
        <RemainingLateStartDate xsi:nil="true" />
        <RemainingNonLaborCost>0</RemainingNonLaborCost>
        <RemainingNonLaborUnits>0</RemainingNonLaborUnits>
        <ResumeDate xsi:nil="true" />
        <ReviewStatus>OK</ReviewStatus>
        <SecondaryConstraintDate xsi:nil="true" />
        <SecondaryConstraintType />
        <StartDate>2016-01-18T08:00:00</StartDate>
        <Status>Not Started</Status>
        <SuspendDate xsi:nil="true" />
        <Type>Task Dependent</Type>
        <UnitsPercentComplete>0</UnitsPercentComplete>
        <WBSObjectId>26012</WBSObjectId>
    </Activity>

通过 C# 的 MPXJ 读取 P6 活动 ID(.xer 和 xml)

请参阅我上面关于报告读取任务名称时的错误的评论。为了回答第二个问题,活动 ID 映射到任务的 Text1 属性中:task.getText(1)应该得到你想要的东西。