2010-12-15 4 views
3

У меня есть время heckuva для поиска любых примеров кода C# с использованием библиотеки MPXJ при подключении к файлу Microsoft Project. Может кто-нибудь захочет опубликовать фрагмент, демонстрирующий, как записать содержимое таблицы в .mpp-файле на экран?Пример библиотеки MPXJ в C#

Бонусные баллы за любые ссылки/ссылки!

Спасибо!

~ Dan

ответ

4

надеюсь, это поможет.

Прежде всего, необходимо открыть файл проекта:

ProjectReader reader = ProjectReaderUtility.getProjectReader(inputFile); 
ProjectFile projectFile = reader.read(inputFile); 

Это предполагает, что у вас есть имя файла в строке файл_ввода.

Метод ниже следует рассматривать как псевдокод (т. Е. Я его не скомпилировал, вытряхнул ошибки из него и т. Д., И это не самая элегантная вещь, которую я когда-либо писал), но она иллюстрирует подход :

public void dumpTables(ProjectFile file) 
{ 
    List tables = file.getTables(); 
    Iterator iter = tables.iterator(); 
    while (iter.hasNext()) 
    { 
     Table table = (Table)iter.next(); 
     if (table.getResourceFlag()) 
     { 
      List resources = file.getAllResources(); 
      Iterator resourceIter = resources.iterator(); 
      while (resourceIter.hasNext()) 
      { 
       Resource resource = (Resource)iter.next(); 
       List columns = table.getColumns(); 
       Iterator columnIter = columns.iterator(); 
       while (columnIter.hasNext()) 
       { 
        Column column = (Column)columnIter.next(); 
        Object columnValue = resource.getCachedValue(column.getFieldType()); 
        Console.Write(columnValue); 
        Console.Write(","); 
       } 
       Console.WriteLine(); 
      } 
     } 
     else 
     { 
      List tasks = file.getAllTasks(); 
      // etc. as above 
     } 
    } 
} 

идея заключается в том, что вы извлекаете список таблиц, содержащихся в файле, и для каждого из них работает, если это таблица задач или ресурсов. Исходя из этого вы получите список задач или ресурсов, перейдете через это и для каждого экземпляра вытащите значение столбца и отобразите его. Обратите внимание: я не делал попыток упорядочить задачи или ресурсы каким-либо конкретным способом. Я оставлю это как упражнение для читателя!

Надеюсь, что это поможет!

Jon

+0

Спасибо, Джон! Я очень ценю личное внимание, которое вы уделяете пользователям продукта, который вы поддерживаете. Ваша постоянная приверженность сообществу ОЧЕНЬ высоко ценится! – 2010-12-16 20:35:47

Смежные вопросы