Универсальный экспорт и импорт плана проекта
Вы можете импортировать и экспортировать план проекта из MS Project в ELMA4 с учётом пользовательских колонок. Типы данных MS Project будут сопоставляться с данными системы следующим образом:
MS Project | ELMA4 |
Затраты | Дробное число |
Дата | Дата / время |
Длительность | Строка |
Флаг | Да / нет |
Окончание | Дата / время |
Число | Дробное число |
Начало | Дата / время |
Текст | Текст или Строка |
Импорт плана проекта
- Чтобы импортируемые данные соответствовали данным ELMA4, перед импортом плана проекта выполните следующие действия:
- дополните объект Задача плана проекта свойствами, которые используются в плане проекта MS Project. В нашем примере — полями Затраты и Баллы;
- заполните все справочники используемых ресурсов.
2. На первом шаге импорта загрузите файл в формате .mpp или .xml и установите настройки.
3. На втором шаге сопоставьте импортируемые свойства со свойствами системы.
При импорте система проверяет все столбцы из MS Project, которые вынесены на форму просмотра, и сопоставляет их со свойствами объекта Задача плана проекта в ELMA4. Те столбцы, которые совпадают по типу данных в ELMA4 и MS Project, сопоставляются автоматически и не нуждаются в ручном соотнесении.
Если столбцы не удалось сопоставить автоматически, их можно сопоставить вручную.
Обратите внимание: в MS Project столбец с системным именем Число 1 называется Баллы. Однако на вкладке Импортируемые свойства в названиях столбцов MS Project отображаются системные имена, поэтому при ручном сопоставлении свойств в ELMA4 он будет называться Число 1.
4. Остальные шаги импорта плана проекта аналогичны стандартной процедуре экспорта и импорта плана проекта.
Экспорт плана проекта
При экспорте плана проекта из ELMA4 в формате .mpp в MS Project сохраняются настройки отображения. Например, вы вынесли поле на форму в MS Project, затем импортировали в ELMA4 и изменили. Если его снова экспортировать в MS Project, то при открытии этого файла сохранится отображение, которое было в изначальном файле.
В формате .xml экспорт настроек отображения не поддерживается. Внешний вид экспортируемого из ELMA4 в MS Project плана проекта в формате .xml будет аналогичен внешнему виду нового проекта.
Шаги экспорта идентичны стандартной процедуре экспорта плана проекта.
Конвертация между Aspose.Tasks.Duration и строкой
Для конвертации между типом Длительность (Duration) из библиотеки Aspose.Tasks и строковым представлением этой длительности можно использовать статический класс EleWise.ELMA.Projects.Helpers.AsposeConvertTypeHelper.
AsposeConvertTypeHelper имеет два метода для работы с длительностью:
- Конвертация длительности в строковое представление ConvertDurationToString.
В качестве параметра в метод передаётся объект типа Aspose.Tasks.Duration. Эта длительность приводится к типу double с указанной в объекте единицей измерения длительности.
Единица измерения длительности приводится к краткой форме записи: часы — ч, дни — д, недели — н, месяцы — м, годы — г. Для всех остальных типов длительности по умолчанию используются дни.
В результате выполнения функции получается строка вида <численное представление длительности> <буквенная запись единицы измерения длительности>. Например, 14 д, 6 м, 0.5 г.
Пример использования:
var project = new Aspose.Tasks.Project();
// создаем экземпляр объекта Длительность
var duration = project.GetDuration(
context.Dliteljnostj,
EleWise.ELMA.Projects.Helpers.AsposeConvertTypeHelper.GetTimeUnitType(
context.EdinicaDliteljnosti
)
);
try
{
context.StrokovoePredstavlenie =
EleWise.ELMA.Projects.Helpers.AsposeConvertTypeHelper.ConvertDurationToString(
duration
);
}
catch (Exception ex)
{
}
2. Конвертация строкового представления в длительность ConvertStringToDuration.
В качестве параметра в метод передаётся строка вида <численное представление длительности> <буквенная запись единицы измерения длительности>, т. е. строка должна удовлетворять регулярному выражению ^\d+,?\d*\s[чднмг]$.
Эта строка разделяется на две подстроки: до и после пробела. Первая подстрока приводится к типу double. Вторая подстрока приводится к типу Aspose.Tasks.TimeUnitType (ч — часы, д — дни, н — недели, м — месяцы, г — годы, для всех остальных типов длительности по умолчанию используются дни).
По полученным значению и типу длительности создаётся экземпляр переменной типа Длительность. В результате выполнения функции возвращается переменная типа Aspose.Tasks.Duration.
Пример использования:
try
{
var duration =
EleWise.ELMA.Projects.Helpers.AsposeConvertTypeHelper.ConvertStringToDuration(
context.StrokovoePredstavlenie
);
context.Dliteljnostj = duration.ToDouble();
context.EdinicaDliteljnosti =
EleWise.ELMA.Projects.Helpers.AsposeConvertTypeHelper.GetDurationUnit(
duration.TimeUnit
);
}
catch (Exception ex)
{
}