如何使用C#.net编辑MS Project的TimescaleStart

Sha*_*que 6 c# asp.net-mvc ms-project

我需要使用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;
Run Code Online (Sandbox Code Playgroud)

得到错误

类型不匹配.(HRESULT异常:0x80020005(DISP_E_TYPEMISMATCH))

在以下行:

app.TimescaleStart =   objDate;
Run Code Online (Sandbox Code Playgroud)

Rac*_*ger 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
Run Code Online (Sandbox Code Playgroud)

更新:

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

app.PanZoomPanTo (objDate)
Run Code Online (Sandbox Code Playgroud)