2013-06-08 1 views
6

Ich habe eine Anforderung zum Ändern der MS-Projektdatei (. Mpp) mit C# .net.zum Bearbeiten von TimescaleStart von MS Project mit C# .net

Ich habe mit all den Dingen getan, die einzige Sache ist, das TimescaleStart Datum der MPP-Datei mit C# .net zu ändern. Ich muss das benutzerdefinierte Datum festlegen.

Wie kann ich das tun?

Im Anschluss ist mein Code:

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; 

Got Fehler als

Typenkonflikt. (Ausnahme von HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))

auf folgende Zeile:

app.TimescaleStart = objDate; 

Antwort

2

TimescaleStart ist eine read-only Eigenschaft, die das Datum zurückgibt, dass der Zeitplan in der aktuellen Ansicht beginnt.

Wenn Sie die Ansicht so scrollen möchten, dass sie an einem bestimmten Datum beginnt, suchen Sie eine Aufgabe mit einem Anfangsdatum oder nahe dem Zieldatum, wählen Sie sie aus und rufen Sie die Methode GotoTaskDates des Anwendungsobjekts auf. Zum Beispiel:

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

Update:

Wenn Sie Project 2010 oder höher verwenden, können Sie auch diese Methode verwenden:

app.PanZoomPanTo (objDate) 
1

es, dass Sie tatsächlich sein könnte versuchen, um das Projektstartdatum zu ändern?

Wenn das der Fall ist, verwenden Sie die "ProjectMove" -Methode. Referenz here und here.

Wenn Sie wirklich wirklich TimescaleStart ändern möchten, it looks like you are out of luck.

+0

Eigentlich geändert werden ich bin für die TimeScaleStart zu. Gleiches habe ich zu Microsoft erhoben. Vielen Dank –