配置带有 Microsoft Project 的 DDE 接口
活动和带有 Microsoft Project 的 DDE 接口
Tivoli 更改管理提供了一种带 Microsoft Project 的单向 DDE 接口。本章说明了处理更改时 DDE 链接的初始化、数据交换和终止的进程,也说明了如果使用 Microsoft Project 之外的项目管理应用程序如何设置 DDE 接口。
Tivoli 更改管理还提供了引出功能,可用它来引出更改、规则和模型数据,然后把它引入已选择好的项目管理工具中。这个功能是在“引出”按钮的窗体中。
下列各节说明 DDE 链接并解释怎样为您的环境配置它。可以使用带其它项目管理工具的 DDE 接口,但本章中的说明专用于 Microsoft Project。
Tivoli 更改管理与 Microsoft Project 之间的通信通过 Tivoli 更改管理窗口来执行。尽管用于某个更改的数据和 MS Project 按钮位于更改对话框中,消息仍通过 Tivoli 更改管理窗口流动。
Tivoli 更改管理窗口处理 Microsoft Project 中的下列内容:
变量 | 类型 | 说明 |
R_G_MainDDEWindow | WINDOW | 主 DDE 窗口的窗口句柄 |
R_G_DDEWindow | WINDOW | Microsoft Project 系统的窗口句柄 |
R_G_DDEChangeWindow | WINDOW | 已启动 DDE 链接的更改对话框的窗口句柄 |
R_G_ProjDDEWindow | WINDOW | 特定 Microsoft Project 的窗口句柄 |
G_DDETopicList | LIST OF EE_DDE_TOPIC_REC | 当前主题列表(Microsoft Project 文件)。当遇到子项目时使用。 |
G_DDETimerAmount | INTEGER | 由 DDERequest 发送至 Microsoft Project 的计时器间隔。 |
R_G_DDEDelay | INTEGER | 在 DDE 命令发送到 Microsoft Project 之间间隔的延迟毫秒数。Microsoft Project 并不对发送给它的命令进行排队。 |
创建更改对话框时就启用了 Microsoft Project 按钮,如果找到 Microsoft Project 应用程序,就发出 DDEInitiate()命令。然后 Microsoft Project 就发送 $MsgDDEInitAcknowledge 消息给 Tivoli 更改管理窗口,设置 R_G_DDEWindow 口。
当把这个项目当作 Microsoft Project 文件来处理时,会接收任何 $MsgDDEInitAcknowledge。将 G_DDETopicList 中的这个项目分配给 $DDEWindow 句柄。
当用户选择 Microsoft Project 按钮时,发生下列事件:
调用 R_DDEStatusMessage() 来执行下面的内容:
R_InitializeProjectSchedulerDDE() 执行下面内容:
Microsoft Project 不对发送给它的 DDE 进行排队,因此,在每个命令发送到 Microsoft Project 之后需要有 DDE 延迟。如果在优先选项中这个值设置的太小,Microsoft Project 在处理 DDE 命令时就会忽略一些发送给它的语句。DDE 延迟在 Tivoli 更改管理应用程序对话框中的优先选项标签上设置。如果数据没有像所希望的那样更新的话,可以增大 DDE 延迟。
正如本章前面所谈到的那样,DDE 消息(包括 DDE 计时器)是通过 Tivoli 更改管理窗口来接收的。下表列出了通过该窗口接收的 DDE 消息。
消息 | 说明 |
$MsgTimer | 当收到这个消息时,Tivoli 更改管理发送 DDERequest 给 Microsoft Project,向它询问每个更改/活动的任务、资源和资源分配。 |
$MsgDDEInitAcknowledge | 当 Microsoft Project 接受 Tivoli 更改管理 DDE 初始化请求时收到这个消息。第一次接收到的这个消息用于 Microsoft Project 的窗口句柄。以后收到的消息则用于 Microsoft Project 文件的各个窗口句柄。 |
$MsgDDEAcknowledge | 将 DDEInitialize 发送给微软项目时,收到此消息。如果该状态是负值,那么 Microsoft Project 就不能完成 DDE 链接。 |
$MsgDDETerminate | 当 Microsoft Project 终止 DDE 链接时收到这个消息。然后移去所有 DDE 链接。 |
如果某个更改有活动,则此活动在 Microsoft Project 中作为一个子项目来对待。在建立与 Microsoft Project 的链接时,Tivoli 更改管理在创建此更改之前先创建子项目。G_DDETopicList 的真正使用从这里开始。所有的项目和子项目都保存在 G_DDETopicList 之中。一收到 $MsgTimer 消息,就可以读 G_DDETopicList 并请求用于每个子项目和更改的信息。
要使用带非 Microsoft Project 的项目管理应用程序的 Tivoli 更改管理,需要执行下列操作:
还必须移去所有对 R_StartDDETimer() 和 R_StopDDETimer() 的调用。
可通过配置 Tivoli 更改管理以使用户能将数据引出到文件。这个函数出现在更改对话框的任务标签内。然后把这个文件引入某个项目管理应用程序。如果不使用 Microsoft Project,而且也不想用自己的项目管理工具建立 DDE 链接,这种功能是非常有用的。
为了允许用户将数据引出到文件,必须在 Tivoli 更改管理中配置“引出”按钮。
要想配置引出功能
DlgSetHidden(w,'sc_Export_Button',TRUE);