powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / про OLE
16 сообщений из 16, страница 1 из 1
про OLE
    #33001158
benzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слышал, что работа через OLE c Word'ом некоторая урезанная. Это на самом деле так?
И не сочтите за труд, посоветуйте , где можно прочитать про работу с OLE, в частности, для Word. Приложение должно формировать отчеты на основании вордовских шаблонов.
Заранее благодарен.
...
Рейтинг: 0 / 0
про OLE
    #33001216
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
benzoСлышал, что работа через OLE c Word'ом некоторая урезанная. Это на самом деле так?
Хммм... а что считать "урезанным"?

И не сочтите за труд, посоветуйте , где можно прочитать про работу с OLE, в частности, для Word. Приложение должно формировать отчеты на основании вордовских шаблонов.
С Билдерячьей стороны это что-то типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
ole_object = CREATE OLEObject

IF ole_object.ConnectToNewObject("word.application") =  0  THEN
	DESTROY ole_object
	MessageBox('OLE Error','Cannot connect to Winword', Stopsign!)
	Return
END IF

ole_object.Documents.open(ls_named)
ole_object.Visible = TRUE
...

ole_object.ActiveDocument.SaveAs("ABCD.doc")
ole_object.DisconnectObject()
DESTROY ole_object

C Вордячьей стороны могу порекомендовать "c:\Program Files\Microsoft Office\Office\1049\VBAWRD9.CHM" (или как он там называется в Вашей версии офиса - у меня 2000-й русский). Ещё бывает полезно записать макрос и посмотреть на его исходник.
...
Рейтинг: 0 / 0
про OLE
    #33001235
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
benzoИ не сочтите за труд, посоветуйте , где можно прочитать про работу с OLE, в частности, для Word.
OLE-программирование на PowerBuilder для Microsoft Word 97
---
С уважением, IKAR

ikarhomecenter@narod.ru
IkarHomeCenter
...
Рейтинг: 0 / 0
про OLE
    #33003266
benzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. Но этого , к сожалению, мало.
Хочется вставлять таблицы и т.д.

Если можно, реальные примеры.
...
Рейтинг: 0 / 0
про OLE
    #33003296
benzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот например. Читаю :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Using the Table Object
Use Tables(index), where index is the index number, to return a single Table object. The index number represents the position of the table in the selection, range, or document. The following example converts the first table in the active document to text.

ActiveDocument.Tables( 1 ).ConvertToText Separator:=wdSeparateByTabs
Use the Add method to add a table at the specified range. The following example adds a 3x4 table at the beginning of the active document.

Set myRange = ActiveDocument.Range(Start:= 0 , End:= 0 )
ActiveDocument.Tables.Add Range:=myRange, NumRows:= 3 , NumColumns:= 4 


А как это должно выглядеть из PowerBuilder'а ?
...
Рейтинг: 0 / 0
про OLE
    #33003451
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При работе с word'ом на таком уровне (например при реализации сложного форматирования) я бы посоветовал пользоваться макросами.
То есть нарисовать макрос возможно с какими-то параметрами, и вызывать его из ПБ.

Не знаю точно как в Word'е, но в Excel'е было куча головной боли с разрисованием табличек. Я забабахал набор макросов, которые потом и вызывал :)
...
Рейтинг: 0 / 0
про OLE
    #33003455
Andrew Nagorny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Напиши DLL например на DELPHI(там нормальный интерфейс к Ворду) из Билдера вызывай ее функции.
...
Рейтинг: 0 / 0
про OLE
    #33003497
benzo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to Andrew Nagorny

Если бы я знал Deplhi.... то это, может быть, и было бы вариантом....
...
Рейтинг: 0 / 0
про OLE
    #33003608
PaulJB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Приложение должно формировать отчеты на основании вордовских шаблонов.

Если только отчеты, то посмотри в эту сторону: http://www.vsi.ru/~apl/
Зовется RepoRTF.
Судя по примерам (которых предостаточно) - не плохая утилитка.
Единственное - она сохраняет не в Ворд-формате, а в RTF что в принципе не есть большая проблема, а в некоторых случаях и спасение. Поддерживаются таблицы. К ПБ ее прикрутить ИМХО особого труда не составит.
...
Рейтинг: 0 / 0
про OLE
    #33004162
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew NagornyНапиши DLL например на DELPHI(там нормальный интерфейс к Ворду) из Билдера вызывай ее функции.
Ой... не, я сам так кое с чем делаю, но работа с Word-ом - это последнее, что я бы запихнул в DLL.
...
Рейтинг: 0 / 0
про OLE
    #33004222
Andrew Nagorny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
To Dim2000

И почему же?
...
Рейтинг: 0 / 0
про OLE
    #33004302
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrew NagornyИ почему же?
Выгоды 0, дополнительной возни - не то чтобы много, но всё же есть.
...
Рейтинг: 0 / 0
про OLE
    #33004433
Andrew Nagorny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не согласен, но думаю не будем разводить флуд
...
Рейтинг: 0 / 0
про OLE
    #33005155
mit_yau
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
benzoНу вот например. Читаю :
Код: plaintext
1.
2.
3.
4.
5.
ActiveDocument.Tables( 1 ).ConvertToText Separator:=wdSeparateByTabs
Use the Add method to add a table at the specified range. The following example adds a 3x4 table at the beginning of the active document.

Set myRange = ActiveDocument.Range(Start:= 0 , End:= 0 )
ActiveDocument.Tables.Add Range:=myRange, NumRows:= 3 , NumColumns:= 4 


А как это должно выглядеть из PowerBuilder'а ?

Так же и будет. Только не забывать, что через ole_object работаешь. И не полениться поискать в хелпе по макроязыку и объектам VBA for Word (замечу, по умолчанию не устанавливается, в 97-м офисе по крайней мере) значения встроенных переменных - вот как wdSeparateByTabs, создать структуру/объект под них, и работать уже с ними - удобно и не напрягает вспоминать значения каждый раз.

Код: plaintext
1.
2.
3.
word_ole_object.ActiveDocument.Tables( 1 ).ConvertToText(n_word_const.wdSeparateByTabs)
word_ole_object_myRange = word_ole_object.ActiveDocument.Range( 0 , 0 )
word_ole_object.ActiveDocument.Tables.Add(word_ole_object_myRange,  3 , 4 )
По-моему, так. Правда, за давностью мог забыть. Но могу поискать свою старую процедуру, для конкретного примера.
...
Рейтинг: 0 / 0
про OLE
    #33005255
mit_yau
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mit_yau
Код: plaintext
1.
word_ole_object.ActiveDocument.Tables( 1 ).ConvertToText(n_word_const.wdSeparateByTabs)


word_ole_object.ActiveDocument.Tables [1] , разумеется.
И список констант, всё-таки, отдельным документом шёл.
А вообще, страничку Ikar'a посмотри, там наверняка это есть. :)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
про OLE
    #35611558
BliTZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Обискался везде, так и не нашел нужной функции. Задам здесь вопрос.
Подскажите, как вызывать макрос Excel из ПБ?
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / про OLE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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