2016-04-18 9 views
0

Microsoft Project Serverのすべてのプロジェクトのスケジュールの差異を調べようとしています。私はサーバーにアクセスするためにCSOMとC#を使用していますが、私はプロジェクトのいくつかの詳細を取得します。プロジェクトサーバー - 実際の日時とベースライン日のスケジュールの差異

スケジュールの変更には、実際の開始/終了、ベースライン開始/終了日が必要です。私のようなプロジェクトのコンテキストにロードするために、プロジェクトのクエリでの開始日と終了日を含めた場合:

projContext.Load(pubProj, d=> d.StartDate, d=>d.FinishDate, d=>d.Name, 
d=>d.CustomFields, d=>d.Description, d=>d.Id,d=>d.Owner, 
d=>d.PercentComplete, d=>d.LastPublishedDate, d=>d.ApprovedEnd, 
d=>d.ApprovedStart); 

私は、開始日と終了日が投入されていることがわかりますが、開始日は、私がプロジェクトに見るものによって異なりますUIに関する情報。また、プロジェクトのトラッキングビューに表示されるベースラインの日付を取得する方法もわかりませんでした。

ここで私を助けることができますか?

答えて

0

基準日はプロジェクトのプロパティではなく、プロジェクトの最初のメインタスクから選択されたことがわかりました。したがって、最初のタスクで開始日と終了日が基準になると、プロジェクトのベースライン日がトラッキングビューに反映されます。

if (pubProj.Tasks != null && pubProj.Tasks.Count > 0) 
{ 
    tempProj.BaseEndDate = pubProj.Tasks[0].BaselineFinish; 
    tempProj.BaseStartDate = pubProj.Tasks[0].BaselineStart; 
    tempProj.BaselineDuration = (pubProj.Tasks[0].BaselineDuration != null && pubProj.Tasks[0].BaselineDuration.Length > 2) ? Convert.ToInt16(Convert.ToDecimal(pubProj.Tasks[0].BaselineDuration.Remove(pubProj.Tasks[0].BaselineDuration.Length - 1))) : 0; 
    tempProj.FinishVariance = (pubProj.Tasks[0].FinishVariance != null && pubProj.Tasks[0].FinishVariance.Length > 2) ? Convert.ToInt16(Convert.ToDouble(pubProj.Tasks[0].FinishVariance.Remove(pubProj.Tasks[0].FinishVariance.Length - 1))) : 0; 
} 
else 
{ 
    tempProj.BaselineDuration = 0; 
    tempProj.FinishVariance = 0; 
} 
関連する問題