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

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
6
всем привет!
проблем вот в чем:
агентом обробляю документ. вичисляю значение поля Сума. припустим = 7000
далее ищу вю. далее колекция документов, и теперь самое оно:
в колекции документов есть
A(10000)
B(25000)
C(50000)
как сделать чтоб если у меня значение поля Сума=< 10000 вибирался документ А(10000)
если я просто сделаю поиск по ключу то dc = 0 получу.....
 

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
выбирай нужную колекцию типа
set col = db.Search({a+b+c<10000}, nothing, 0)
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
6
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
 
Y

Yakov

Нужно указывать формулу вроде той, что в отборе документов в представлении.
Set wfcol = db.Search({SumaEnd<10000}, Nothing, 0)
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
6
Yakov
да ищет, сначала обрадовался......;) но потом понял, нашло то документ из которого я брал "SumaEnd" тоесть поточний документ........:(
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
что-то мне кажется что одним запросом тут не обойдешься.
Не проще, если же есть коллекция документов, в цикле проходить коллекцию и найти нужный документ.
Критерием нужного документа по идее должно быть наибольшее отрицательное значение между суммой исходного документа и документа из коллекции (т.е. приближающиеся к 0)
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
6
NickProstoNick
нету колекции......откуда она должна била взятся?
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
6
NickProstoNick
ето на будующее, написано...ето результат так сказать что должен бить
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
6
NickProstoNick
сорри вчера не смог отписать

итак
1. вичисляем "ключ"
2. по ключу надо найти колекцию документов.
3. ключ практически всегда будет не совпадать с "ключем колекции"
4. вю, в которой ми будем искать нужную колекцию имеется 3 документа(с временем может бить больше)
4. ети документи отсортировани, и в первой колонке имеем
10000
25000
50000
итак как мне задать в скрипте, чтоб система меня поняла, что если я задаю ключ <=10000 то через колекцию мне будет возвращатся документ 10000, и так далее
 
O

Omh

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

А вообще нафига коллекция?
Идёшь по view и процессишь доки, которые удовлетворяют условию.
Кагбэ всё.
 

Cleric-Lviv

Well-known member
03.01.2008
603
0
BIT
6
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
и без колекции.... просто не устраивает следующее:
если добавить еще один маршрут придется менять/дописать скрипт.....
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
и без колекции.... просто не устраивает следующее:
если добавить еще один маршрут придется менять/дописать скрипт.....
Ну думаю и с коллекцией тебе придется переписывать скрипт. Чтоб не переписывать - границы сумм надо параметризовать черед док какой нить
 
Мы в соцсетях:

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