Пример библиотеки MPXJ на C#

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

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

Спасибо!

~ Дэн


person Daniel Szabo    schedule 15.12.2010    source источник


Ответы (1)


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

Сначала вам нужно открыть файл проекта:

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
        }
    }
}

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

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

Джон

person Jon Iles    schedule 16.12.2010
comment
Спасибо, Джон! Я очень ценю личное внимание, которое вы уделяете пользователям продукта, который вы поддерживаете. Ваша постоянная приверженность сообществу ОЧЕНЬ высоко ценится! - person Daniel Szabo; 16.12.2010
comment
быстрое предложение - вы можете отредактировать свой ответ, чтобы показать будущим зрителям, какие включения им понадобятся в верхней части файла CS (используя net.sf.mpxj и т. д. и т. д.). Спасибо еще раз! - person Daniel Szabo; 17.12.2010