пятница, 11 марта 2011 г.

Пояснение к возвращаемым значениям скрипта карточки на кнопку-функцию

Скрипт карточки на кнопку-функцию может вернуть набор значений, которые влияют на дальнейшую логику работы карточки. Об этом подробно написано в документации разработчика. Я же хочу немного прокомментировать данные значения. Пояснения актуальны для DocsVision 4.5, 4.5 SR1 и 4.5 SR2

1 - кнопка становится недоступной
- кнопка-функция блокируется, и становится серой

2 - обновить элементы управления карточки
- Данные из CardData карточки будут отображены в элементах управления формы. Во всех полях, за исключением полей на основной вкладке. На ней они останутся без изменения.

4 - установка режима “только чтение” для карточки
- карточка будет переведена в режим "Только чтение". Пользователь не сможет внести изменения в карточку

8 - закрытие карточки
- карточка будет закрыта. При этом если в ней были сделаны изменения, то пользователю будет отображен диалог с предложением сохранения изменений.
Так же будет вызвано событие "закрытие карточки"

16 — немедленное сохранение изменений
- данные из CardData карточки будут отправлены на сервер.

32 — установка флага изменения данных карточки
- при возврате данного значения карточка будет считать, что в неё внесены изменения. При закрытии вызовется соответствующий диалог.

64 — установка флага сохранения изменений
- карточка будет считать, что все изменения сохранены. Диалог при закрытии не будет отбражен. Значения 32 и 64 исключают друг друга.

1024 – установка флага изменения состояния
- карточка отобразит измененное состояние. Т.к. данное поле находится на основной вкладке, то для того, чтобы состояние отобразилось нужен данный флаг

4096 – загрузить номер в карточку (если он был изменен)
- карточка отобразит измененный номер. Т.к. данное поле находится на основной вкладке, то для того, чтобы состояние отобразилось нужен данный флаг

11 комментариев:

  1. Добрый день, Михаил!

    У нас 4.5, хотим чтобы после нажатия кнопки-функции карточка закрывалась без диалога с предложением сохранения изменений, используем последовательность DoEvent = 1 + 2 + 16 + 64 + 8, но диалог все равно появляется.
    Какую последовательность нужно использовать, чтобы добиться желаемого?

    ОтветитьУдалить
  2. Достаточно использовать 16 + 64 + 8

    сохранение, установка флага, закрытие

    ОтветитьУдалить
  3. Михаил, разрешите еще вопрос!

    Написал скрипт, который прикрепляет к карточке файл (копируя его из шаблона карточки файла), предварительно перенеся туда нек. инфу из карточки. Завершаю Doevent = 2. Скрипт работает нормально, но файл становиться видимым только если карточку закрыть/открыть. Подскажите, может вкладку "документы и ссылки" надо как-то специально обновлять?

    ОтветитьУдалить
  4. Не правда, описанный Вами выше вариант закрытия карточки не работает.
    Вот сценарий:
    1. Пользователь создает карточку
    2. Пользователь нажимает на кнопку (DoEvent = 16 + 64 + 8)

    В этом случае всегда возникает диалог сохранения изменений! Редакция DocsVision 4.5.1966.0
    И при этом DocsVision даже не позаботились о том, чтобы ввести в объектную модель функцию сохранения данных карточки!

    ОтветитьУдалить
  5. evengar:
    Вкладка "документы и ссылки" обновляется точно так же, через DoEvent=2
    В данном случае это может быть особенность работы определенной версии. Я посмотрю по возможности

    ОтветитьУдалить
  6. myknowledgeshare:
    Работает. Проверил на одной из наших машин, которая используется для поддержки:
    http://www.youtube.com/watch?v=vJlgkvRVaTo

    Может быть влияет какой-нибудь патч.

    Данные карточки можно в любом месте скрипта отправить на сервер используя механизм IUpdatable
    CardData.Update

    ОтветитьУдалить
  7. А теперь проверьте, пожалуйста, тоже самое для универсального документа.
    http://www.youtube.com/watch?v=rvTwds0OB-U

    ОтветитьУдалить
  8. мне следует написать в тех. поддержку или будут какие-то комментарии?

    ОтветитьУдалить
  9. Для универсального документа это ошибка. В версии 1988 она исправлена - только что проверил на данной сборке

    ОтветитьУдалить
  10. Только что проверил на сборке 1988, изменений никаких, при DoEvent = 16 + 64 + 8 возникает абсолютно такое же поведение, как здесь http://www.youtube.com/watch?v=rvTwds0OB-U
    Тот же запрос на сохранение изменений.

    ОтветитьУдалить
  11. Михаил, поднимаю еще раз вопрос !

    скрипт, который прикрепляет к карточке файл (копируя его из шаблона карточки файла). Завершаю Doevent = 2. Скрипт работает нормально, но файл становиться видимым не всегда, а иногда только если карточку закрыть/открыть.Особенно когда присоединяешь несколько файлов поочереди. Подскажите, может вкладку "документы и ссылки" надо как-то специально обновлять?

    ОтветитьУдалить