Главная страница Microsoft Project УПРАВЛЕНИЕ ПРОЕКТАМИ
Спрашивайте! Наши эксперты ответят.
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

 
Новостная лента Google+ от соразработчика MS Project Владимира Иванова
Инсайдерские новости по рынку управления проектами. Подписывайтесь!
 
MS PROJECT и DELPHI
На страницу 1, 2, 3  След.
 
Начать новую тему   Ответить на тему    Список форумов УПРАВЛЕНИЕ ПРОЕКТАМИ -> Разработка, программирование и интеграция MS Project
Предыдущая тема :: Следующая тема  
Автор Сообщение
nikomp
Постоянный участник


Зарегистрирован: 31.10.2014
Сообщения: 16

СообщениеДобавлено: Пт, 31 Окт 2014, 12:39    Заголовок сообщения: MS PROJECT и DELPHI Ответить с цитатой

Добрый день!
Пытаюсь вытащить информацию из файла MS project 2003
В Delphi импортировал библиотеку типов, подключился к Прожекту, как теперь обойти дерево задач?
Ну или хотя бы получить список подзадач, как вообще отслеживается иерархия задач?

Пока есть вот что

Код:

procedure TForm1.Button1Click(Sender: TObject);
var
projApp: _MSProject;
projDoc: _IProjectDoc;
TaskCount: integer;
begin
projApp := CoProjectApplication.Create;
projApp.Visible := true;
Variant(projApp).FileOpen('C:\Шаблон маршрута.mpp');
projDoc := projApp.ActiveProject;
TaskCount := Variant(projDoc).Tasks.Count; // Число задач, каждая задача - строка в ПРОЖЕКТЕ
showmessage(inttostr(TaskCount));

showmessage(Variant(projDoc).Tasks.Item[1].Name); // Обозначение первой задачи
end;
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ZHEKA_DON
Активный участник


Зарегистрирован: 29.07.2014
Сообщения: 28

СообщениеДобавлено: Ср, 05 Ноя 2014, 7:44    Заголовок сообщения: Ответить с цитатой

не понимаю в чем проблема?
циклом по Variant(projDoc).Tasks идем и все)
уровень задачи в дереве определяется свойством OutlineLevel
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikomp
Постоянный участник


Зарегистрирован: 31.10.2014
Сообщения: 16

СообщениеДобавлено: Ср, 05 Ноя 2014, 10:27    Заголовок сообщения: Ответить с цитатой

Проблема в том, что никак не могу найти на просторах Инета описание VBA команд ПРожекта (Если есть ссылка, поделитесь пожалуйста). Действую наугад, записываю макрос, пытаюсь его интерпретировать и переделать для Delphi.

Вот вы подсказали про свойство OutLineLevel, получилось.
До этого пытался получить список подзадач вот так:


Код:

Variant(projDoc).Tasks.Item[1].SuccessorTasks.Count
Variant(projDoc).Tasks.Item[1].SuccessorTasks.Item[i]


Постоянно получала 0.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ZHEKA_DON
Активный участник


Зарегистрирован: 29.07.2014
Сообщения: 28

СообщениеДобавлено: Ср, 05 Ноя 2014, 12:01    Заголовок сообщения: Ответить с цитатой

я пишу на C#, пользуюсь знанием объектной модели MS Project Wink ну и msdn (http://msdn.microsoft.com/en-us/library/office/ff867522(v=office.15).aspx)
я попробовал у себя и вижу что коллекция Variant(projDoc).Tasks содержит все задачи (и подзадачи)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikomp
Постоянный участник


Зарегистрирован: 31.10.2014
Сообщения: 16

СообщениеДобавлено: Ср, 05 Ноя 2014, 14:20    Заголовок сообщения: Ответить с цитатой

Откуда почерпнули знания объектной модели Прожекта? может посоветуете наиболее подходящий для новичка источник?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikomp
Постоянный участник


Зарегистрирован: 31.10.2014
Сообщения: 16

СообщениеДобавлено: Чт, 27 Ноя 2014, 16:43    Заголовок сообщения: Ответить с цитатой

Можно ли как-то быстро отфильтровать нужный ресурс на листе ресурсов?

можно конечно пробежать по всему листу ресурсов, но если
Код:

Variant(projDoc).Resources.Count

сравнивая
Код:

Variant(projDoc).Resources.Item[i].Name


но если ресурсов много, это может занять время.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ZHEKA_DON
Активный участник


Зарегистрирован: 29.07.2014
Сообщения: 28

СообщениеДобавлено: Пт, 28 Ноя 2014, 7:30    Заголовок сообщения: Ответить с цитатой

эммм а что FilterApply не подходит?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikomp
Постоянный участник


Зарегистрирован: 31.10.2014
Сообщения: 16

СообщениеДобавлено: Пт, 28 Ноя 2014, 9:05    Заголовок сообщения: Ответить с цитатой

а можете примерчик привести? оочень нужно!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikomp
Постоянный участник


Зарегистрирован: 31.10.2014
Сообщения: 16

СообщениеДобавлено: Пт, 28 Ноя 2014, 9:07    Заголовок сообщения: Ответить с цитатой

подозреваю что где-то нужно этот фильтр задать, а потом применить, но поскольку плохо знаком с прожектом тыкаюсь наугад Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ZHEKA_DON
Активный участник


Зарегистрирован: 29.07.2014
Сообщения: 28

СообщениеДобавлено: Пт, 28 Ноя 2014, 9:22    Заголовок сообщения: Ответить с цитатой

ну если я правильно понял вопрос...
захожу на лист ресурсов, нажимаю кнопку на риббоне, просходит фильтрация, так?
вот пример
Application.FilterApply(Name: "Ресурсы — затраты");

или надо что то другое?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikomp
Постоянный участник


Зарегистрирован: 31.10.2014
Сообщения: 16

СообщениеДобавлено: Пт, 28 Ноя 2014, 10:03    Заголовок сообщения: Ответить с цитатой

Не совсем так, на листе Диаграмма Ганта есть задача, в которой используется ресурс, например 'Сталь 10', нужно найти ее быстро (не перебирая все ресурсы) на листе ресурсов
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ZHEKA_DON
Активный участник


Зарегистрирован: 29.07.2014
Сообщения: 28

СообщениеДобавлено: Пт, 28 Ноя 2014, 10:16    Заголовок сообщения: Ответить с цитатой

и в чем проблема?
Task.Resources
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikomp
Постоянный участник


Зарегистрирован: 31.10.2014
Сообщения: 16

СообщениеДобавлено: Пт, 28 Ноя 2014, 10:19    Заголовок сообщения: Ответить с цитатой

Task.Resources - я получил ресурсы данной задачи, а теперь этот ресурс надо найти на листе ресурсов и обратиться к его полу Text27.

Хмммм. Или я могу делать это прямо из контекста задачи?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ZHEKA_DON
Активный участник


Зарегистрирован: 29.07.2014
Сообщения: 28

СообщениеДобавлено: Пт, 28 Ноя 2014, 10:25    Заголовок сообщения: Ответить с цитатой

Task.Resources[0].Text27
Laughing
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
nikomp
Постоянный участник


Зарегистрирован: 31.10.2014
Сообщения: 16

СообщениеДобавлено: Пт, 28 Ноя 2014, 10:27    Заголовок сообщения: Ответить с цитатой

Точно, огромное спасибо!!
Только наверно ресурсы не с 0 индексируются а с 1 да?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов УПРАВЛЕНИЕ ПРОЕКТАМИ -> Разработка, программирование и интеграция MS Project Часовой пояс: GMT + 3
На страницу 1, 2, 3  След.
Страница 1 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах

© 2003 - 2009, Портал MicrosoftProject.ru. Все права защищены.