2016-10-04 12 views
0

Код ниже (в стандартном классе ThisAddIn надстройки VSTO) извлекает информацию о задачах, которые должны быть добавлены в MS Project (2013), а затем добавляет актуальные задачи для проект Сбор задач. Проблема заключается в том, что проект позволяет добавлять задачи один за другим и перерисовывать (обновлять) представление проекта каждый раз, когда задача добавляется в коллекцию Задачи. Это выглядит раздражающе. До сих пор я нашел и использовал Application.ScreenUpdating свойство, чтобы скрыть мигание.Надстройка VSTO для MS Project: все задачи отображения сразу

Было бы неплохо подготовить коллекцию задач и приложить их все вместе к активному проекту. Мог ли кто-нибудь более опытный, пожалуйста, указать на способ сделать это? Если это вообще возможно с текущим API надстройки MS Project?

Большое спасибо.

.... 
using MSProject = Microsoft.Office.Interop.MSProject; 
.... 

public partial class ThisAddIn 
{ 
    .... 

    private void ShowTasks() 
    { 
     MSProject.Project project = this.Application.ActiveProject; 
     // TaskInfo is a custom DTO type 
     IEnumerable<TaskInfo> dataSource = GetDataSourceSomehow(); 

     this.Application.ScreenUpdating = false; 
     this.Application.Calculation = MSProject.PjCalculation.pjManual; 

     foreach(TaskInfo info in dataSource) 
     { 
      MSProject.Task task = project.Tasks.Add(info.TaskName); 
     } 

     this.Application.ScreenUpdating = true; 
    } 
} 
+0

Техника, вы можете попробовать, чтобы добавить все задачи в новый XML- или Файл Excel. Затем вы можете получить автоматизированный проект, чтобы открыть файл и слить его в активный проект. Это может быть намного быстрее и произойдет все сразу. Если вы попробуете, сообщите нам о результатах. Имеет ли вскрытие и расчет = ложная помощь? –

+0

Спасибо за ответ! Да, я закончил подготовку данных задачи в файле, в моем случае .csv, а затем вручную импортировал его. Все идет хорошо, но стоит отметить, что MS Project пытается настроить входящие данные, а не молчаливо их принимать. То, что вы только что задумали, автоматически импортирует CSV. Спасибо. – watchaglass

ответ