logo

Универсальный экспорт и импорт плана проекта

Вы можете импортировать и экспортировать план проекта из MS Project в ELMA4 с учётом пользовательских колонок. Типы данных MS Project будут сопоставляться с данными системы следующим образом:

MS Project ELMA4
Затраты Дробное число
Дата Дата / время
Длительность Строка
Флаг Да / нет
Окончание Дата / время
Число Дробное число
Начало Дата / время
Текст Текст или Строка

Импорт плана проекта

  1. Чтобы импортируемые данные соответствовали данным 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 имеет два метода для работы с длительностью:

  1. Конвертация длительности в строковое представление 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)

{

}