Faq по полям

fedotxxl

Well-known member
09.11.2005
614
0
#1
Прошу тему не закрывать, ПОСПЕШНО И НЕПОЛНО не отвечать (либо писать, что я так думаю, но не уверен), задавать свои вопросы для понимания работы полей и искать ответ на чужие, кидать инфу по полям из различных источников
FAQ по полям
С самого начала. Зачем это нужно:
В простых ситуациях часто вполне хватает минимальных знаний о полях. Но когда форма становится более сложной, при помощи одних полей изменяется информация в других, становишься путаться. ФАГ признан рассеять мои и, может быть, ваши вопросы.
ВОПРОС 1:
В каких ситуациях происходит пересчет полей (открытие документа, изменение режима, F9 и т.д.; поле создано, поле пустое, поле не создано)
ВОПРОС 2:
На форме по очереди есть поля:
1 строка: X, Y, Z;
2 строка: A, B, C;
В каком порядке будут пересчитываться поля при действии, совершённом из ответа на вопрос 1
(вероятный ответ: X,Y,Z,A,B,C - Слева направо, сверху вниз)

Editable:
Храниться физически в документе
Default value: значение, которое будет у поля при его инициализации (например, при открытии нового документа по форме, или при добавлении нового поля на форму и открытии по форме существующего документа или при создании документа из кода и пересчете его по форме.)
Input translation: значение, при уже созданном поле.

Вопрос:
есть поле X и поле Y (Computed), которое удаляет поле X, но расположено внизу. Открываем документ по форме. Выполняется Default value поля X (поле было удалено в прошлый раз полем Y). Совершаем действие из ответа на вопрос 1.
1) Есть ли доступ к полю X?
2) По какому ивенту будет считаться содержимое поля X (Default value или Input translation)

Computed – это вычисляемое по формуле поле, которое будет вычисляться каждый раз при открытии и пересчете документа. Это поле сохраняется в физическом документе.
Из хелпа по дизайнеру:
«A computed field formula calculates each time a user creates, saves, or refreshes a document.»
(Формула, хранящаяся в полях типа Computed будет вычисляться каждый раз при создании, сохранении и рефреше документа)

Computed for display – это поле аналогично предыдущему за одним исключением – оно существует только при открытии документа. Оно не сохраняется в физическом документе.
СЛУЧАЙНО УЗНАЛ: в режиме редактирования поля с таким типом НЕ существуют.
Из хелпа по дизайнеру:
«A computed-for-display field formula recalculates each time a user opens or saves a document.»
(Формула, хранящаяся в полях типа Computed for display будет вычисляться каждый раз при открытии документа или сохранении)

Еще одна интересная фраза из хелпа:
«(Optional) To recalculate field values while users edit a document, click the form and choose Design - Form Properties, click the Form Info tab, and select "Automatically refresh fields."»
Кто-нибудь не объяснит в чем это выражается?

ВОПРОС:
Могу ли я использовать информацию из поля типа Computed for display и в каких ситуациях она будет корректно отображаться?

Computed when compose – Это поле которое вычисляется 1 раз – при инициализации. На физическом документе оно сохраняется.
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#2
Для: fedotxxl
Все вопросы описаны в документациях, которые можно взять здесь. Или в хелпе.
Все таки сначала надо прочитать инструкцию перед использованием.
 
D

Domino6

#3
"Domino Designer Help"
Раздел

Application design\Designing Forms\Form Elements\

Ссылка внизу "Designing Fields"

Вот отсюда и начинать читать
 

fedotxxl

Well-known member
09.11.2005
614
0
#4
Вот что я выяснил:
1) значение Default value исполняется только ОДИН РАЗ - при создании документа либо при открытии, поля в котором физически этого нету, а на форме есть.
2) При удалении изменяемого поля другим полем значение удаляемого поля при рефреше (т.е. сохранение документа и рефреше (F9, при помощи команд)) вычисляется по Input translation (после первого вычисления по Default value)
3) Если вы удаляете поле A при помощи поля C, а между ними поле B, за полем С поле D (A - B - C - D), то:
а) Поле A будет абсолютно обычным полем для поля B, просто при окончании работы с документом поля A не будет физически в документе
б) Для поля D поле A НЕ существует вообще
в) Для поля A существуют все поля
4) Поле Editable не перевычисляется при открытии, если оно физически создано в документе. Оно перевычисляется только при рефреше (сохранение документа, принудительный рефреш).
5) Поле типа computed-for-display ведет себя почти аналогично полю типа computed, доступно и в режиме редактирования. Вычисляется при открытии, рефрешится при рефреше, сохранении (не при открытии на редактирование)

Вроде это все пока! Думаю, полное понимае работы полей это очень важно. Ладно, скоро продолжу свое иследование
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#5
Хелп ты, видимо, даже не открывал.
<!--QuoteBegin-fedotxxl+10:11:2005, 23:46 -->
<span class="vbquote">(fedotxxl @ 10:11:2005, 23:46 )</span><!--QuoteEBegin-->3) Если вы удаляете поле A при помощи поля C, а между ними поле B, за полем С поле D (A - B - C - D), то:
а) Поле A будет абсолютно обычным полем для поля B, просто при окончании работы с документом поля A не будет физически в документе
б) Для поля D поле A НЕ существует вообще
в) Для поля A существуют все поля
[snapback]26923" rel="nofollow" target="_blank[/snapback]​
[/quote]
Это вообще шедевр.

<!--QuoteBegin-fedotxxl+10:11:2005, 23:46 -->
<span class="vbquote">(fedotxxl @ 10:11:2005, 23:46 )</span><!--QuoteEBegin-->Вроде это все пока! Думаю, полное понимае работы полей это очень важно. Ладно, скоро продолжу свое иследование
[snapback]26923" rel="nofollow" target="_blank[/snapback]​
[/quote]
И пошли отчет в IBM. Им будет интересно. :)
 
D

Domino6

#6
Похоже тема превратится в блог иследователя :)
 

fedotxxl

Well-known member
09.11.2005
614
0
#7
Для: Medevic
Хелп я открывал, там по самой работе полей не так уж и много. По типам полей (выпадающие списки и т.д.) есть довольно много инфы, но она мне не особо нужна
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#8
Для: fedotxxl
Там все написано. Про типы полей и про Input Translation (про которую ты неправильно понял). Может про удаление полей из других полей (кстати, интересно как ты это делаешь) и не сказано ничего, но я что-то не припомню ни одного случая (и даже не могу представить), для чего это понадобилось бы.
Domino6 тебе точно указал, где посмотреть.
 

fedotxxl

Well-known member
09.11.2005
614
0
#9
Для: Medevic
Ну написано там, что для изменения введенных данных. Мне это не нужно.
Для чего удалять поля? Создаю в форме темповые поля, потом удаляю, чтобы физически их не было. Пример: многоязыковая форма. Есть темповые поля A, B, C, D. A- язык формы, B-копирование инфы из поля язык_C в С и наоборот, С - темповое поле данных, D - поле, которое удаляет поля A, B, C, D :)))

Вобщем теперь такой вопрос интересный...
Есть поле formLang (вычисляющееся) вверху формы, в подформе есть кнопки и поля, показывающиеся и скрывающиеся в зависимости от поля formLang. В самом низу поле formLang удаляется.

Формылы, при которых поле и кнопка скрываются - formLang = "en". Значение в formLang = "en". Открываем документ - поле и кнопка скрыты. Открываем на редактирование - скрыты. Рефреш - появляется поле, кнопка скрыта :)))
Ну что гении, объясняйте идиоту почему так?
 
D

Domino6

#10
Для многоязыковости используется принадлежность к языку каждого элемента дизайна
 

fedotxxl

Well-known member
09.11.2005
614
0
#11
Для: Domino6
Можно так, а можно как сделал я. Получилось так, что чтобы добавить язык не нужно добавлять поля вообще (ну практически - richtext поля нужно добавить), а только перевести описание, которое причем вычисляется в зависимости от поля formLang - для всех языков одна форма :)