f_ModifyForm и свойства объекта.
-
- Новый участник
- Сообщения: 23
- Зарегистрирован: 19 сен 2011, 15:35
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Воронеж
f_ModifyForm и свойства объекта.
Добрый день, уважаемые форумцы.
Снова обращаюсь к вам за свежими идеями.
Дано: форма задачи в шаблоне. Видимость и цвет большого количества полей прописаны в зависимости от значения других переменных (например, цвет фона поля "субподрядчик" становится серым, а само поле защищённым, если выбран номер отдела). Всё прекрасно, логично и быстро работало, пока не повесили на нажатие ОК проверку введенных значений, в которой функцией f_ModifyForm выделили фон незаполненных(или некорректно заполненных) полей красным.
Теперь происходит следующее: пользователь нажал ОК -при проверке выдали ошибку, подсветили красным незаполненные поля. Он снова возвращается к заполнению формы , но теперь те поля, которые f_ModifyForm обработал, не меняют свои значения в зависимости от других полей.
Внимание, вопрос: как сделать так, чтобы применение f_ModifyForm не повлияло на дальнейшее развитие событий?
Снова обращаюсь к вам за свежими идеями.
Дано: форма задачи в шаблоне. Видимость и цвет большого количества полей прописаны в зависимости от значения других переменных (например, цвет фона поля "субподрядчик" становится серым, а само поле защищённым, если выбран номер отдела). Всё прекрасно, логично и быстро работало, пока не повесили на нажатие ОК проверку введенных значений, в которой функцией f_ModifyForm выделили фон незаполненных(или некорректно заполненных) полей красным.
Теперь происходит следующее: пользователь нажал ОК -при проверке выдали ошибку, подсветили красным незаполненные поля. Он снова возвращается к заполнению формы , но теперь те поля, которые f_ModifyForm обработал, не меняют свои значения в зависимости от других полей.
Внимание, вопрос: как сделать так, чтобы применение f_ModifyForm не повлияло на дальнейшее развитие событий?
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: f_ModifyForm и свойства объекта.
то есть после ОК и изменений других переменных цвет фона не меняется?
кнопка ОК - видимо самодельная?
а нельзя проверку полей делать на лету, а не по нажатию на ОК? условия чуть усложнятся, но всегда будут работать одинаково.
кнопка ОК - видимо самодельная?
а нельзя проверку полей делать на лету, а не по нажатию на ОК? условия чуть усложнятся, но всегда будут работать одинаково.
лучше день потерять, потом за пять минут долететь!
-
- Новый участник
- Сообщения: 23
- Зарегистрирован: 19 сен 2011, 15:35
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Воронеж
Re: f_ModifyForm и свойства объекта.
Нет, кнопка OK не самодельная , просто в документации написано, что ModifyForm всегда "перекрывает" любое динамическое условие(то, которое в свойствах прописывается), вне зависимости от выполнения условия. Вот вопрос как раз в том, чтоб "отменить" действие этого ModifyFormAnderyt писал(а):то есть после ОК и изменений других переменных цвет фона не меняется?
кнопка ОК - видимо самодельная?
Не всегда... например,пользователь должен либо ввести И номер объекта, И обозначение раздела состава ПД. Или не ввести ни то, ни другое. Привязывать пользователя к определенной последовательности действий и приучать к тому, что в некоторый момент времени поля будут грозно подсвечиваться красным - в случае с нашими пользователями не самая хорошая идеяAnderyt писал(а):а нельзя проверку полей делать на лету, а не по нажатию на ОК? условия чуть усложнятся, но всегда будут работать одинаково.
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: f_ModifyForm и свойства объекта.
хм.. можно для каждого поля, которое нужно проверять и подсвечивать красным, добавить поле с флагом для ошибки. и пусть поле светится красным, если этот флаг стоит. а проверка будет как раз его ставить. или снимать.
но вообще.. нет, я не понял пока логику.. если сейчас поле серое, а проверка показала, что оно ошибочное и поле стало красным, то что? юзер должен его исправить и оно тут же должно стать белым, БЕЗ повторной проверки? или ДО повторной проверки оно может оставаться красным?
если должно сразу стать белым, то тогда придется вешать на это поле действие по Изменение значения, чтобы оно снимало флаг. это морока
если оставаться красным - то вроде проще, но еще хуже с точки зрения юзера, чем динамический фон (включая красный).. вроде заполнил, а поле все еще красное, пока снова проверку не сделаешь..
ну то есть
если написано, что перекрывает, значит перекрывает. и или просить разработчиков, чтобы не перекрывало, или искать другие решения по интерфейсу...
...
а если после проверки не менять фон через modifyform, а ставить флаги соответствующих полей в 1? тогда фон поля можно сделать зависимым и от других полей, и от этого флага. а при изменении этого поля сбрасывать флаг. да, это будет по действию на каждое поле, но зато оно будет элементарное - сбросить флаг этого поля (а это видимо проще сделать в виде переменной) в 0. то есть:
ввели значения, нажали проверку. проверка поставил флаг у первого поля, его фон стал красным. изменили первое поле, его флаг сбросился. снова проверили. и тд.
но вообще.. нет, я не понял пока логику.. если сейчас поле серое, а проверка показала, что оно ошибочное и поле стало красным, то что? юзер должен его исправить и оно тут же должно стать белым, БЕЗ повторной проверки? или ДО повторной проверки оно может оставаться красным?
если должно сразу стать белым, то тогда придется вешать на это поле действие по Изменение значения, чтобы оно снимало флаг. это морока
если оставаться красным - то вроде проще, но еще хуже с точки зрения юзера, чем динамический фон (включая красный).. вроде заполнил, а поле все еще красное, пока снова проверку не сделаешь..
ну то есть
если написано, что перекрывает, значит перекрывает. и или просить разработчиков, чтобы не перекрывало, или искать другие решения по интерфейсу...
...
а если после проверки не менять фон через modifyform, а ставить флаги соответствующих полей в 1? тогда фон поля можно сделать зависимым и от других полей, и от этого флага. а при изменении этого поля сбрасывать флаг. да, это будет по действию на каждое поле, но зато оно будет элементарное - сбросить флаг этого поля (а это видимо проще сделать в виде переменной) в 0. то есть:
ввели значения, нажали проверку. проверка поставил флаг у первого поля, его фон стал красным. изменили первое поле, его флаг сбросился. снова проверили. и тд.
лучше день потерять, потом за пять минут долететь!
- Старик Крупский
- Активный участник
- Сообщения: 803
- Зарегистрирован: 27 июл 2006, 22:17
- Откуда: Москва
Re: f_ModifyForm и свойства объекта.
Что-то сомнение берет... Действие выполнилось, ModifyForm сработала. Потом юзер меняет значение поля. Если нет действия по изменению значения переменной, но есть динамическое свойство, почему бы ему не сработать?os_cherepanova писал(а):просто в документации написано, что ModifyForm всегда "перекрывает" любое динамическое условие(то, которое в свойствах прописывается), вне зависимости от выполнения условия. Вот вопрос как раз в том, чтоб "отменить" действие этого ModifyForm
Вы пробовали?
"Лучше меньше, да лучше" (C)
-
- Новый участник
- Сообщения: 23
- Зарегистрирован: 19 сен 2011, 15:35
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Воронеж
Re: f_ModifyForm и свойства объекта.
Пробовала... Динамическое свойство перестаёт работать после того, как хотя бы однажды выполнилось ModifyForm.Старик Крупский писал(а):Что-то сомнение берет... Действие выполнилось, ModifyForm сработала. Потом юзер меняет значение поля. Если нет действия по изменению значения переменной, но есть динамическое свойство, почему бы ему не сработать?os_cherepanova писал(а):просто в документации написано, что ModifyForm всегда "перекрывает" любое динамическое условие(то, которое в свойствах прописывается), вне зависимости от выполнения условия. Вот вопрос как раз в том, чтоб "отменить" действие этого ModifyForm
Вы пробовали?
Anderyt, да, наверное придётся делать много разных флажков(хотя не хочется). Одна проверка была бы гораздо удобнее...
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: f_ModifyForm и свойства объекта.
а все таки, как ты себе это представляешь?
нажали ОК, выполнилась проверка, поле стало красным. юзер его исправил. что должно при этом стать с фоном поля?
нажали ОК, выполнилась проверка, поле стало красным. юзер его исправил. что должно при этом стать с фоном поля?
лучше день потерять, потом за пять минут долететь!
-
- Новый участник
- Сообщения: 23
- Зарегистрирован: 19 сен 2011, 15:35
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Воронеж
Re: f_ModifyForm и свойства объекта.
Данные с формочки записываются в таблицу-массив.
Нажали "Записать в таблицу". Поля "заголовок" не было введено корректно- невведенное поле стало красным.
После этого пользователь ставит флажок "Не вводить заголовок" - поле стало серым. Нажал "Записать в таблицу" при корректных данных - все поля стали белыми , все галочки сбросились, флажки остались рабочими. Начали заполнять новый раздел, при отмечании галочек "это поле не вводить" поле становится серым.
Нажали "Записать в таблицу". Поля "заголовок" не было введено корректно- невведенное поле стало красным.
После этого пользователь ставит флажок "Не вводить заголовок" - поле стало серым. Нажал "Записать в таблицу" при корректных данных - все поля стали белыми , все галочки сбросились, флажки остались рабочими. Начали заполнять новый раздел, при отмечании галочек "это поле не вводить" поле становится серым.
- Anderyt
- Активный участник
- Сообщения: 777
- Зарегистрирован: 15 июл 2004, 13:15
- Используемое ПО: Lotsia PDM PLUS
- Откуда: Тюмень
- Контактная информация:
Re: f_ModifyForm и свойства объекта.
хм.. видится 2 варианта
1. добавляем к полям, которые должны иногда гореть красным, переменные-флаги. в выражении для фона настраиваем так, чтобы фон был серым если "бла-бла", как сейчас, и красным, если флаг = 1. по кнопке Копировать проверяем все те же условия, что и сейчас, но вместо зажигания фона ставим 1 в соответствующий флаг. это даже без modifyform можно сделать. на изменение поля ставим действие, которое будет ставить флаг этого поля в 0, чтобы заработало обычное условие для фона.
2. проверки переносим из кнопки Копировать в сами поля. причем тут же можно учитывать все связанные поля (галочки Без названия, например), и наличие данных в самом поле. или серым, или белым, или красным. фон будет работать в динамике, причем сразу проверять все правильно. далее надо будет ограничить нажатие кнопки Копировать, чтобы ошибочные данные не обрабатывались. можно попробовать анализировать фон конкретных полей через describeform, если есть красный - то по кнопке ничего не делаем.
но в итоге надо конечно стремиться к тому, чтобы выражение для фона хранилось в одном экземпляре, имхо..
1. добавляем к полям, которые должны иногда гореть красным, переменные-флаги. в выражении для фона настраиваем так, чтобы фон был серым если "бла-бла", как сейчас, и красным, если флаг = 1. по кнопке Копировать проверяем все те же условия, что и сейчас, но вместо зажигания фона ставим 1 в соответствующий флаг. это даже без modifyform можно сделать. на изменение поля ставим действие, которое будет ставить флаг этого поля в 0, чтобы заработало обычное условие для фона.
2. проверки переносим из кнопки Копировать в сами поля. причем тут же можно учитывать все связанные поля (галочки Без названия, например), и наличие данных в самом поле. или серым, или белым, или красным. фон будет работать в динамике, причем сразу проверять все правильно. далее надо будет ограничить нажатие кнопки Копировать, чтобы ошибочные данные не обрабатывались. можно попробовать анализировать фон конкретных полей через describeform, если есть красный - то по кнопке ничего не делаем.
но в итоге надо конечно стремиться к тому, чтобы выражение для фона хранилось в одном экземпляре, имхо..
лучше день потерять, потом за пять минут долететь!