Пример библиотеки MPXJ в C#
-
10-10-2019 - |
Вопрос
У меня есть время Heckuva, поиск примеров C# кода, используя библиотеку MPXJ при подключении к файлу проекта Microsoft. Может ли кто -нибудь, пожалуйста, опубликовать фрагмент, демонстрирующий, как написать содержимое таблицы в файле .mpp на экран?
Бонусные баллы за любые ссылки/ссылки!
Спасибо!
~ Dan
Решение
Надеюсь, это поможет.
Сначала вам нужно открыть файл проекта:
ProjectReader reader = ProjectReaderUtility.getProjectReader(inputFile);
ProjectFile projectFile = reader.read(inputFile);
Это предполагает, что у вас есть имя файла в строке 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
}
}
}
Идея состоит в том, что вы получаете список таблиц, присутствующих в файле, и для каждого из них работают, если это задача или таблица ресурсов. Основываясь на этом, вы получите список задач или ресурсов, выполняете это, и для каждого экземпляра выявите значение столбца и отобразите его. Обратите внимание, что я не предпринимал никакой попытки заказать задачи или ресурсы каким -либо конкретным образом. Я оставлю это упражнением для читателя!
Надеюсь, это поможет!
Джон