723 / 514 / 128
Регистрация: 31.05.2013
Сообщений: 2,828
Записей в блоге: 3
1

MS Project and Builder

19.09.2018, 00:24. Показов 582. Ответов 8
Метки нет (Все метки)

Доброго!
Необходимо получать данные из "проджект" файла себе в табличку (пусть в SG). По сей день мне приходилось использовать Java для этих целей, но сил его поддерживать уже нет.

Умельцы пишут, что с ним можно работать через ole, как с обычным контейнером, так как это тот же excel, со своей версткой...но у меня так не выходит)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2018, 00:24
Ответы с готовыми решениями:

С++ Builder 6 and Project.exe
У мя токая проблема: у мя есть БД созданая в Access и подключенная через ADO в С++ Bulder 6 -> при...

Беда с Builder: не хочет закрывать project.exe
Проблемма: жмем F9 все отлично, прога запускается, далее закрываем, чего нить меняем в нем, жмем...

Project raised exception class eaccessviolation with message 'access violation at address Ошибка Builder 6
Здравствуйте, суть программы - некая информационно-поисковая система "Ветеринарная лечебница". При...

Ошибка: C++ Builder 6 Project Project1.exe raised exception class EClassNotFound with message 'Class TImage not found'
Здравствуйте. Ошибка: C++ Builder 6 Project Project1.exe raised exception class EClassNotFound...

8
723 / 514 / 128
Регистрация: 31.05.2013
Сообщений: 2,828
Записей в блоге: 3
20.09.2018, 11:23  [ТС] 2
Все отлично, подгружаю данные, могу читать по строкам и выводить их себе так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
AnsiString st = "D:\\Этапы захвата солнечной системы(lite).mpp";
 Variant Proj;
 Variant Book;
 Proj=CreateOleObject("MSProject.Application");
 Proj.OlePropertyGet("FileOpen", StringToOleStr(st));
 Proj.OlePropertySet("DisplayAlerts",false); // предупреждения Proj выключить
 Book = Proj.OlePropertyGet("ActiveProject");
 
 /*
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("Text1"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("Text2"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("Name"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("Duration"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("Start"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("Finish"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("Predecessors"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("WBS"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("ResourceNames"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("ID"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("Type"));
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("VAC"));  //?
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("WBS"));  //?
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("Work")); //?
 Memo1->Lines->Add(Book.OlePropertyGet("Tasks").OlePropertyGet("Item",1).OlePropertyGet("Cost")); //?
 */
 
 
 Excel.OlePropertySet("Visible",true);
 Excel.OleProcedure("Quit");
Но как добраться до цвета Font. Макрос в самом проджекте показал данный код, но как его заделать под OLE, не понятною

Visual Basic
1
2
3
4
Sub Macro1()
    SelectTaskField Row:=2, Column:="Оконочание"
    Font32Ex Color:=2366701
End Sub
0
913 / 591 / 291
Регистрация: 22.02.2018
Сообщений: 1,743
Записей в блоге: 2
21.09.2018, 01:15 3
Скорее всего так
C++
1
int Font = Sheet.OlePropertyGet("Cells", 2,3).OlePropertyGet("Font32Ex").OlePropertyGet("Color");
Но это предположение, исходя из текста макроса
1
723 / 514 / 128
Регистрация: 31.05.2013
Сообщений: 2,828
Записей в блоге: 3
21.09.2018, 10:47  [ТС] 4
TrollHammer, Спасибо, но не прокатывает....просто в проджекте единицей является "task" строка, а в экселе, ячейка....Я уже 100500 вариантов со строкой перепробовал)
0
913 / 591 / 291
Регистрация: 22.02.2018
Сообщений: 1,743
Записей в блоге: 2
21.09.2018, 10:55 5
Dinkin, А если залезть в потроха файла и посмотреть там, как правильно называются элементы и их свойства?

Добавлено через 19 секунд
Я так Excel ковырял
0
723 / 514 / 128
Регистрация: 31.05.2013
Сообщений: 2,828
Записей в блоге: 3
21.09.2018, 10:59  [ТС] 6
Обчно через макросы и лез. А если Вы про xml, то в проджекте при экспорте в xml цвета сбрасываются, там не глянуть)
0
Модератор
7334 / 4805 / 2010
Регистрация: 21.01.2014
Сообщений: 20,380
Записей в блоге: 3
21.09.2018, 11:09 7
А офис какой? Я к тому, что новые офисы, имеющие форматы docx, xlsx... эти файлы, по сути, архивы, внутри которых XML файлы... Может, и с Project то же самое и попробовать их поковырять?
0
723 / 514 / 128
Регистрация: 31.05.2013
Сообщений: 2,828
Записей в блоге: 3
21.09.2018, 11:14  [ТС] 8
D1973, Да так же разбирается как архив на кучу файлов, но внутри я ненашел корректного xml, где можно подсмотреть
0
723 / 514 / 128
Регистрация: 31.05.2013
Сообщений: 2,828
Записей в блоге: 3
28.09.2018, 22:46  [ТС] 9
В общем, полностью разобрал MSProject, понял че к чему и как подключать, вставлять, заменять, выбирать =) Будет время попробую выложить мини мануал.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2018, 22:46

C++ Builder XE 10 multi-device project рисование
Внимание среда разработки XE 10. Собственно в чем вопрос, как и что делать мне понятно, вот есть...

Получение с помощью .NET Project.Title из exe, написанного на C++ Builder
Добрый день всем. Это мое первое сообщение на данном форуме. Надеюсь вы мне поможете. Проблема вот...

Заставить видеть .cpp файл без использования Project->Add to project
Здравствуйте. Возникла ситуация, которую хочется правильно разрешить: "Есть юнит (пусть будет юнит...

Как создать Windows Form Project из Empty Project)
Если можно дайте ссылку для прочтения и самоизучения, либо покажите на пальцах,по пунктах.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.