Проблема перестроения индекса представления

  • Автор темы ̸
  • Дата начала
Статус
Закрыто для дальнейших ответов.
̸
#1
Доброе время суток.

Помогите разобраться со следующей ситуацией. Имеется представление, в котором отображаются документы, сгруппированные по категориям "СЕГОДНЯ", "ВЧЕРА" и "ДРУГИЕ".

Вот собственно формула столбца. Так сказать единичный пример :unsure:

dt:=@TextToTime("TODAY");
@If(@Date(dt)=@Date(@Created); "СЕГОДНЯ"; @Date(dt)=@Date(@Adjust(@Created; 0; 0; 1; 0; 0; 0)); "ВЧЕРА"; "ДРУГИЕ")

Проблема заключается в том, что после создания документа - он попадает в категорию "СЕГОДНЯ". После этого над документом не производится никаких действий.

На следующий день документ, остается в категории СЕГОДНЯ, хотя по идее должен переходить в категорию ВЧЕРА. Если ручками обновить представление комбинацией Shift+F9, то документ попадает в нужную категорию.

Решений проблемы существует несколько
1) можно каждый день прокладывать агентом текущую дату в определенное поле и затем использовать его в формуле столбца вместо @TextToTime
2) можно запустить, задачу обновления индекса вьюшек (как долго будет отрабатываться для одной или всех баз мной не опробывано)
3) что то другое может есть еще ))

Но вопрос стоит как сделать правильно. Представления, пляшущие от текущей даты, частенько используются. Но не всегда отображаются корректно (
При использовании @today все работает четко, но очень долго и не эффективно. Так что.... Поделитесь мыслями, кто встречался с такой ситуацией.

Спасибо ;)
 

morpheus

скриптописец
07.08.2006
3 915
1
#2
я делаю как указанно в п.1
тоесть ночью агентом проставляю дату, чего и Вам советую
 
̸
#3
Morpheus Спасибо за совет. Если других достойных вариантов не будет, буду писать такой агент ) А пока же хотелось бы просто получить как можно больше информации для саморазвития :unsure:
 

abbatik

Lotus team
20.10.2008
277
0
#4
Вот агент:

Код:
Forall v In db.Views
Call v.Refresh ()
End Forall
Если нужно обновлять определенные виды, то можно список видов сделать.

И еще, если данных в базе много, то советую перед этим еще зашедулить compact и fixup этой базы в администраторе, перед выполнением агента.
 
30.05.2006
1 345
11
#5
Мой вариант: ночным агентом "подкладывать" дату не в поля документов, а в ФОРМУЛУ СТОЛБЦА вьюшки!
Т.е. вместо
dt:=@TextToTime("TODAY");
подставлять сегодня что-то вроде
dt:=[15.11.2008];
завтра
dt:=[16.11.2008]; и т.д..
 
Статус
Закрыто для дальнейших ответов.