• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

View или не View

  • Автор темы Guest_Den_*
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest_Den_*

Нужна подсказка... :)

В одном из документов базы есть поле "Дата создания документа" и "Курс валюты". Необходимо что бы поле "Курс валюты" автоматом заполнялось в зависимости от поля "Дата создания документа". Курсы валют должен вводить ручками один из пользователей БД, Я создал формочку "Курс валют" и вьюху "Курс валют". Соответственно имею данные за каждый месяц. Вопрос : как програмно выбрать во вьюхе документы только за нужный мне месяц и взять из этого вью документ с большей датой за необходимый месяц? Никак не могу разобраться..... А может эта задача решается по другому? Может не надо вью использовать?????

Спасибо огромное! :(

Р.S. Если непонятно объяснил - постараюсь исправить.
 
D

Domino6

Вид название "currency"
1-я колонка категоризация по месяцу (текст)
2-я колонка сортировка по дате (убывание)
3-я колонка курс

Формула определения курса
REM "номер месяца текстовый";
m:="11";
rez:=@DbLookUP("":"NoCache";"":"";"currency";m;3);
FIELD kurs:=@If(@Iserror(rez);@Failure("Курс не определен");rez);
""
 
G

Guest_Den_*

<!--QuoteBegin-Domino6+1:11:2005, 18:34 -->
<span class="vbquote">(Domino6 @ 1:11:2005, 18:34 )</span><!--QuoteEBegin-->Вид название "currency"
1-я колонка категоризация по месяцу (текст)
2-я колонка сортировка по дате (убывание)
3-я колонка курс

Формула определения курса
REM "номер месяца текстовый";
m:="11";
rez:=@DbLookUP("":"NoCache";"":"";"currency";m;3);
FIELD kurs:=@If(@Iserror(rez);@Failure("Курс не определен");rez);
""
[snapback]26565" rel="nofollow" target="_blank[/snapback]​
[/quote]


Спасибо за внимание, но чего-то не выходит.
Попробовал проверить что выдает @DbLookUP : Ошибка сервера: Не найдена запись в индексе.
База проиндексирована. В чём лажа???
 
D

Domino6

В виде в 1-ой колонке должен быть текстовый номер месяца
Формула для колонки

@Text(@Month(DateField))

Дяа для взятия последнего (первого из списка поскольку сортировка по убыванию)

FIELD kurs:=@If(@Iserror(rez);@Failure("Курс не определен");@Subset(rez;1));
 
G

Guest

Спасибо получилось. Причём только тогда когда я сделал ВСЕ столбцы во вьюхе текстовыми.

Вопрос: я могу "построить" из вьюхи средствами LotusScript что-то вроде массива курсов за определенный месяц и потом уже искать необходимую мне дату?

Просто задача усложнилась: необходимо брать курс по следующему алгоритму: если за искомое число курс не обнаружен то надо брать ближайшее меньшее число.
Т.е. если бы это был C++ я бы в цикле построил алгоритм выборки, а как здесь (в lotus) решаются такие таски?
 
D

Domino6

на скриптах получаеш коллекцию

Set col=view.GetAllDocumentsByKey

и ходиш по ней как тебе надо
 
G

Guest

ОК. А col это какой тип данных?
Нет ли у Вас примерчика использования?
 
D

Domino6

Смотри пример в хелпе по функии GetAllDocumentsByKey в классе NotesView
 
G

Guest

Понял. Будем разбираться. :blink: Спасибо за ответы!
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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