Подскажите пожалуйста по скрипту

Статус
Закрыто для дальнейших ответов.

tree2

Топикстартер
12 лет на форуме
Сообщения
70
Реакции
2
Здравствуйте
Как указать в скрипте, что все колонки в таблице, сколько бы их ни было, были не Fixed а Proportional.
Или это надо указывать до импорта в вентуру, если так, то как в ворде скриптом указать чтобы колонки, были одинаковой ширины.
У меня не получилось, что я не сделал?

WITHOBJECT "CorelVentura.Automation.8"
.TableSelectTable .WholeTable = TRUE
.TableSpacing .InterCol = 7056, .InterRow = 7056
.TableSpacing 36513, 36513
.TablePosition .Indent = 0
.TableFormatTable .VerticalGrid = "Single", .HorizontalGrid = "Single", .AroundGrid = "Single"
.TableCellBorders "", "", "", ""
.TableSelectTable .WholeTable = TRUE
END WITHOBJECT

Спасибо
 

Alexey Pavlov

15 лет на форуме
Сообщения
120
Реакции
2
Ответ: Подскажите пожалуйста по скрипту

Я в свое время на скору руку сделал так:
FOR i=0 TO 22
.TableColumnWidth i, 0
NEXT i

По уму вместо "22" надо поставить переменную, которой до того присвоится номер последней ячейки, но нужную для этого функцию мне было в лом искать, поэтому я просто тупо набил "22".

И еще совет:
после WITHOBJECT "CorelVentura.Automation.8"
Вбиваете
M_POINTS = LENGTHCONVERT (3 , 7 , 1)
И после этого
можно писать так:
.TableSpacing 8*M_POINTS, 12*M_POINTS

Что соответственно значит сверху 8 пунктов, снизу 12 пунктов. Так нагляднее и проще.
 

sargas

12 лет на форуме
Сообщения
34
Реакции
0
Ответ: Подскажите пожалуйста по скрипту

tree2 сказал(а):
Здравствуйте
Как указать в скрипте, что все колонки в таблице, сколько бы их ни было, были не Fixed а Proportional.
Или это надо указывать до импорта в вентуру, если так, то как в ворде скриптом указать чтобы колонки, были одинаковой ширины.
У меня не получилось, что я не сделал?

WITHOBJECT "CorelVentura.Automation.8"
.TableSelectTable .WholeTable = TRUE
.TableSpacing .InterCol = 7056, .InterRow = 7056
.TableSpacing 36513, 36513
.TablePosition .Indent = 0
.TableFormatTable .VerticalGrid = "Single", .HorizontalGrid = "Single", .AroundGrid = "Single"
.TableCellBorders "", "", "", ""
.TableSelectTable .WholeTable = TRUE
END WITHOBJECT

Спасибо

Возмите вот этот:

' Форматирует таблицу выставляя равные значения между
' колонками и рисует линии таблицы.


WITHOBJECT "CorelVentura.Automation.8"
M_POINTS = LENGTHCONVERT (3 , 7 , 1)
FOR i=0 TO 19
.TableColumnWidth i, 0
NEXT i
.TableSelectTable , , , , -1
.TableFormatTable , , , , "SINGLE", "SINGLE", "SINGLE", -1
.TableNormalRule
.TableSpacing 2*M_POINTS, 2*M_POINTS, 2.83*M_POINTS, 2.83*M_POINTS
END WITHOBJECT

где:
"SINGLE", "SINGLE", "SINGLE" -- толщина линий таблицы вокруг, гориз., вертик.
2*M_POINTS, 2*M_POINTS -- растояние с верху и снизу таблицы
2.83*M_POINTS, 2.83*M_POINTS -- растояние между строками и колонками
 

Neech

15 лет на форуме
Сообщения
635
Реакции
175
Ответ: Подскажите пожалуйста по скрипту

Или такой

WITHOBJECT "CorelVentura.Automation.8"
M_POINTS = LENGTHCONVERT (3 , 7 , 1)
count% = 1
.ViewGotoPage .RelativeTo = 2, .GoWhere = 0, .UserNumbering = TRUE
.PageFirstLine
WHILE NOT(.IsCaretAtEndOfText())
WHILE NOT(.IsCaretInTable())
.TextParaDown 1, FALSE
s$ = "обработано таблиц — "+STR (count%)
IF .IsCaretAtEndOfText() Then
MESSAGE s$
stop
END IF
WEND
count% = count% + 1
.TableSelectTable , , , , -1 ' Vydelyaet tablitsu
.TableFormatTable , , , , "SINGLE", "SINGLE", "SINGLE", -1 ' Izmenyaet lineiki tablitsy
.TableNormalRule
.TableFormatTableGet Rows&, Columns& ' Uznaetsya kolichestvo strok

for i%=0 to Columns&-1
.TableColumnWidth i%, 0, ' izmenyaetsya shirina kolonki.
next i%

for i%=1 to Columns&
.TableGotoCell 1, i% ' Perehod v opredelnnuyu yacheiku. Vnimanie! Numeratsiya s 1.
.FormatSetParaTag "Table Header" ' Prisvaivaetsya deskriptor
next i%

for i%=2 to Rows&
for j%=1 to Columns&
.TableGotoCell i%, j%
.FormatSetParaTag "Table Text"
next j%
next i%
.TableSpacing 6*M_POINTS, 11*M_POINTS, 2*M_POINTS, 6*M_POINTS ' Rasstoyaniya nad i pod tablitsei, a takzhe mezhdu strokami i kolonkami
.TableGotoCell Rows&, Columns&
.EditInitFindTagOptions "Body Text", .TagType = 0, .CurrentChapter = TRUE, .Backward = FALSE
.EditInitFindText .Reset = TRUE
.EditFindTag
WEND
END WITHOBJECT

Уже не вспомню, но, кажется это скрипт Павлова или Шадрина, а может Малышкина.
Но он на некоторых таблицах "вылетает". Причину пока не определил.

В догонку. А кто-то подскажет решение на вопрос, который я уже задавал. Как реализовать в скрипте break по нажатию клавиши, скажем, ESC.
 

tree2

Топикстартер
12 лет на форуме
Сообщения
70
Реакции
2
Ответ: Подскажите пожалуйста по скрипту

Спасибо всем завтра попробую

2Alexei Pavlov
По уму вместо "22" надо поставить переменную, которой до того присвоится номер последней ячейки, но нужную для этого функцию мне было в лом искать, поэтому я просто тупо набил "22".

Скажите где вы ищите?
И "22" это я так понимаю предположительное кол-во колонок?

еще раз спасибо!
 

Alexey Pavlov

15 лет на форуме
Сообщения
120
Реакции
2
Ответ: Подскажите пожалуйста по скрипту

tree2 сказал(а):
Скажите где вы ищите?
И "22" это я так понимаю предположительное кол-во колонок?
Есть замечательная кнопка -- F1, которая вызывает Help.
Я редко встречаю таблицы, в котороых более 12--15 колонок. 22 -- это от лени: проще два раза нажать на одну кнопку "2", чем на две разных, например "2" и "0" :) Скрипт проходит по всем колонкам, например их 10, а оставшиеся двеннадцать повторений цикла просто игнорирует.
 

Alexey Pavlov

15 лет на форуме
Сообщения
120
Реакции
2
Ответ: Подскажите пожалуйста по скрипту

Sargas, а Вы сами писали скрипт? Я в своей книге такой приводил. Это не предъявление авторских прав :), просто забавно, если совпадение
 

sargas

12 лет на форуме
Сообщения
34
Реакции
0
Ответ: Подскажите пожалуйста по скрипту

Alexey Pavlov сказал(а):
Sargas, а Вы сами писали скрипт? Я в своей книге такой приводил. Это не предъявление авторских прав :), просто забавно, если совпадение

Я брал этот скрипт очень давно на softforum.ru форум который опубликовался не помню кем и не претендую на какие-либо авторства. Просто нужно помочь человеку.

Кстати он невсегда работает и закрывает публикацию. Вы Не подскажете в чем тут дело?
 

Alexey Pavlov

15 лет на форуме
Сообщения
120
Реакции
2
Ответ: Подскажите пожалуйста по скрипту

Я замечал 2 случая когда вылетает:
1. Таблица стоит вверху полосы набора (или в процессе выполнения скрипта становится туда. Достаточно перед ней поставить хоть один пустой абзац и все работает нормально.
2. Таблица разрывается фреймом
 

zabrab

Участник
Сообщения
28
Реакции
0
Ответ: Подскажите пожалуйста по скрипту

Alexey Pavlov сказал(а):
Я замечал 2 случая когда вылетает:
1. Таблица стоит вверху полосы набора (или в процессе выполнения скрипта становится туда. Достаточно перед ней поставить хоть один пустой абзац и все работает нормально.
2. Таблица разрывается фреймом

Когда из Word'а через буфер вставляешь таблицу - её размер иногда бывает больше размера фрейма. И тогда в большинстве случев при применении скрипта программа вылетает. Однако если применять скрипт в режиме View/Copy Editor (а не View/Page Layout), - то все проблемы с вылетом программы исчезают.
 

Alexey Pavlov

15 лет на форуме
Сообщения
120
Реакции
2
Ответ: Подскажите пожалуйста по скрипту

zabrab сказал(а):
Когда из Word'а через буфер вставляешь таблицу - её размер иногда бывает больше размера фрейма.
Это как раз случай номер 1: таблица стоит вверху фрейма (а я написал страницы). Отбивку перед таблицей попробуйте поставить
 

zabrab

Участник
Сообщения
28
Реакции
0
Ответ: Подскажите пожалуйста по скрипту

Alexey Pavlov сказал(а):
Это как раз случай номер 1: таблица стоит вверху фрейма (а я написал страницы). Отбивку перед таблицей попробуйте поставить
Это не случай 1, поскольку таблица может стоять и внутри фрейма (сверху и снизу присутствуют текстовые фрагменты) - тут речь идет о том что горизонтальный размер таблицы больше размера фрейма. И еще раз позволю повторить что применение скрипта форматирования таблиц в режиме View/Copy Editor снимает и эту и, возможно, и другие проблемы.
 
Статус
Закрыто для дальнейших ответов.