Re[10]: вызвать net форму из vba
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 08.12.21 13:12
Оценка:
Здравствуйте, Hermitap, Вы писали:


H>А не помните, столкнулся с таким маленьким неудобством. Через vba я могу сохранить проект в XML а через C# не могу. Нет формата XML в константе параметра метода Saveas.

Увы, такое я не делал.
У меня была задача сделать, по-сути, кастомный отчет на базе готового проекта (если не ошибаюсь — я из MS Project выгружал списки задач по ребятам из команды — что-то в этом роде).

H>Смириться или есть другой способ?

Я посмотрел описание метода SaveAs и даже для VBA, в списке форматов PjFileFormat XML нет.

В самом описании говорят, что, можно указывать не параметр Format, а FormatID, правда пишут, что

Several FormatID strings are obsolete; if you try to use them, they result in run-time error 1004.


Но как раз среди этих FormatID, есть формат "MSProject.xml" — Project XML file

Поэтому, я бы попробовал так:
— для начала разобраться, как указывается формат выгрузки в VBA. Если через параметр Format, то тупо попробовать в C# передать такое же значение константы
— если не проканает — попробовать Format не указывать, а указать в FormatId == "MSProject.xml"

А вообще может и не стоит завязываться на их XML. Я подозреваю он представляет собой дамп каких-то внутренних структур — работать с таки будет себе дороже (ну разве что вам это нужно чтобы скормить кому-то, кто этот формат понимает).
Re[11]: вызвать net форму из vba
От: Hermitap Украина  
Дата: 08.12.21 16:36
Оценка:
Здравствуйте, Михаил Романов, Вы писали:
МР>Я посмотрел описание метода SaveAs и даже для VBA, в списке форматов PjFileFormat XML нет.

МР>В самом описании говорят, что, можно указывать не параметр Format, а FormatID, правда пишут, что

МР>

Several FormatID strings are obsolete; if you try to use them, they result in run-time error 1004.


МР>Но как раз среди этих FormatID, есть формат "MSProject.xml" — Project XML file


Таки да.
такой метод сработал
app.Application.FileSaveAs("C:\\!\\dd.xml",FormatID: "MSProject.XML");


Мне зачем надо было. XML текстовый формат. А мне надо проект бы отдельно сохранить в базе данных построчно. (Не в project server)
И загнать текстовый файл в таблицу проще чем родной формат проджекта. XML удобен. Но если что будет не так я обычный файл проекта конвертировал бы в base64 и загнал бы его в таблицу Ну это так пока что тестирование возможностей. На возможные будущие интеграции.
Отредактировано 08.12.2021 16:53 Hermitap . Предыдущая версия . Еще …
Отредактировано 08.12.2021 16:36 Hermitap . Предыдущая версия .
Re[12]: вызвать net форму из vba
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 08.12.21 17:03
Оценка:
Здравствуйте, Hermitap, Вы писали:

H>Мне зачем надо было. XML текстовый формат. А мне надо проект бы отдельно сохранить в базе данных построчно. (Не в project server)

H>И загнать текстовый файл в таблицу проще чем родной формат проджекта. XML удобен. Но если что будет не так я обычный файл проекта конвертировал бы в base64 и загнал бы его в таблицу Ну это так пока что тестирование возможностей. На возможные будущие интеграции.

Честно говоря, в такой постановке выглядит немного странно. Сохранять файл в БД — я бы понял, если бы это была бы база какой-нибудь системы ECM/СЭД, но здесь, я так понимаю, что-то более специфическое...
Но ладно, я всё равно не готов погружаться в вашу задачу — вы в любом случае владеете контекстом на порядок лучше меня.

Единственный момент, который сразу же всплывает — а почему всё же не хранить бинарный файл целиком, используя предназначенные для этого binary типы полей?
Есть какие-то ограничения со стороны СУБД?

Ну и даже если с binary почему-то не катит, то вариант сконвертировать в base64 и сохранить файл так выглядит предпочтительнее, имхо, т.к. я почти на 100% уверен при сохранении в другие форматы через SaveAs наверняка что-то будет теряться.
Re[13]: вызвать net форму из vba
От: Hermitap Украина  
Дата: 08.12.21 17:09
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

МР>Здравствуйте, Hermitap, Вы писали:


МР>Единственный момент, который сразу же всплывает — а почему всё же не хранить бинарный файл целиком, используя предназначенные для этого binary типы полей?

МР>Есть какие-то ограничения со стороны СУБД?

почти. Это SAP и немного старенький. Последний апдейт был 15 лет назад. Там все сложно в общем.
Re[14]: вызвать net форму из vba
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 08.12.21 17:16
Оценка:
Здравствуйте, Hermitap, Вы писали:

H>почти. Это SAP и немного старенький. Последний апдейт был 15 лет назад. Там все сложно в общем.

Ясно.
Да, тогда, похоже, только крутиться...
Но я всё же за то, чтобы не делать лишних конвертаций файла. Почти наверняка и размер увеличится и что-то да потеряется.
Re[15]: вызвать net форму из vba
От: Hermitap Украина  
Дата: 08.12.21 17:49
Оценка:
Здравствуйте, Михаил Романов, Вы писали:

МР>Здравствуйте, Hermitap, Вы писали:


H>>почти. Это SAP и немного старенький. Последний апдейт был 15 лет назад. Там все сложно в общем.

МР>Ясно.
МР>Да, тогда, похоже, только крутиться...
МР>Но я всё же за то, чтобы не делать лишних конвертаций файла. Почти наверняка и размер увеличится и что-то да потеряется.


я учту. Спасибо.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.