• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Непонятки с вьюшкой

  • Автор темы Sandro
  • Дата начала
S

Sandro

Всем привет. Вопрос для меня совершенно не понятный, но думаю из-за неграмотности.
Суть такая , есть вьюшка у которой есть столбец отображающий картинку по такой формуле

@If(job_date="" & job_date_finish="";79;@If(job_date>@Today & job_date_finish="" ;183;@If(job_date<@Today & job_date_finish!="" ;182;181)))
При любом раскладе какой нить значок, то должен отображаться)))

У меня есть операция , которая при сохранении документа, меняет в других документах поле job_date, вот после этого действия , во вьюшке документы идут вообще без значка, в чём нюанс, подскажите не разумному )))) ????
Документ пересохраняешь, всё нормально отображается.
 
A

Akupaka

Посмотри, что в поле job_date после того кода, дата ли или текст похожий на дату?
Проверку можно задать в столбце, например:
Код:
@If(!@IsTime(job_date); 15; @If(job_date=""...
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Не стоит использовать @Today в формуле столбца.
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
КМК, в любом случае @TextToTime("@Today") предпочтительнее.
Тоже не очень хорошо. Если документ не меняется, формула не пересчитывается. @TextToTime("Today") возвращает старую дата. Каждый день придётся запускать переиндексирование.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
я вовсе не понимаю решений где во столбцах "используют" значения меняющиеся во времени
что мешает сделать форму с полем отбора и категоризированную вьюшку (как пример)
 
A

Akupaka

Если документ не меняется, формула не пересчитывается. @TextToTime("Today") возвращает старую дата
А можно подробнее?
Каждый день придётся запускать переиндексирование
А задача индексера с этим самостоятельно не справляется?
что мешает сделать форму с полем отбора и категоризированную вьюшку (как пример)
И что получим? Я не понял...
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
A

Akupaka

А что подробнее?
Ну, т.е. как понимать сказанное?
Если документ не меняется, формула не пересчитывается. @TextToTime("Today") возвращает старую дата
Как формула возвращает старую дату по документу, который не менялся, если она не зависит от данных в документе?
Где об этом можно почитать подробнее, если не хочется повторяться? :please:
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Воспользовался поиском. :please:


Добавлено:
 
A

Akupaka

Воспользовался поиском
Устыдил :please: Но я не могу понять как это происходит. Как этот момент уловить? Я вот имею вид, формула отбора которого включает @TextToTime("Today"), но при открытии вида, я вижу актуальное состояние данных, т.к. в виде, который этой формулы не имеет, часть данных по соответствующему периоду идентично.
Хотя мы сильно увлеклись и ушли от начального вопроса темы... Автор, извини. Может стоит вынести разговор в отдельную тему?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Хз.
Только что проверил в локальной базе. Создал представление с двумя столбцами и формулами @TextToTime("Today") и @Today. Запустил. Оба показывали дату 26.09.2011. Перевёл дату назад, закрыл/открыл клиент, столбцы показывают 26.09.2011 и 25.09.2011 соответственно.
 
A

Akupaka

Хм... А есть ли разница в результате даного выражения в качестве формулы вида и формулы столбца?
Данные в столбцах не изменились, т.к. документы были неизменены, но, если использовать выражение в качестве формулы отбора, то условие отбора в представление должно ведь измениться?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
В качестве формулы отбора тоже использовал когда-то давно. Не работает как надо. Сейчас проверять уже влом.
 
A

Akupaka

Попробовал локальную реплику. Открыл вид, построился вид, увидел данные за 2011 год, закрыл нотес, поменял год, открыл вид, увидел - 2011, обновил Шифт+Ф9, увидел - 2010, закрыл нотес, открыл, открыл вид, вижу - 2011. Т.е. обновилось само. Зараза :please:
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Попробовал локальную реплику. Открыл вид, построился вид, увидел данные за 2011 год, закрыл нотес, поменял год, открыл вид, увидел - 2011, обновил Шифт+Ф9, увидел - 2010, закрыл нотес, открыл, открыл вид, вижу - 2011. Т.е. обновилось само. Зараза :please:
Перед тем, как увидел 2011, год назад вернул?
shift-f9 - всё-таки не обновление, а перестройка индекса.
 
A

Akupaka

Перед тем, как увидел 2011, год назад вернул?
Да, вернул, упустил в комментарии, извиняюсь.
И да, перестройка.

Думаю, может лучше через переменную окружения дату читать? Или при этом тоже необходимо будет индексы вручную обновлять?..
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
И что получим? Я не понял...
а что мы получаем устанавливая время в столбце? ;)
в топике - некий статус (читай фильтр)
дык вот категоризированный вью, вынесенный на форму, с критерием отбора - оно и есть
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!