6

我需要使用 C#.net 修改 ms 项目文件 (.mpp)。

我已经完成了所有的事情,唯一剩下的就是使用 C#.net 修改 MPP 文件的 TimescaleStart 日期。我需要设置用户定义的日期。

我怎样才能做到这一点?

以下是我的代码:

Microsoft.Office.Interop.MSProject.Application app = new Microsoft.Office.Interop.MSProject.Application();
app.DisplayAlerts = false;
app.AskToUpdateLinks = false;


app.FileOpenEx(
strFilePath + "test.mpp",
false,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
PjPoolOpen.pjPoolReadWrite, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

Microsoft.Office.Interop.MSProject.Project pj = app.ActiveProject;

object objDate = dt.Date;
app.TimescaleStart =   objDate;

错误为

类型不匹配。(来自 HRESULT 的异常:0x80020005 (DISP_E_TYPEMISMATCH))

在以下行:

app.TimescaleStart =   objDate;
4

2 回答 2

1

TimescaleStart是一个只读属性,它返回当前视图中时间刻度开始的日期。

如果要滚动视图以使其在某个日期开始,请找到开始日期在目标日期或接近目标日期的任务,选择它并调用GotoTaskDates应用程序对象的方法。例如:

 app.Find "Start", "is greater than or equal to", "1/1/2014", Type.Missing, Type.Missing, Type.Missing, Type.Missing
 app.GotoTaskDates

更新:

如果您使用的是 Project 2010 或更高版本,也可以使用此方法:

app.PanZoomPanTo (objDate)
于 2013-09-26T18:41:07.727 回答
1

是不是您实际上是在尝试更改项目开始日期?

如果是这种情况,请尝试使用“ProjectMove”方法。参考这里这里

如果你真的真的想改变 TimescaleStart,看起来你很不走运。

于 2013-10-02T23:12:25.300 回答