• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

ищем документ по ключу

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

Cleric84

Well-known member
03.01.2008
599
0
всем привет!
проблем вот в чем:
агентом обробляю документ. вичисляю значение поля Сума. припустим = 7000
далее ищу вю. далее колекция документов, и теперь самое оно:
в колекции документов есть
A(10000)
B(25000)
C(50000)
как сделать чтоб если у меня значение поля Сума=< 10000 вибирался документ А(10000)
если я просто сделаю поиск по ключу то dc = 0 получу.....
 
выбирай нужную колекцию типа
set col = db.Search({a+b+c<10000}, nothing, 0)
 
ToxaRat
чтото не очень получается;)
Код:
wf =docwf.GetItemValue("SumaEnd")(0)
Set wfcol = db.Search({wf<10000}, Nothing, 0)
тут колекция =0

или пробовал иначе
Set wfcol = db.Search({docwf.GetItemValue("SumaEnd")(0)<10000}, Nothing, 0)
здесь пишет notes error, formula errore
 
Нужно указывать формулу вроде той, что в отборе документов в представлении.
Set wfcol = db.Search({SumaEnd<10000}, Nothing, 0)
 
Yakov
да ищет, сначала обрадовался......;) но потом понял, нашло то документ из которого я брал "SumaEnd" тоесть поточний документ........:(
 
что-то мне кажется что одним запросом тут не обойдешься.
Не проще, если же есть коллекция документов, в цикле проходить коллекцию и найти нужный документ.
Критерием нужного документа по идее должно быть наибольшее отрицательное значение между суммой исходного документа и документа из коллекции (т.е. приближающиеся к 0)
 
NickProstoNick
нету колекции......откуда она должна била взятся?
 
NickProstoNick
ето на будующее, написано...ето результат так сказать что должен бить
 
NickProstoNick
сорри вчера не смог отписать

итак
1. вичисляем "ключ"
2. по ключу надо найти колекцию документов.
3. ключ практически всегда будет не совпадать с "ключем колекции"
4. вю, в которой ми будем искать нужную колекцию имеется 3 документа(с временем может бить больше)
4. ети документи отсортировани, и в первой колонке имеем
10000
25000
50000
итак как мне задать в скрипте, чтоб система меня поняла, что если я задаю ключ <=10000 то через колекцию мне будет возвращатся документ 10000, и так далее
 
Ну тут только перебором/анализом коллекции.
Если на выходе тебе нужна именно коллекция, то её можно создать так :
Код:
Set Dc = Db.Search({@False}, Nothing, 0) 'сделал пустую коллекцию, есть вариант чуть быстрее, но для иллюстрации и этот покатит
'Какой-то космический скрипт, который анализирует документы во view и в нужный момент делаем
Call Dc.AddDocument(DesiredDoc)

А вообще нафига коллекция?
Идёшь по view и процессишь доки, которые удовлетворяют условию.
Кагбэ всё.
 
Omh
сделал
Код:
wfs =docwf.GetItemValue("SumaEnd")(0)
If wfs<=10000 Then 
uniq= Evaluate("@if(SumaEnd<=10000; 10000; SumaEnd<=25000; 25000; 50000)", docwf)
Call docwf.Save(True, True)
End If
и без колекции.... просто не устраивает следующее:
если добавить еще один маршрут придется менять/дописать скрипт.....
 
и без колекции.... просто не устраивает следующее:
если добавить еще один маршрут придется менять/дописать скрипт.....
Ну думаю и с коллекцией тебе придется переписывать скрипт. Чтоб не переписывать - границы сумм надо параметризовать черед док какой нить
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab