On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 5885
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 28.05.18 18:06. Заголовок: Настройка формата листа DOC-файла...


Как сделать настройку формата страницы листа .DOC в зависимости от ширины таблицы ?

Ширину своей таблицы уже знаю:
nWidthTsb := oBrw:GetAllColsWidth()    // ширина всех колонок таблицы в пикселах

Задаю поля страницы (но они в других единицах):
   oWord:ActiveDocument:PageSetup:LeftMargin := 72.0  //~2.5 см 

// книжная ориентация
oWord:ActiveDocument:PageSetup:Orientation := wdOrientPortrait

// альбомная ориентация
oWord:ActiveDocument:PageSetup:Orientation := wdOrientLandscape


Сколько пикселов в формате А4 для книжной и альбомной ориентации листа ?
Кто знает как это сделать ?


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 43 , стр: 1 2 3 All [только новые]


администратор




Пост N: 6841
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.06.18 18:02. Заголовок: Sergy пишет: Тут ес..


Sergy пишет:

 цитата:
Тут есть


Хотел я ему эту ссылку дать , но там же далеко не все функции...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5909
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.06.18 18:30. Заголовок: Спасибо ! :sm36: Д..


Спасибо !
Добавил к себе в документацию...


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 629
Зарегистрирован: 08.07.06
ссылка на сообщение  Отправлено: 09.06.18 00:01. Заголовок: Dima пишет: Хотел я..


Dima пишет:

 цитата:
Хотел я ему эту ссылку дать , но там же далеко не все функции...


После изучения "далеко не всех функций" есть смысл залезть в \hb\contrib\hbwin\*.* - там точно "всё есть".

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6843
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.06.18 08:39. Заголовок: Sergy пишет: там то..


Sergy пишет:

 цитата:
там точно "всё есть"


Тоже не рискнул дать ему этот вариант

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5910
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.06.18 12:40. Заголовок: Сделал такую констру..


Сделал такую конструкцию:
   Try 
oWord := CreateObject( "Word.Application" )
Catch
cMsg := REPLICATE( "-._.", 16 ) + ";;"
cMsg += SPACE( 5 ) + "On this computer MS Word is not installed !;;"
cMsg += SPACE( 5 ) + " Error code [" + win_oleErrorText() + "];;"
cMsg += SPACE( 5 ) + " Error code [" + Ole2TxtError() + "];;"
cMsg += REPLICATE( "-._.", 16 ) + ";;"
cMsg := AtRepl( ";", cMsg, CRLF )
MsgStop( cMsg , "Error!")
Return .F.
End Try

Результат при отсутствии Ворда на компе:


Получается, что можно пользоваться обеими функциями ?

Непонятно получается. Я у себя в проекте указываю нужные мне библиотеки:
-lminigui
-ltsbrowse
-lhbxlsxml
-lhbwin

А к проекту ещё добавляются библиотеки, в ходе компиляции ?
Ole2TxtError() содержится в 2х библиотеках - hbole.lib и xhb.lib



Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 6844
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.06.18 13:07. Заголовок: Andrey пишет: hbole..


Andrey пишет:

 цитата:
hbole.lib


gfilatov2002 пишет:

 цитата:
Ожидал подобное замечание, поскольку произошел отказ от устаревшей библиотеки HbOLE


И на хрена ты её туда лепишь теперь ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5912
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.06.18 13:35. Заголовок: Dima пишет: И на хр..


Dima пишет:

 цитата:
И на хрена ты её туда лепишь теперь ?


Ничего я не леплю. Вот читай что у меня в проекте:
Andrey пишет:

 цитата:
Я у себя в проекте указываю нужные мне библиотеки:
-lminigui
-ltsbrowse
-lhbxlsxml
-lhbwin


Как другие библиотеки добавляются к моему проекту ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5943
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.07.18 16:13. Заголовок: Опять вопрос по Ворд..


Опять вопрос по Ворду: Как сохранить активный документ ?

Вот код:
 
.....
oWord := TOleAuto():New( "Word.Application" )
oDocs := oWord:Documents
oDocs:Open( cFileDoc )
oActive := oWord:ActiveDocument
oSelect := oWord:Selection
oMarks := oActive:BookMarks

MyDocFindRepl(oWord, aDocVal) // Функция поиска и замена простых переменных по тексту doc

MyDocTable(oWord, oSelect, aDimDbf) // Функция поиска и замена для таблицы по тексту doc

oWord:Visible := lActivate // значение равно .T.
oWord:WindowState := 1 // Maximize
oWord:Selection:HomeKey(6) // начало документа

oActive:Saved := lSave // значение равно .T.
oActive:SaveAs( cFileDoc ) // сохранить документ


Файл не сохраняестя....
Что нужно добавить/исправить чтобы файл сохранялся ?


Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3765
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 08.07.18 18:18. Заголовок: Andrey пишет: Что н..


Andrey пишет:

 цитата:
Что нужно добавить/исправить чтобы файл сохранялся ?



Наверное надо убрать эту строку:
oActive:Saved := lSave // значение равно .T.

А то как-то странно получается: после Saved:=.t. word знает, что документ уже сохранен. И зачем тогда удивляться, что по SaveAs он не сохраняется ? Только что же была установлена отметка, что уже и так.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5944
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 08.07.18 21:56. Заголовок: Pasha пишет: Наверн..


Pasha пишет:

 цитата:
Наверное надо убрать эту строку:


Да перенес это из какого то проекта давно уже.
А запись и не нужна была, так и кочевала из проекта в проект.
Убрал. Заработало ! Спасибо большое !

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3766
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 08.07.18 22:32. Заголовок: Andrey пишет: Да пе..


Andrey пишет:

 цитата:
Да перенес это из какого то проекта давно уже.
А запись и не нужна была, так и кочевала из проекта в проект.



А вызов SaveAs тоже из другого проекта ? Ты если в ворде открываешь документ, изменяешь, потом сохраняешь его через Сохранить как ? Или просто Сохранить ?
Тогда надо использовать не SaveAs, а Save

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5945
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.07.18 01:13. Заголовок: Pasha пишет: Тогда ..


Pasha пишет:

 цитата:
Тогда надо использовать не SaveAs, а Save



Понял. Спасибо !!!

Ещё один вопрос: Как сделать поиск замену в подвале документа ?
В свое время (с твоей помощью) сделал поиск-замену по тексту:
Скрытый текст

А как делать в подвале документа - не знаю. Сейчас просто потребовалось.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3767
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.07.18 07:58. Заголовок: А что такое подвал д..


А что такое подвал документа ?

В общем случае ответ простой. Как в ворде делается - так и через ole делать. Включить макросы, и..

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5946
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.07.18 09:52. Заголовок: Pasha пишет: Как в ..


Pasha пишет:

 цитата:
Как в ворде делается - так и через ole делать. Включить макросы, и..



Вот получил макрос:
Sub Макрос9_подвал() 
'
' Макрос9_подвал Макрос
'
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
ActiveWindow.Panes(2).Close
End If
If ActiveWindow.ActivePane.View.Type = wdNormalView Or ActiveWindow. _
ActivePane.View.Type = wdOutlineView Then
ActiveWindow.ActivePane.View.Type = wdPrintView
End If
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
If Selection.HeaderFooter.IsHeader = True Then
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter
Else
ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
End If
Selection.Font.Size = 10
Selection.TypeText Text:="Строка тест 1"
Selection.TypeParagraph
Selection.TypeText Text:="Строка тест 2"
Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
End Sub

Блин... и как его переделать под Харбор ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3768
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.07.18 09:56. Заголовок: Ну взять и переделат..


Ну взять и переделать. Тут и переделывать то ничего не надо. Какая строка вызывает затруднения ?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5947
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.07.18 10:12. Заголовок: Pasha пишет: Какая ..


Pasha пишет:

 цитата:
Какая строка вызывает затруднения ?



Вообще всё - темный лес сейчас для меня.
Забыл уже как раньше переделывал... Уже года два/три не занимался макросами.
Если не сложно, помоги пожалуйста.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3769
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.07.18 10:36. Заголовок: Andrey пишет: If A..


Andrey пишет:

 цитата:
If ActiveWindow.View.SplitSpecial <> wdPaneNone Then



Ну помоги я так понимаю научи, а не тупо папазавасюрешалматематику. Начнем с первой строки.

oWindow := oActive:ActiveWindow
If oWindow:View:SplitSpecial <> 0

для трансляции строки вида
Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
надо найти описание метода MoveUp, и перевести ключевые параметры в позиционные


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5948
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.07.18 19:31. Заголовок: Pasha пишет: а не т..


Pasha пишет:

 цитата:
а не тупо папазавасюрешалматематику.


Да, да ... Есть такое...

Я вот макрос сделал и не понимаю зачем этот ВЕРХНИЙ кусочек, по моему это не относиться к колонтитулу, а относится к перемещению по меню...

Нашёл вот более правильное на VB:
Добавление текста в нижние колонтитулы документа: 
Следующий пример кода задает шрифт текста, который необходимо вставить в основной нижний колонтитул каждого
раздела документа, а затем вставляет текст в нижний колонтитул. В этом примере кода используется активный документ.

For Each section As Word.Section In Me.Application.ActiveDocument.Sections
Dim footerRange As Word.Range = section.Footers(Word.WdHeaderFooterIndex.wdHeaderFooterPrimary).Range
footerRange.Font.ColorIndex = Word.WdColorIndex.wdDarkRed
footerRange.Font.Size = 20
footerRange.Text = "Confidential"
Next

Правильно ли я мыслю или нет ?
Или продолжать - сражаться с макросом ?

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 3770
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.07.18 20:36. Заголовок: Так подвал это нижни..


Так подвал это нижний коллонититул, что ли ? Что вообще надо сделать ?
А с макросом сражаться не надо. В макрос оформляются те команды, которые выполняет word, и которые можно повторить через ole.
Поэтому надо включить макрос, выполнить только необходимые действия без лишних движений, и затем посмотреть, какими командами word их выполняет.
Ну и просто повторить их.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 5949
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.07.18 21:03. Заголовок: Pasha пишет: Так по..


Pasha пишет:

 цитата:
Так подвал это нижний коллонититул, что ли ? Что вообще надо сделать ?



1) Удалить то что там стоит (нижний колонтитул).
2) Вставить 10 шрифтом красным цветом 4 строчки - "Тест строка 1", "Тест строка 2", и т.д.

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 43 , стр: 1 2 3 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 43
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет