powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Изменить колонтитул в word через OLE
5 сообщений из 5, страница 1 из 1
Изменить колонтитул в word через OLE
    #38200177
RoboCoooL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PB 11.5
подключаюсь к word
Код: vbnet
1.
2.
3.
ole_object = create oleobject
ll_error = ole_object.ConnectToNewObject("Word.application")
...


Требуется в вордовском документе изменить колонтитул.
На vba:
Код: vbnet
1.
2.
3.
4.
With ActiveDocument.Sections(1)
    .Headers(wdHeaderFooterPrimary).Range.Text = "Header text"
    .Footers(wdHeaderFooterPrimary).Range.Text = "Footer text"
End With


Помогите пожалуйста перевести код на PB.
...
Рейтинг: 0 / 0
Изменить колонтитул в word через OLE
    #38200918
Фотография Ikar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLE-программирование на PowerBuilder для Microsoft Word 97

Чтобы посмотреть значение константы, загоняем код в макрос в VBA, ставим брейкпоинт и при остановке наводим курсор на константу. В хинте VBA покажет значение константы. Ну а дальше портируем код. Не забывая, что в VBA указание элемента массива производится в круглых (), а в РВ - в квадратных [] скобках.

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
oleobject ole_object
oleobject ole_section
constant int wdHeaderFooterPrimary = 1


ole_object = create oleobject
ole_object.ConnectToNewObject("Word.application")
ole_object.Documents.open("C:\TEMP\Doc1.doc")
ole_object.Application.Visible = True
ole_section = create oleobject
ole_section = ole_object.ActiveDocument.Sections[1]
ole_section.Headers[wdHeaderFooterPrimary].Range.Text = "Header text"

ole_object.DisconnectObject()
destroy ole_object
...
Рейтинг: 0 / 0
Изменить колонтитул в word через OLE
    #38201208
RoboCoooL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ikar,
Большое Спасибо, очень помог !!!
...
Рейтинг: 0 / 0
Изменить колонтитул в word через OLE
    #38203093
RoboCoooL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Столкнулся с новой проблемой убрать колонтитул на последней странице, в PB перевожу этот макрос:
Код: vbnet
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.
Sub Макрос6()
'
' Макрос6 Макрос


Dim F As Word.HeaderFooter, D As Word.Document, n As Integer, R As Word.Range
Set D = ActiveDocument
' всего страниц
n = D.Range.Information(Type:=3)
' начало последней страницы

'wdGoToPage = 1 wdGoToAbsolute = 1
Set R = D.GoTo(What:=Word.wdGoToPage, _
                Which:=Word.wdGoToAbsolute, _
                Count:=n)
' вставляем разрыв раздела
'wdSectionBreakNextPage = 2
R.InsertBreak Type:=Word.wdSectionBreakNextPage
' перебираем нижние колонтитулы
For Each F In D.Range.Sections.Last.Footers
    F.LinkToPrevious = False ' отсоединяем
    F.Range.Delete ' очищаем
Next F
    
End Sub



проблема возникает сразу ((
Код: powershell
1.
ll_n = ole_object.ActiveDocument.Range.Information(3)



а уж как цикл
Код: vbnet
1.
For Each

реализовать...
...
Рейтинг: 0 / 0
Изменить колонтитул в word через OLE
    #38203197
RoboCoooL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вроде разобрался, For each не нужен...

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
...
ll_n = ole_object.ActiveDocument.Content.Information[1]
			
			oleobject 	ole_range
			
			ole_range = create oleobject
			
			ole_range = ole_object.ActiveDocument.GoTo (1,1,ll_n)
			
			ole_range.InsertBreak (2)
			
			ole_section2 = create oleobject
			ole_section2 = ole_object.ActiveDocument.Sections[2]
			
			ole_section2.Footers[1].LinkToPrevious = False
			ole_section2.Footers[1].Range.Delete
...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Изменить колонтитул в word через OLE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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