Странности скриптинга (ВБ)

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

EugenLi

Участник
Топикстартер
Сообщения
106
Реакции
0
Приветствую!
Встретил в процессе написания скрипта новую заморочку от Адоба (возможно всё в порядке вещей, но мне показалось странным):
1) задаю в мастере поля для документа (чтоб по каждой позже добавляемой странице не лазить и не исправлять поля, установленные по умолчанию);
2) провожу цикл добавления страниц (поля как мастере, ест-но);
3) в следующий запуск скрипта считываю параметры только что созданного дока - поля в MarginPreferences по умолчанию!!!!!

В настройках мастера - заданные мной значения, на страницах заданные мной значения, а в установках документа - по умолчанию! Это как, нормально?
 

Kuzmin

15 лет на форуме
Сообщения
236
Реакции
92
Ответ: Странности скриптинга (ВБ)

Не знаю нормально или нет, но вот это не совсем точно:

> 1) задаю в мастере поля для документа...

В мастере задаются поля для мастера и страниц которым будет назначен этот мастер, а не для документа. Для документа поля задаются (раз и навсегда, не смотрел может через скрипт и можно изменить) в диалоговом окне "New Document". Идея видимо такая -- создавая документ ты должен отдавать себе отчет каким он будет.
 

EugenLi

Участник
Топикстартер
Сообщения
106
Реакции
0
Ответ: Странности скриптинга (ВБ)

Kuzmin сказал(а):
В мастере задаются поля для мастера
Это конечно бесспорно

Kuzmin сказал(а):
и страниц которым будет назначен этот мастер, а не для документа.
Но если исходить из ситуации, когда задаются значения по умолчанию, в тот самый момент создания нового документа (вне зависимоти от того, как вы создаете новый документ - скриптом или вручную), то:
• мастер по умолчанию один в документе;
• мастер, по умолчанию, применен ко всем страницам документа (коих в доке изначально одна) и вновь создаваемым тоже;
• и, наконец, настройки страниц ВСЕГО документа = настройкам мастера документа (по умолчанию).

Kuzmin сказал(а):
Для документа поля задаются (раз и навсегда,
И не раз и не навсегда - значения полей, количество колонок на странице может быть задано индивидуально для каждой страницы по отдельности, вне зависимоти от примененного к ним мастера.

Kuzmin сказал(а):
не смотрел может через скрипт и можно изменить) в диалоговом окне "New Document".
Скрипт может. А я вообщем всё это время про скрипты, а вы?

Kuzmin сказал(а):
Идея видимо такая -- создавая документ ты должен отдавать себе отчет каким он будет.
Вот если эту фразу вырвать из контекста, то может показаться, что я показался вам невменяемым :confused: , наверно...
Я вообщем ВСЕГДА достаточно четко представляю, чего хочу получить... и от документа тоже!
 

Kuzmin

15 лет на форуме
Сообщения
236
Реакции
92
Ответ: Странности скриптинга (ВБ)

EugenLi сказал(а):
• мастер по умолчанию один в документе;
• мастер, по умолчанию, применен ко всем страницам документа (коих в доке изначально одна) и вновь создаваемым тоже;
• и, наконец, настройки страниц ВСЕГО документа = настройкам мастера документа (по умолчанию).
Изначально одна страница для документов создаваемых скриптом, для создаваемых вручную, зависит от величины Number of Pages диалога New Document.
Мастер применен ,по умолчанию, ко всем страницам документа и вновь создаваемым страницам, но только по умолчанию, а к вновь создаваемому мастеру и умолчание не выполняется.

EugenLi сказал(а):
И не раз и не навсегда - значения полей, количество колонок на странице может быть задано индивидуально для каждой страницы по отдельности, вне зависимоти от примененного к ним мастера.
Ключевыми словами в той фразе были "Для документа".
Для уже созданного _документа_ вручную изменить значения полей не удастся, скриптом, да, можно.

EugenLi сказал(а):
Скрипт может. А я вообщем всё это время про скрипты, а вы?
В первом ответе я пытался, не углубляясь в скрипты, разобраться в идеологии разработчиков в отношении полей документа, мастера и страниц, полагая что это поможет и пониманию этого вопроса на уровне скриптов. Сейчас и я могу про скрипты :)

EugenLi сказал(а):
Вот если эту фразу вырвать из контекста, то может показаться, что я показался вам невменяемым :confused: , наверно...
Нет, ни в коем случае. Эту фразу и не надо вырывать из контекста. В ней ирония по отношению к разработчикам, прошу прощения если был неверно истолкован. Действительно непонятно, почему бы в диалоге Document Setup и не дать возможность изменять поля документа.

Вот вкратце, что я для себя выяснил по полям.
Рукопашная (в нисходящем порядке):
1. Поля по умолчанию для вновь создаваемых документов. Могут быть изменены когда не открыт ни один документ.
2. Поля для документа. Значения по умолчанию могут быть изменены только один раз в диалоге New Document. Действуют на все существующие на момент создания документа страницы и мастер и на вновь создаваемые мастеры и на вновь создаваемые страницы с [None] в качестве мастера.
3. Поля мастера. Могут быть изменены в любой момент.
4. Поля страниц. Могут быть изменены в любой момент.

Скрипты (в нисходящем порядке):
1. Application.MarginPreferences -- поля по умолчанию для вновь создаваемых документов. Могут быть изменены в любой момент. Документ созданный скриптом имеет поля страниц и мастера равные этим значениям.
2. Application.Document.MarginPreferences -- поля по умолчанию для документа. Могут быть изменены после создания документа. Измененные значения действуют на вновь создаваемые мастеры и страницы (зависит от Reference).
3. Application.Document.MasterSpreads.Item(i).Pages.Item(j).MarginPreferences -- поля мастера.
4. Application.Document.Pages.Item(i).MarginPreferences -- поля страниц.
 
Статус
Закрыто для дальнейших ответов.