(изменено: PolyMorph, 15 октября 2008г. 15:20:08)

Тема: Тестирование интерфейсов под TDMS 3.0

Доброго времени суток!

Представляю на суровый, но справедливый суд общественности интерфейсы к Microsoft Word и Microsoft Excel. Возможно, они вышли немного комом или у Вас найдутся пожелания к изменению и расширению их функционала. Милости прошу  :)

Текущая версия интерфейсов: 3.13.

Список исправленных ошибок:
Множество мелких ошибок.

Версия: 3.12

Список исправленных ошибок:
Интеграция с EXCEL. Если при выполнении команды "Сохранить в существующий объект" при нажатии кнопки "Отмена" в меню выбора объекта возникало Run-time error

Версия: 3.11

Список исправлений:
Не всегда корректно отрабатывало добавление атрибутов в свойства документа и блокировки в Microsoft Excel.

Версия: 3.10

Список исправленных ошибок:
<пусто>

Post's attachments

TDMS_Interface_Pack.zip 2.01 Мб, 97 скачиваний с 2008-10-15 

You don't have the permssions to download the attachments of this post.

Re: Тестирование интерфейсов под TDMS 3.0

Интеграция с WORD на любое действие выдает ошибку "Object variable or With block variable not set"   :(

Re: Тестирование интерфейсов под TDMS 3.0

Интеграция с EXCEL. Если при выполнении команды Сохранить в существующий объект нажать кнопку Отмена в меню выбора объекта, то возникает Run-time error

Re: Тестирование интерфейсов под TDMS 3.0

Подобная ошибка характерна для старых версий TDMS. Если она сохранится, тогда я постараюсь разобраться и помочь. Не хочется плодить минорные версии "фиксов"...

Post's attachments

TDMS_Interface_Pack.rar 1.66 Мб, 30 скачиваний с 2008-04-16 

You don't have the permssions to download the attachments of this post.

Re: Тестирование интерфейсов под TDMS 3.0

Скачал обновленную версию интерфейса. Интерфейс WORD пока работает нормально. Ошибка в интерфейсе EXCEL сохранилась

Re: Тестирование интерфейсов под TDMS 3.0

Скачал обновленную версию интерфейса. Интерфейс WORD пока работает нормально. Ошибка в интерфейсе EXCEL сохранилась

(изменено: SafiullinMF, 17 апреля 2008г. 12:26:50)

Re: Тестирование интерфейсов под TDMS 3.0

Увы... В текущей версии интерфейса с WORD такая же ошибка как и раньше. С чем связано ее проявление непонятно. Перезагрузка не помогает.
Версия интерфейса 3.11 TDMS 3.0.129

Re: Тестирование интерфейсов под TDMS 3.0

Спасибо! Fixed!

Re: Тестирование интерфейсов под TDMS 3.0

PolyMorph пишет:

Спасибо! Fixed!

А как бы исправленную версию получить?

Re: Тестирование интерфейсов под TDMS 3.0

Я обновил в первом посте сам билд. Там я исправил ошибку в Excel (описано в ChangeLog); ошибку Word не удалось пока воспроизвести. Каким образом она появляется и проявляется? Выскакивает ошибка на любой элемент меню? Файл открыт из TDMS? TDMS запущен?

Re: Тестирование интерфейсов под TDMS 3.0

Выложите пожалуйста самую свежую версию интерфейса с офисом.
Скопилось большое количество ошибок. Но о них лучше писать, когда имеешь последнюю версию

Re: Тестирование интерфейсов под TDMS 3.0

PolyMorph пишет:

Подобная ошибка характерна для старых версий TDMS. Если она сохранится, тогда я постараюсь разобраться и помочь. Не хочется плодить минорные версии "фиксов"...

Тогда получится что мы будем разговаривать о разных сборках, имеющих один и тот же номер. На мой взгляд, это неприемлимо.
При этом у меня есть 2 билда интерфейсов, построенных в разные месяцы, но имеющие один номер.
Неисключено что работают они по-разному. Как мы сможем согласовать наличие / отсутствие ошибок???

Интерфейс с вордом работает очень странно
Например на одном предприятии ВСЕГДА при запуске MS Word вылетет Ошибка 91.
У меня на машине она вылетает не всегда.
На третьей машине не работает интерфейс, если запущен Аутлук. (Только не надо предлагать отключать Word как редактор по умолчанию для Аутлука)
И еще одна проблема, почему-то сейчас я не вижу атрибуты родительских объектов как это было в версии интерфейса для 2.0

В интерфейсе Excel почему-то при вставке НЕКОТОРЫХ атрибутов не вставляются значения, а высвечиваются их SYSID
Поэтому интерфейсом с Office мы не пользуемся, а очень бы хотелось

Re: Тестирование интерфейсов под TDMS 3.0

Проблему с аутглюком я, к сожалению, так и не смог решить. Аутглюк запрещает загрузку ЛЮБЫХ шаблонов, типа, для обеспечения безопасности... Возможно, надо копнуть в сторону подписывания VB-проектов. Мож подписанные шаблоны он разрешит загружать.
Кстати, меня еще один вопрос волнует - как в ворд можно вставлять значения атрибутов > 255 символов? Эти вордовские DocumentProperties имеют максимальную мощность 255 символов. Как это обойти - не понятно. Может другой механизм для подстановки значений в документ использовать надо?

Re: Тестирование интерфейсов под TDMS 3.0

Аутглюк запрещает загрузку ЛЮБЫХ шаблонов, типа, для обеспечения безопасности...

Не совсем верно. Я использую http://www.dimastr.com/redemption. Единственным слабым местом этого решения является потенциальное снижение безопасности использования Outlook после его установки.

Также разные версии Аутлук имеют разные разрешённые и запрещённые "дырки" в API (в основном решения основаны на DLL-расширениях, написанных на Visual C++), но из-за того, что требуется написать универсальный интерфейс для разных версий, это не подходит.

Может другой механизм для подстановки значений в документ использовать надо?

Возможно. Сейчас используется этот механизм в рамках поддержки совместимости. Я вижу несколько вариантов разрешения этого ограничения, в том числе разметку документа "тэгами" "начало фрагмента X"-"конец фрагмента X" с динамическим обновлением из TDMS. Но все свои решения, к сожалению, мне кажутся менее гибкими. Может, подскажете своё видение?

Re: Тестирование интерфейсов под TDMS 3.0

Недосуг ковыряться. Я для сохранения в DocumentProperties данных длиннее 255 символов написал спецфункцию, которая бьет данные на сегменты по 255 символов и сохраняет в несколько переменных вида <PropName>,<PropName>_2,<PropName>_3,...
Но это годится только для неотображаемых в документе переменных. Насколько я понял, получить позиции переменных в тексте документа нельзя, иначе можно было бы динамически вставлять дополнительные переменные в документ. Впрочем, это как-то некрасиво. А некрасивые самолеты не летают  :)
Надо искать другой способ.
Самый тупой вариант, который я уже заиспользовал для вставки таблиц с заполнением из атрибутов объектов состава - запоминание некоего подобия макроса. Для этого я переделал меню ТДМС - теперь у меня при выборе пункта меню не вставляется ссылка на DocProperty, а сохраняется скриптовый макрос, описывающий что и куда надо вставлять. А при обновлении документа происходит обработка этого макроса и уже тогда идет непосредственная расстановка соответствующих DocProperty. Единственный минус такого решения - после запоминания "макроса" нельзя изменять основной текст документа - произойдет смещение и значения атрибутов проставятся не в тех местах.

Re: Тестирование интерфейсов под TDMS 3.0

Единственный минус такого решения - после запоминания "макроса" нельзя изменять основной текст документа - произойдет смещение и значения атрибутов проставятся не в тех местах.

Возможно, я неверно понял, но что мешает тогда принудительно следующим событием в приложении вызывать такое обновление при выставленной галке "Обновлять данные из TDMS", а при невыставленной - ругаться "Вы хотите изменить документ, что может привести к некорректной вставке значения атрибута TDMS. Продолжить/отменить"? Хотя помнится не все события по изменению документа Word у меня получалось перехватить...

Re: Тестирование интерфейсов под TDMS 3.0

Тогда можно пойти дальше и попробовать изменять указатели на местоположение вставок данных в макросах при изменении текста документа. Но сдаецца мне, это будет сильно глючить.
Да и к тому же, обновлять документ толком нельзя будет. По причине того же смещения текста при вставке данных. Кароче, надо применять каике-то метки и привязки, роль которых сейчас играют DocProperties в паре с Fields'ами. В принципе, можно втыкать Bookmarks, но они тоже корявые, там проблема - имя bookmark'а сильно ограничено то ли 16-ю, то ли 32-мя символами.
Fields на что-то другое толковое кроме DocProperties ссылатся может? Я что-то в справке ковырял, но не асилил толком.

Re: Тестирование интерфейсов под TDMS 3.0

Обновил версию до 3.13. Согласен с Jecka, нужно иметь актуальный единственный билд на форуме. Буду рад услышать об ошибках!

2 Slava.Coder.Vrn: Полей может быть много, в том числе IncludeText и Database. Другое дело, насколько оправдано такое достаточно громоздкое решение. И тому, и другому нужно будет "подкладывать" информацию и следить за состоянием источника (БД или внешнего файла).

Re: Тестирование интерфейсов под TDMS 3.0

PolyMorph пишет:

Полей может быть много, в том числе IncludeText и Database. Другое дело, насколько оправдано такое достаточно громоздкое решение. И тому, и другому нужно будет "подкладывать" информацию и следить за состоянием источника (БД или внешнего файла).

А можно подробнее? Я попробую реализовать.

Re: Тестирование интерфейсов под TDMS 3.0

Если честно, я не делал ничего с IncludeText и Database, но могу дать "how to" ссылки:

http://daiya.mvps.org/includetext.htm
http://office.microsoft.com/en-us/word/ … 41033.aspx