powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вопрос по использованию OLE
14 сообщений из 14, страница 1 из 1
Вопрос по использованию OLE
    #33154284
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я сам не работаю в PowerBuilder, но у нас в организации он используется.
На данный момент нет людей с опытом работы через OLE с офисными приложениями (Word, Excel) из PB, но есть необходимость начать формировать отчетность в Word/Excel.

Хотелось бы услышать авторитетное мнение, основанное на реальном опыте использования PowerBuilder+OLE.

Какой нам выбрать путь развития?
Какие плюсы/минусы у каждого?

1. Вся работа с Word/Excel осуществляется стредствами самого PowerBuilder.
2. На С++ Builder/Delphi/Visual C++ создается DLL, которая предоставляет
некий интерфес для PowerBuilder при работе с Word/Excel.
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33154358
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте вариант 1.
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33154382
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Guest1 wrote:

> 1. Вся работа с Word/Excel осуществляется стредствами самого PowerBuilder.
> 2. На С++ Builder/Delphi/Visual C++ создается DLL, которая предоставляет
> некий интерфес для PowerBuilder при работе с Word/Excel.

1-й. Второй возможен, но реальных преимуществ я не вижу, а усложнение
будет приличным.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33154391
radius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я за работу с OLE объектами (серверами) средствами самого билдера.
Плюсы:
1. Весь код находится в одном месте, исходники DLL имеют свойства теряться.
2. Все, что Вы можете делать с приложениями Word/Excel как пользователь ( таблицы, форматирование текста, правописание и пр.) Вы можете делать с помощью билдера.
Из минусов:
Скорость работы. Но написание DLL проблему не решит.
Некоторые пробовали использовать DDE, вроде бы быстрее.
Примеры кода можно найти поиском.
Хинт:
Для того, что бы определить, какую команду офисного приложения вызвать, проделайте ваши действия по форматированию, вставке и др. руками, и запишите последовательность Ваших действий в макрос.
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33154519
авторитет
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2й вариант! однозначно!
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33154700
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторитет wrote:

> 2й вариант! однозначно!

Обоснуй ;).
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33155900
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторитет2й вариант! однозначно!

Ваше мнение отличается от остальных, можно поподробнее.

Вообще, нам хотелось бы получить некую библиотеку функций,
простую в использовании, для работы с Word/Excel.
Что бы каждому разработчику PowerBuilder (их несколько) не надо было вникать в особенности обектной модели офисных приложений, а просто вызывать готовые задокументированые функции.
Например (синтаксис на языке С):
Код: plaintext
1.
2.
3.
4.
5.
6.
Integer exCreateExcelApp(void);
Integer exAddWorkbook(void);
Integer exSetVisible(Integer State);
Integer exSetWindowState(Integer State);
Integer exTypeToCell(Integer Row, Integer Col, const char * Text);
Integer exQuit(Integer ConfirmSave);

Ну и далее по мере необходимости расширять библиотеку.

Можно ли такое сделать средствами PowerBuilder?
Повторюсь сам я PowerBuilder не использую, просто сейчас надо принять решение какими средствами реализовать эту библиотеку.

То что в PowerBuilder средства работы с Word/Excel через OLE такие же как в C++ Builder/Delphy я понял, видел примеры кода здесь на форуме.

Вопрос в том нет ли каких-то ограничений и проблем?
И можно ли создать некую библиотеку для этих целей средствами PowerBuilder и насколько это просто и удобно?

В варианте с внешней DLL например на языке С, на мой взгляд один плюс, можно использовать ее в других системах программирования.
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33156196
Andrew Nagorny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смысла дублировать в DLL структуру языка VBA FOR APPLICATIONS нет.
Если что-то и реализовывать в ДЛЛ то это готовые механизмы для конкретных целей. В идеале это передача параметров в DLL из Билдера, затем вызов функции ДЛЛ построения данных (или что там у Вас еще будет) на основании переданных параметров.

Плюсы работы с Офисными приложениями через DLL.
1) Нормальный перехват ошибок
2) Готовый интерфейс VBA (не надо думать - а как же параметры использовать в той или иной функции)
3) Устойчивость (правда зависит от того как будет написано.)
4) Возможность сделать мулти офисный алгоритм(чтобы извне никого не волновало. а какой же ворд у пользователя стоит.)
5) Ну и как было раньше сказано, возможность использовать в различных проектах
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33156225
Andrew Nagorny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если интересуют готовые dll для генерации отчетов в WORD стучитесь...договоримся)

ANagorny_NOSPAM_mail_NOSPAM_ru
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33156572
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew NagornyСмысла дублировать в DLL структуру языка VBA FOR APPLICATIONS нет.
Если что-то и реализовывать в ДЛЛ то это готовые механизмы для конкретных целей. В идеале это передача параметров в DLL из Билдера, затем вызов функции ДЛЛ построения данных (или что там у Вас еще будет) на основании переданных параметров.


Да конечно, именно это мы и хотим сделать.
Andrew Nagorny
Если интересуют готовые dll для генерации отчетов в WORD стучитесь...договоримся)


Спасибо. Как-нибудь сами. :)

Если серьезно. То проблем с реализацией DLL нет, т.к. есть опыт формирования отчетность из C++ Builder в Word/Excel.
Но было бы интересно увидеть набор функций,
т.е. интерфейс библиотеки.
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33156638
Andrew Nagorny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У нас он вот такой

SUBROUTINE Reset() LIBRARY "WGRODBC.dll"
SUBROUTINE SetDisplayNameMenu(String DisplayNameTextMenu) LIBRARY "WGRODBC.dll" alias for "SetDisplayNameMenu;Ansi"
SUBROUTINE SetDisplayNameMenuButtonTable(String DisplayNameTextMenuButtonTable) LIBRARY "WGRODBC.dll" alias for "SetDisplayNameMenuButtonTable;Ansi"
SUBROUTINE SetRegimeBuildDocumentInFIELD(Boolean BuildInFIELD) LIBRARY "WGRODBC.dll"
SUBROUTINE AddFieldValue(String DisplayNameText,String Value) LIBRARY "WGRODBC.dll" alias for "AddFieldValue;Ansi"
SUBROUTINE AddFieldValueSQLSelect(String DisplayNameText,String SQLSelect) LIBRARY "WGRODBC.dll" alias for "AddFieldValueSQLSelect;Ansi"
SUBROUTINE AddFieldTableSQLSelect(String DisplayNameText,String SQLSelect) LIBRARY "WGRODBC.dll" alias for "AddFieldTableSQLSelect;Ansi"
SUBROUTINE AddFieldColumn(String TableDisplayNameText,String DisplayNameText,String SQLName,String Format) LIBRARY "WGRODBC.dll" alias for "AddFieldColumn;Ansi"
SUBROUTINE AddMenuButton(String DisplayNameText) LIBRARY "WGRODBC.dll" alias for "AddMenuButton;Ansi"
SUBROUTINE AddMenuButtonTable(String DisplayNameText) LIBRARY "WGRODBC.dll" alias for "AddMenuButtonTable;Ansi"
SUBROUTINE AddMenuButtonColumn(String TableDisplayNameText,String DisplayNameText) LIBRARY "WGRODBC.dll" alias for "AddMenuButtonColumn;Ansi"
SUBROUTINE AddVariable(String Name,String Value) LIBRARY "WGRODBC.dll" alias for "AddVariable;Ansi"
SUBROUTINE RefreshMenu() LIBRARY "WGRODBC.dll"
SUBROUTINE RefreshVariables() LIBRARY "WGRODBC.dll"
SUBROUTINE SetDSN(String DSN) LIBRARY "WGRODBC.dll" alias for "SetDSN;Ansi"
SUBROUTINE SetPWD(String PWD) LIBRARY "WGRODBC.dll" alias for "SetPWD;Ansi"
SUBROUTINE SetUID(String UID) LIBRARY "WGRODBC.dll" alias for "SetUID;Ansi"
SUBROUTINE SetDataBaseHandle(Long ODBCDataBaseHandle) LIBRARY "WGRODBC.dll"
SUBROUTINE BuildDocument(String TemplateFileName) LIBRARY "WGRODBC.dll" alias for "BuildDocument;Ansi"
SUBROUTINE BuildInActiveDocument() LIBRARY "WGRODBC.dll"
SUBROUTINE BuildTemplate(String TemplateFileName) LIBRARY "WGRODBC.dll" alias for "BuildTemplate;Ansi"
SUBROUTINE BuildInActiveTemplate() LIBRARY "WGRODBC.dll"
FUNCTION Long GetWordDocumentCount() LIBRARY "WGRODBC.dll"
FUNCTION String GetWordActiveDocumentName(ref String Value) LIBRARY "WGRODBC.dll" alias for "GetWordActiveDocumentName;Ansi"
FUNCTION Long GetWordVariablesCount() LIBRARY "WGRODBC.dll"
SUBROUTINE GetWordVariable(String Name,ref String Value) LIBRARY "WGRODBC.dll" alias for "GetWordVariable;Ansi"
SUBROUTINE Open(String FileName) LIBRARY "WGRODBC.dll" alias for "open;Ansi"
SUBROUTINE SaveAs(String FileName) LIBRARY "WGRODBC.dll" alias for "SaveAs;Ansi"
SUBROUTINE Close() LIBRARY "WGRODBC.dll"
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33157099
Nikulitsa A.V.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторХотелось бы услышать авторитетное мнение, основанное на реальном опыте использования PowerBuilder+OLE.

Powerbuilder+Excel через OLE - это достаточно гемморойная, глючная и тормознутая вещь.
Отчетик на пару десятков страниц может формироваться до получаса
при этом иногда после формирования отчета процесс Excel не закрывается корректно и остается висеть в памяти. Если пользователь активно формирует отчеты в Excel, таких процессов может накопиться достаточное количество чтобы наглухо завесить машину.

авторКакой нам выбрать путь развития?
Если отчетность уже есть в виде Datawindow,
то самый простой вариант использовать export datawindow в excel
с помощью библиотеки dw2xls

авторКакие плюсы/минусы у каждого?
Минусы первого варианта уже упоминались
Минусы второго - это то, что библиотека платная, но стоимость ее смехотворна в сравнении с трудозатратами, которые вам предстоят в случае реализации первого варианта
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33158550
Guest1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за информацию.
...
Рейтинг: 0 / 0
Вопрос по использованию OLE
    #33195053
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень плотно работал с 1 вариантом, так что я за него
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Вопрос по использованию OLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]