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