(изменено: A77x7, 17 апреля 2014г. 07:45:08)

Тема: Вставка функции в шаблон документа

В типе есть код

extern test1 alias("Тест1"), helpstring("Тестовая функция 1")
function test1
  test1 = "Hello!"
end function

В шаблоне (Ворд) вставлена функция
Вставка функции в шаблон документа

Почему вызов функции не происходит (вместо этого поля в документе пусто)?

(изменено: McZag, 17 апреля 2014г. 10:47:22)

Re: Вставка функции в шаблон документа

A77x7 пишет:

В типе есть код

extern test1 alias("Тест1"), helpstring("Тестовая функция 1")
function test1
  test1 = "Hello!"
end function

В шаблоне (Ворд) вставлена функция
Вставка функции в шаблон документа

Почему вызов функции не происходит (вместо этого поля в документе пусто)?

Проверил, вставив ваш код. Работает. Для новых объектов, сохраненных в TDMS из Word, надо нажать кнопку Обновить. Для старых, открытых из TDMS, все обновляется само

Почему может не работать:

  • Документ не привязан к объекту TDMS

  • Код отписан для другого типа объекта.

  • Свойство "Обновление данных при открытии документа" установлено в "Никогда не обновлять" или "Обновлять только при редактировании". В последнем случае поле НЕ должно обновляться, если документ открыт на просмотр.

Re: Вставка функции в шаблон документа

McZag пишет:

Проверил, вставив ваш код. Работает. Для новых объектов, сохраненных в TDMS из Word, надо нажать кнопку Обновить. Для старых, открытых из TDMS, все обновляется само

Почему может не работать:

  • Документ не привязан к объекту TDMS

  • Код отписан для другого типа объекта.

  • Свойство "Обновление данных при открытии документа" установлено в "Никогда не обновлять" или "Обновлять только при редактировании". В последнем случае поле НЕ должно обновляться, если документ открыт на просмотр.

Если нажать "Обновить" все обычные атрибуты обновляются. Этот нет, даже не переходит в режим значения (так и остаётся в виде кода {...}, хотя серый). Если руками перевести в режим значения (Alt-F9), то переходит, но остаётся пустым.
Типы совпадают (документ привязан к типу "Приказ" и код забит в типе "Приказ")
В настройках "Всегда обновлять"

(изменено: McZag, 17 апреля 2014г. 12:06:58)

Re: Вставка функции в шаблон документа

A77x7 пишет:

Если нажать "Обновить" все обычные атрибуты обновляются. Этот нет, даже не переходит в режим значения (так и остаётся в виде кода {...}, хотя серый). Если руками перевести в режим значения (Alt-F9), то переходит, но остаётся пустым.
Типы совпадают (документ привязан к типу "Приказ" и код забит в типе "Приказ")
В настройках "Всегда обновлять"

Удивительно. Еще одно предположение, что обновление не доходит до функции. Код падает где-то на подходе.

Попробуйте создать совсем простой документ с одним полем-функцией, вынесенной в новый тип объекта

И еще. Проверьте, что что данное свойство есть в Свойствах документа.

Re: Вставка функции в шаблон документа

A77x7 пишет:

Если нажать "Обновить" все обычные атрибуты обновляются. Этот нет, даже не переходит в режим значения (так и остаётся в виде кода {...}, хотя серый). Если руками перевести в режим значения (Alt-F9), то переходит, но остаётся пустым.
Типы совпадают (документ привязан к типу "Приказ" и код забит в типе "Приказ")
В настройках "Всегда обновлять"

Еще одно предположение. Сохраните документ в TDMS и закройте все приложения Word, в том числе и из процессов. Попробуйте открыть заново

Re: Вставка функции в шаблон документа

В новом объекте работает.
В старом удалил всё, снова вставил функцию, свойство DOCPROPERTY "OBJECT_OFFDOC_ORDER.test1" \* MERGEFORMAT есть, но всё равно оно не работает.

Re: Вставка функции в шаблон документа

A77x7 пишет:

В новом объекте работает.
В старом удалил всё, снова вставил функцию, свойство DOCPROPERTY "OBJECT_OFFDOC_ORDER.test1" \* MERGEFORMAT есть, но всё равно оно не работает.

Давайте разберемся, где именно не работает. Что содержится в свойстве документа?

Вставка функции в шаблон документа

Re: Вставка функции в шаблон документа

McZag пишет:

Давайте разберемся, где именно не работает. Что содержится в свойстве документа?

Таких нет. Вообще закладки "Прочее" нет

Re: Вставка функции в шаблон документа

A77x7 пишет:

Таких нет. Вообще закладки "Прочее" нет

А какая версия Word?

Re: Вставка функции в шаблон документа

McZag пишет:

А какая версия Word?

2010 x32 Pro Rus

Re: Вставка функции в шаблон документа

A77x7 пишет:

2010 x32 Pro Rus

Ну как минимум странно. Т.е. диалог свойств есть, вкладки Общие, Документ, Статистика, Состав есть, а вкладки Прочие нет? Наверно, это возможно где-то в настройках Ворда, но ни разу такого не видел.

Re: Вставка функции в шаблон документа

McZag пишет:

Ну как минимум странно. Т.е. диалог свойств есть, вкладки Общие, Документ, Статистика, Состав есть, а вкладки Прочие нет? Наверно, это возможно где-то в настройках Ворда, но ни разу такого не видел.

Вставка функции в шаблон документа
Может я их не оттуда смотрю (из Проводника правой мышкой)

Re: Вставка функции в шаблон документа

McZag пишет:

Ну как минимум странно. Т.е. диалог свойств есть, вкладки Общие, Документ, Статистика, Состав есть, а вкладки Прочие нет? Наверно, это возможно где-то в настройках Ворда, но ни разу такого не видел.

Тут подумалось. Если хоть какие-то атрибуты есть, и они добавляются, должны быть и пользовательские свойства. Иначе откуда бы Word их брал?

Re: Вставка функции в шаблон документа

A77x7 пишет:

Вставка функции в шаблон документа
Может я их не оттуда смотрю (из Проводника правой мышкой)

Это другая форма  :) В 2010 до нужного диалога можно дойти через Файл/Сведения/Свойства/Дополнительные свойства

Re: Вставка функции в шаблон документа

Вот блин.
В общем у меня тип ...OFFDOC_ORDER порождён от ...OFFDOC.
Сначала функция была в ...OFFDOC, потом я подумал, что нужно конкретно в ...OFFDOC_ORDER и перенёс её туда.
Как видно из свойств остались оба, и вообще на данный момент в документе нет никаких полей:
Вставка функции в шаблон документа
Я удалил их, потом вставил поле (функцию) опять, но всё равно она не вызывается:
Вставка функции в шаблон документа
После всего, удалил файл из объекта, создал новый, вставил функцию. Не работает.

(изменено: A77x7, 18 апреля 2014г. 05:09:02)

Re: Вставка функции в шаблон документа

Удалил ...OFFDOC из базовых типов ...OFFDOC_ORDER и всё заработало.

Базовый тип вернул обратно.
Вот так работает

'use OBJECT_OFFDOC

extern test1 alias("Тест1"), helpstring("Тестовая функция 1")
function test1
  test1 = "Hello!"
end function

если первую строку раскомментировать, перестаёт, хотя в OBJECT_OFFDOC функции с таким же именем нет.

Re: Вставка функции в шаблон документа

A77x7 пишет:

Удалил ...OFFDOC из базовых типов ...OFFDOC_ORDER и всё заработало.

Базовый тип вернул обратно.
Вот так работает

'use OBJECT_OFFDOC

extern test1 alias("Тест1"), helpstring("Тестовая функция 1")
function test1
  test1 = "Hello!"
end function

если первую строку раскомментировать, перестаёт, хотя в OBJECT_OFFDOC функции с таким же именем нет.

Я посмотрю, что там происходит.

Re: Вставка функции в шаблон документа

McZag пишет:

Я посмотрю, что там происходит.

Не смог повторить. Добавил USE от базового типа (до этого его не было). Работает.
Может что-то с кодом базового типа? Проверяли его на корректность?

Re: Вставка функции в шаблон документа

McZag пишет:

Не смог повторить. Добавил USE от базового типа (до этого его не было). Работает.
Может что-то с кодом базового типа? Проверяли его на корректность?

Всё работает. Ничего не понял.
Неделя страстная, черти шутят...

Re: Вставка функции в шаблон документа

A77x7 пишет:

Всё работает. Ничего не понял.
Неделя страстная, черти шутят...

Ну тогда с надвигающимися праздниками  :D