2013-06-08 14 views
6

Mam wymóg modyfikacji pliku projektu ms (.mpp) przy użyciu C# .net.jak edytować TimescaleStart MS Project przy użyciu C# .net

Zrobiłem wszystko, jedyne co zostało, to zmodyfikować datę TimescaleStart pliku MPP przy użyciu C# .net. Muszę ustawić datę zdefiniowaną przez użytkownika.

Jak mogę to zrobić?

Po to mój kod:

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 Błąd jako

Rodzaj niedopasowanie. (Wyjątek od HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))

na następujący wiersz:

app.TimescaleStart = objDate; 

Odpowiedz

2

TimescaleStart jest tylko do odczytu właściwość, która zwraca datę, że skala czasu rozpoczyna się w bieżącym widoku.

Aby przewinąć widok w taki sposób, aby rozpoczynał się o określonej dacie, znajdź zadanie z datą rozpoczęcia w dniu docelowym lub w jego pobliżu, zaznacz je i wywołaj metodę GotoTaskDates obiektu aplikacji. Na przykład:

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

Aktualizacja:

Jeśli używasz Project 2010 lub nowszego, można również skorzystać z tej metody:

app.PanZoomPanTo (objDate) 
1

może być, że jesteś rzeczywiście próbuje zmienić datę rozpoczęcia projektu?

Jeśli tak jest, spróbuj użyć metody "ProjectMove". referencje here i here.

Jeśli naprawdę naprawdę chcesz zmienić TimescaleStart, it looks like you are out of luck.

+0

Właściwie szukam dla TimeScaleStart zostać zmienione. Same podniosłem do Microsoft. Dziękuję Ci –

Powiązane problemy