什么是一 .mpx 文件?
扩展名为 .mpx 的文件是 Microsoft Exchange 文件格式。 MPX 文件格式由 Microsoft Project (MSP) 开发,以促进 MSP 与支持 MPX 文件格式的其他应用程序之间的项目信息交换,包括 Primavera Project Planner、Sciforma 和 Timerline Precision Estimating。使用 MPX 文件,您可以将各种信息从项目传输到不同的系统,例如详细的资源分配信息、日历信息或“项目信息"对话框中的信息。
Microsoft Project 4.0 引入了对创建和读取 MPX 文件格式的支持,这些格式在 Microsoft Project 98 中继续使用。但是,对创建 MPX 文件的支持已经停止了 Microsoft Project 2000 的发布,并且 Microsoft Project 2010 之前的版本仅支持 MPX 读取。 MSP 2010 之后的版本不支持 MPX 文件格式。
MPX 文件格式
本节概述了 MPX 文件规范。完整的规范可以在这个知识库中找到文章,详情可参考。
### 记录 ###
MPX 文件的记录包含项目的信息。有不同类型的记录,每个记录都有自己的顺序。每个记录类型由其记录号标识。对于 MPX 文件,必须包含文件创建记录类型。其他类型的记录不是强制性的。下表显示了所有记录类型、它们的记录编号以及每种类型可能包含在 MPX 文件中的记录数。 MPX 文件中包含的记录必须遵循表格顺序,并在任何地方插入注释。
记录名称 | 记录编号 | 最大记录数 |
---|---|---|
文件创建(必需) | 无 | 1 |
货币设置 | 10 | 1 |
默认设置 | 11 | 1 |
日期和时间设置 | 12 | 1 |
基本日历定义 | 20 | 250 |
基本日历小时 | 25 | 每个基本日历定义记录 7 个 |
基本日历例外 | 26 | 每个基本日历定义记录 250 个 |
项目标题 | 30 | 1 |
文本资源表定义 | 140 | 1-(或者您可以使用数字资源表定义记录) |
数值资源表定义 | 41 | 1 |
资源 | 50 | 9,999 |
资源说明 | 51 | 每个资源记录 1 个 |
资源日历定义 | 55 | 每个资源记录 1 个 |
资源日历小时 | 56 | 每个资源日历 7 个 |
资源日历异常 | 57 | 250 每个资源日历 |
文本任务表定义 | 60 | 1(或者您可以使用数字任务表定义记录) |
数值任务表定义 | 61 | 1 |
任务 | 70 | 9 |
任务笔记 | 71 | 每个任务记录 1 个 |
重复任务 | 72 | 每个任务记录 1 个 |
资源分配 | 75 | 每个任务记录 100 |
分配工作组字段 | 76 | 每个作业记录 1 个 |
项目名称 | 80 | 500 |
DDE 和 OLE 客户端链接 | 81 | 500 |
评论 | 0 | 不限 |
文件结构###
MPX 文件由上述记录组成,这些记录以预先设定的方式排列在文件内。有关这些记录类型的详细信息讨论如下:
文件创建记录 (FCR): 这是强制性记录,其目的是识别:
- 文件格式 (MPX)
- 列出文件中使用的分隔符
- 用于创建文件的程序和版本号
- 文件中使用的 MPX 文件格式的版本号
- 用于创建文件的代码页
这必须是文件中的第一条记录。从 Microsoft Project 导出时,列表分隔符在 Windows 控制面板的区域设置项中指定。 FCR 记录包括以下字段:
- MPX 后跟列表分隔符
- 程序名称/标识符
- 文件版本号
- 代码页(850、437、MAC、ANSI)
例如,记录可以包含信息 MPX, Microsoft Project, 3.0,它指定逗号用作此 MPX 文件中的列表分隔符。文件中使用的 MPX 格式的版本是从 Microsoft Project 版本 3.0 导出的。
货币设置 这条记录的编号为 10,指定选项对话框中货币选项的设置。如果不包括此记录,则使用“选项"对话框中的当前设置。千位和小数点分隔符在 Windows 控制面板的区域设置项中指定。 此记录中包含的字段有:
- 货币符号
- 符号位置(0#后,1#前,2#后加空格,3#前加空格) *货币数字(0,1,2)
- 千位分隔符
- 小数分隔符
示例: 10,$,1,2,",",. 此示例指定货币值前面包含美元符号 ($),小数点后包含两位数,逗号用于分隔千位,句点用作小数点。因为列表分隔符包含在千位分隔符字段中,所以该字段用引号引起来。
默认设置: 此记录的记录编号为 11,指定选项对话框中默认选项的设置。如果未指定持续时间,则需要设置默认持续时间单位以正确计算持续时间单位。如果不包括此记录,则使用“选项"对话框中的当前设置。 此记录中包含的字段有:
- 默认持续时间单位(0 # 分钟、1 # 小时、2 # 天、3 # 周)
- 默认持续时间类型(0 # 不固定,1 # 固定)
- 默认工作单位(0 # 分钟、1 # 小时、2 # 天、3 # 周)
- 默认小时/天
- 默认小时/周
- 默认标准费率
- 默认加班费
- 更新任务状态更新资源状态(0#否,1#是)
- 拆分正在进行的任务(0 # 否,1 # 是)
日期和时间设置: 此记录的记录编号为 12,指定选项对话框中的日期和时间选项以及布局对话框中的条形文本日期格式选项的设置。如果不包括此记录,则使用“选项"对话框中的当前设置。 \此记录中包含的字段有:
- 日期顺序(0#月/日/年,1#日/月/年,2#年/月/日)
- 时间格式(0#12 小时,1#24 小时)
- 默认时间(午夜后的分钟数)
- 日期分隔符
- 时间分隔符
- 0:00 至 11:59 文本
- 12:00 至 23:59 正文
- 日期格式 (0 -14)*
- 条形文本日期格式 (0 -194)*
基准日历定义: 这些记录编号为 20,定义基准日历及其一周的工作日和非工作日。如果一天没有条目,则使用默认设置。工作日的默认设置为周一至周五,非工作日的默认设置为周六和周日。在此记录中,名称字段是必需的。对于每一天,输入 0 表示该天是非工作日,输入 1 表示该天是工作日。 此记录中包含的字段有:
- 姓名
- 星期日
- 周一
- 周二
- 周三
- 周四
- 星期五
- 周六
基本日历小时数: 这些记录编号为 25,如果它们与默认设置不同,则指定一周中各天的工作时间。默认工作时间为上午 8:00 到下午 12:00 和下午 1:00 到下午 5:00 每个基本日历小时记录参考前面的基本日历定义记录。每个基准日历定义记录最多可以有七个记录。
- 星期几(1 - 7,其中 1 # 星期日和 7 # 星期六)
- 从时间 1
- 到时间 1
- 从时间 2
- 到时间 2
- 从时间 3
- 到时间 3
基本日历例外: 这些记录编号为 26,定义了前两种记录类型中指定的日期和时间的例外情况。每个基准日历定义记录之后最多可以有 250 条记录。这些记录必须按时间顺序列出。如果某一天例外,您可以将“截止日期"字段留空。如果未指定时间,则使用 8:00 AM 到 12:00 PM 和 1:00 PM 到 5:00 PM 的默认时间。 此记录中包含的字段有:
- 从日期
- 迄今为止
- 非工作/工作(0 # 非工作,1 # 工作)
- 从时间 1
- 到时间 1
- 从时间 2
- 到时间 2
- 从时间 3
- 到时间 3
**Project Header:**这条记录,记录值为30,设置全局项目字段,例如项目开始日期和项目结束日期。此记录中的字段对应于“项目信息"和“统计"对话框中的信息。 此记录中包含的字段和选项卡是:
- 项目选项卡
- 公司
- 经理
- 日历(没有条目时使用的标准)
- 开始日期(此字段或下一个字段是为导入的文件计算的,具体取决于 Schedule From 设置)
- 完成日期
- 计划从(0 # 开始,1 # 结束)
- 当前的日期*
- 注释
- 成本
- 基线成本
- 实际成本
- 工作
- 基线工作
- 实际工作
- 工作
- 期间* 基线持续时间
- 实际持续时间
- 完成百分比
- 基线开始
- 基线完成
- 实际开始
- 实际完成
- 开始方差
- 完成差异
- 主题
- 作者
- 关键字
文本资源表定义:此记录按顺序列出正在导入或导出的资源字段。对于导入的文件,名称必须与 Microsoft Project 中使用的字段名称相匹配。对于导出的文件,此记录来自资源导出表。必须使用此记录或数字资源表定义记录。从 Microsoft Project 导出时,这两个记录都包括在内。
数字资源表定义: 使用数字而不是名称,此记录按顺序列出正在导入或导出的资源字段。这是识别每个资源记录中包含的资源字段的另一种方法,在定义由外语产品创建的 MPX 文件时很有用。
资源: 这些记录包含正在导入或导出的每个资源的信息。每个资源记录描述一个资源。导入信息时,包含的字段由文本资源表定义记录或数字资源表定义记录定义。导出信息时,包含的字段是资源导出表中列出的字段。
资源注释: 这些记录包含有关前一个资源记录的注释。对于注释中的新行,使用 ASCII 字符 127。如果注释包含列表分隔符,请将注释用引号引起来。
资源日历定义: 这些记录定义了前一个资源记录中指定的资源的工作日。对于导入的文件,如果基本日历名称字段没有条目,则使用标准。没有特定日期的条目表示该日期设置为默认值 (2)。如果没有资源日历定义记录,则使用标准作为资源的基准日历,默认用于天。对于每一天,0 表示该天是非工作日,1 表示该天是工作日,2 表示使用默认值。
资源日历小时数: 这些记录定义了与资源使用的基准日历不同的资源工作时间。这些记录适用于该记录之前的资源日历定义记录。每个资源日历定义记录最多可以有七个记录。
资源日历例外: 这些记录定义了前两种记录类型中指定的日期和时间的例外情况。每个资源日历定义记录最多可以有 250 条记录。这些记录必须按时间顺序列出。如果只有一天例外,您可以将“截止日期"字段留空。如果未指定时间,则使用 8:00 AM 到 12:00 PM 和 1:00 PM 到 5:00 PM 的默认时间。
文本任务表定义: 此记录按顺序列出正在导入或导出的任务字段。对于导入的文件,名称必须与 Microsoft Project 中使用的字段名称相匹配。如果正在导出文件,则此记录来自任务导出表。从 Microsoft Project 导出时,这两个记录都包括在内。如果导入,Microsoft Project 计算的字段(例如计划开始和计划完成)将被忽略。如果您有固定的任务开始或完成日期,请使用约束类型和约束日期字段。
数字任务表定义: 使用数字而不是名称,此记录按顺序列出正在导入或导出的任务字段。这是识别每个任务记录中包含的任务字段的另一种方法,在定义由外语产品创建的 MPX 文件时很有用。
任务: 这些记录包含正在导入或导出的每个任务的信息。每个任务记录描述一个任务。导入信息时,包含的字段由文本任务表定义记录或数字任务表定义记录定义。导出信息时,包含的字段是任务导出表中列出的字段。
任务注释: 这些记录包含有关前一个任务记录的注释。使用 ASCII 字符 127 表示注释中的新行。如果注释包含列表分隔符,请将注释用引号引起来。
资源分配:这些记录列出了有关分配给前面任务记录中定义的任务的资源的信息。如果要合并文件并且希望保留资源分配信息,则需要在 MPX 文件中包含该信息。如果您合并,则合并任务上的所有现有分配都将被删除。如果您基于唯一 ID 合并文件,则使用资源唯一 ID 而不是 ID 分配资源。
资源分配工作组字段: 这些记录列出了与 Microsoft Project 4.0 和 4.1 的工作组功能的每个分配一起存储的信息。如果您使用 Workgroup 功能,则需要包含此记录以确保不会丢失任何信息。
项目名称: 这些记录列出了存储在项目中的所有 DDE 链接名称。
DDE 和 OLE 客户端链接: 这些记录列出了项目中的 DDE 链接。
评论: 这些记录可用于向文件添加评论,并且可以出现在文件中的任何位置。每个评论记录必须以“0"开头。
打开 MPX 文件的问题##
以下是可能出现并导致 MPX 格式功能错误的一些常见问题的列表:
- 缺少支持软件
- 损坏的文件
- 由于病毒而感染的文件
- 在系统中没有打开文件的访问权限
- 系统中的过时驱动器
- 文件扩展名被重命名