Тема: Интерфейсы

Заметил, что на тех машинах, где установлен TDMS (2.0.171) с интерфейсом к MS Office, периодически корёжится word'овский шаблон normal.dot. В результате word висит при запуске и закрытии и сильно кушает память и проц. Помогает удаление шаблона. Через некоторое время - снова. Или, может, не в TDMS дело, ибо странно как-то - почему не сразу, а через две-три недели работы? Сталкивался кто-нибудь с такой проблемой?

(изменено: Slava.Coder.Vrn, 28 апреля 2007г. 12:32:40)

Re: Интерфейсы

А Normal.dot не разрастается при этом в размере?
Я пробовал пихать код в Normal.dot и мне не понравилось, как ворд себя ведет. В итоге перенес все в шаблон, котрый положил в Startup.

Re: Интерфейсы

Slava.Coder.Vrn пишет:

А Normal.dot не разрастается при этом в размере?

разрастается, и весьма: вот сейчас перед глазами normal.dot на 4,9 Мб.

Slava.Coder.Vrn пишет:

В итоге перенес все в шаблон, котрый положил в Startup.

вроде, фирменный интерфейс TDMS именно так и сделан?

Re: Интерфейсы

разрастается, и весьма

Я это тоже заметил, поэтому решил отказаться от использования Normal.dot в качестве "контейнера" для кода TDMS. Хотя, размещение кода в файле Normal.dot более удобно на этапе отладки - изменять код Normal.dot можно в "run-time", а вот при размещении кода в шаблоне в папке sturtup делает недоступным код шаблона.

вроде, фирменный интерфейс TDMS именно так и сделан?

Да, и это, имхо, оптимальный вариант.

(изменено: faulenzer, 3 мая 2007г. 12:18:57)

Re: Интерфейсы

Slava.Coder.Vrn пишет:

Я это тоже заметил, поэтому решил отказаться от использования Normal.dot в качестве "контейнера" для кода TDMS.

Но я-то не трогаю normal.dot. Весь код интерфейса у меня - в файле tdms.dot из поставки, размещенном в папке Startup.. Все как в инструкции.

Re: Интерфейсы

Вот еще пролемка.. Есть у меня в объектах текстовые атрибуты, пользователи туда длинные тексты забивают (насколько TDMS2.0 позволяет). Настроен вордовский шаблон, который заполняется по данным атрибутов объекта. И вот в чем аномалия: для "длинных" текстовых атрибутов выгружаются только первые 127 символов. Это почему так? Интерфейс виноват, или в этом есть какой-то скрытый смысл?

(изменено: Slava.Coder.Vrn, 4 июня 2007г. 16:17:46)

Re: Интерфейсы

Для хранения значений атрибутов используется коллекция Ворда CustomDocumentProperties. Эта коллекция имеет ограничения на длинну хранимых строк. Имхо, проблема в этом. Как побороть - отказаться от использования вордовых CustomDocumentProperties и Fields и искать другой механизм обмена данными с вордом.
Но проще будет изменить код шаблона таким образом, чтобы он при наличии в атрибуте длинных строк разбивал их на несколько. Напр, есть атрибут Attr_TextInfo. При формировании меню шаблон читает значение атрибута и создает в коллекции CustomDocumentProperties элемент со значением атрибута и именем "Attr_TextInfo". Так вот можно изменить этот код так, чтобы значение атрибута записывалось в элементы CustomDocumentProperties с именами "Attr_TextInfo1", "Attr_TextInfo2"... и тд. А при вставке значения атрибута в текст нужно либо склеивать значения из разных атрибутов в один Field, либо вставлять подряд несколько Field. Правда, еще придется писать код, который будет анализировать изменение текстовых атрибутов при обновлении значений атрибута.... Кароч, тоже достаточно сложно получается.