• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Выборка Для Представления

  • Автор темы orion
  • Дата начала
O

orion

Всем доброго времени суток!
Столкнулся со странным явлением.
Есть представление, в котором выборка документов идёт по условию:
Код:
select (form="Форма1" | form="Форма2") & (field1="Текст") & (field2=@date(@now))
- field2 - имеет формат Date/Time. Располагается в подформе, которая внедрена в формы Форма1 и Форма2.

А теперь главное. Если поле делаю Computed, то выборка документов не работает. Если поле - Editable, то выборка документов работает.
Это так и должно быть?
 

savl

Lotus Team
28.10.2011
2 591
309
BIT
138
Never use @Today or @Now in View selection or column formulas; these functions will kill your server.
Поля работаю, только что проверял, правда поле было текстовое.
Так что вопрос что именно прописано в поле field2, возможно там затесалось время.
 
S

susinmn

Всем доброго времени суток!
Столкнулся со странным явлением.
Есть представление, в котором выборка документов идёт по условию:
Код:
select (form="Форма1" | form="Форма2") & (field1="Текст") & (field2=@date(@now))
- field2 - имеет формат Date/Time. Располагается в подформе, которая внедрена в формы Форма1 и Форма2.

А теперь главное. Если поле делаю Computed, то выборка документов не работает. Если поле - Editable, то выборка документов работает.
Это так и должно быть?

1. Тормозить будет представление
Попробуй так: @Date(field2)=@Date(@TextToTime("Today"))
 
O

orion

savl

Поля работаю, только что проверял, правда поле было текстовое.
Так что вопрос что именно прописано в поле field2, возможно там затесалось время.

Поле именно Дата/Время. И, навряд ли, от смены типа Computed/Editable появляется/исчезает время.... :blush:

susinmn

1. Тормозить будет представление
Попробуй так: @Date(field2)=@Date(@TextToTime("Today"))

Твой вариант заработал с типом поля Computed. Не знаю даже в какой бубен стучать :D
Спасибо большое!
 

erdi

Green Team
20.08.2008
264
17
BIT
0
ну 1-е. Не использовать @now в представлениях...если без них никак, тогда уже лучше today := @Today; и (field2=today)
2-е На всякий случай я ставлю проверку f2:=@If(@IsText(field2);@TextToTime(field2);field2); и (f2=today)

объединив оба пожелания
Код:
today := @Today;
f2:=@If(@IsText(field2);@TextToTime(field2);field2);
select (form="Форма1" | form="Форма2") & (field1="Текст") & (f2=today)

Добавлено: для общего развития на будущее

 

savl

Lotus Team
28.10.2011
2 591
309
BIT
138
orion
Значит в поле field2 было время, раз @Date помогла.

Вот тебе пример LS агента, который каждое утро в 6 часов меняет дату в формуле.
Вполне быстро открывается представление после этого.

Поменяй как необходимо и сделай расписание, одно из решений для ухода от @Today/@Now

Код:
Option Public
Option Declare

Sub Initialize
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim dToday As New NotesDateTime(Today)
Dim sFormula As String

Set db = ses.Currentdatabase

Set view = db.Getview("Pay2Today")
sFormula = {SELECT Form = "Invoice":"InvoiceSF":"InvoiceNoF" & deleted = "" & StatusNumber = "600" & Srok = [}
sFormula = sFormula & dToday.Dateonly & {] }
sFormula = sFormula & { & @IsUnavailable($Conflict)} 
view.Selectionformula = sFormula

End Sub
 

savl

Lotus Team
28.10.2011
2 591
309
BIT
138
UpdateAll все базы обработает + окурки снесет , а если этого не надо?
Like Update, Updall rebuilds all corrupted view indexes and full-text search indexes that it encounters.
Так что думаю именно перестроить не получится, если не побить.
Так что лучше агентом.
 
O

orion

savl

Извиняюсь, поторопился вчера с выводом. Перепроверил - не работает и с "today" если поле ставится "Computed".
Учёл замечания. Взял агента на вооружение :blush: Спасибо!

erdi
Спасибо за ссылки!
 
Мы в соцсетях:

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