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

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

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

Помогите разобраца с @dblookup

  • Автор темы Автор темы Adron
  • Дата начала Дата начала
<!--QuoteBegin-Adron+22:09:2006, 13:49 -->
<span class="vbquote">(Adron @ 22:09:2006, 13:49 )</span><!--QuoteEBegin-->ну етить. как быть то тогда?
[snapback]44274" rel="nofollow" target="_blank[/snapback]​
[/quote]
Если есть возможность пронумеровать все документы по порядку, то будет очень просто.
 
Создать профильный документ, в котором будет находиться счетчик... и при создании нового документа значение docnum будет браться из профиля, а значение счетчика инкрементироваться
Вот для этого профайл-то и не годится, бо кешируется
 
Тогда делаем представление с первой сортированной колонкой содержащей эти номера.
Чтобы узнать общее количество документов есть два способа: через @Elements(@DbColumn(...)) по колонке с небольшим значением. Это если документов не очень много.
Второй - хранить количество в отдельном документе. Обновлять количество при удалении, добавлении документа. Это для любого количества документов.
Зная количество документов, легко получить случайное число в диапозоне. С помощью числа через @DbLookup(...) с ключем равным случайному числу получаем или необходимые значения (придется или вызывать @DbLookUp столько раз, сколько нужно значений, или как-то скомпоновать колонку из нескольких значений), или вызвать @DbLookUp с параметром [RETURNDOCUMENTUNIQUEID], и по UNID через @GetDocField получить нужные поля.
 
Имеется представление view1, в нем документы с полями NumDoc, Subject и Body. Поде NumDoc заполняется автоматически по формуле @DocNumber. Как мне сделать общее поле в которое бы выводилось рандомный документ (Subject + Body)? Пробовал так:
Shared code\Fields\Test
AA:=@DBLookup("";"";"view1";5*@Random;NumDoc);
AA
ничего не выходит :)
Вернемся к истокам, т.е. к задаче: вывести 2 поля случайного док-та. Так?
Во 1-х: @Random возвращает дробное значение в диапазоне 0..1. Я не путаю (help-а сейчас нет, по памяти)? Ключ надо нормализовать: @Integer(@Random*MaxNum)+1

key:=@Integer(@Random*MaxNum)+1;
@DbLookUp("";""; "ViewName"; key; "Subject")+@DbLookUp("";""; "ViewName"; key; "Body")
К ста: Body небось RTF? Тогда в данном контексте DbLookUp его не возьмет...

Во 2-х: предполагается, что все док-ты уникально нумерованы и макс.номер известен. Это отдельная нехилая (для распределенной среды!) задача
 
Тогда делаем представление с первой сортированной колонкой содержащей эти номера.
Чтобы узнать общее количество документов есть два способа: через @Elements(@DbColumn(...)) по колонке с небольшим значением. Это если документов не очень много.
Второй - хранить количество в отдельном документе. Обновлять количество при удалении, добавлении документа. Это для любого количества документов.
Зная количество документов, легко получить случайное число в диапозоне. С помощью числа через @DbLookup(...) с ключем равным случайному числу получаем или необходимые значения (придется или вызывать @DbLookUp столько раз, сколько нужно значений, или как-то скомпоновать колонку из нескольких значений), или вызвать @DbLookUp с параметром [RETURNDOCUMENTUNIQUEID], и по UNID через @GetDocField получить нужные поля.
я попробовал все это другим путем реализовать (через LS), но тут наткнулся на другую проблему...
при выводе результата в форму, т.е. нужное значение я вписываю в поле документа. в данном случае в клиенте это отображается а в web нет. как быть? мне как раз надо в вэбе все это выводить
 
<!--QuoteBegin-Adron+25:09:2006, 13:08 -->
<span class="vbquote">(Adron @ 25:09:2006, 13:08 )</span><!--QuoteEBegin-->я попробовал все это другим путем реализовать (через LS), но тут наткнулся на другую проблему...
при выводе результата в форму, т.е. нужное значение я вписываю в поле документа. в данном случае в клиенте это отображается а в web нет. как быть? мне как раз надо в вэбе все это выводить
[snapback]44404" rel="nofollow" target="_blank[/snapback]​
[/quote]
LS не работает в вебе. Только java, java script или формулы. Или вызов LS агента на сервере.
 
Вернемся к истокам, т.е. к задаче: вывести 2 поля случайного док-та. Так?
Во 1-х: @Random возвращает дробное значение в диапазоне 0..1. Я не путаю (help-а сейчас нет, по памяти)? Ключ надо нормализовать: @Integer(@Random*MaxNum)+1

key:=@Integer(@Random*MaxNum)+1;
@DbLookUp("";""; "ViewName"; key; "Subject")+@DbLookUp("";""; "ViewName"; key; "Body")
К ста: Body небось RTF? Тогда в данном контексте DbLookUp его не возьмет...

Во 2-х: предполагается, что все док-ты уникально нумерованы и макс.номер известен. Это отдельная нехилая (для распределенной среды!) задача
нет. Body не RTF. к целому числу я привел (key:=@Round(@Random*MaxNum)+1;)

LS не работает в вебе. Только java, java script или формулы. Или вызов LS агента на сервере.
а я как раз с java и javascript вообще незнаком. умоляю, подскажите как сделать
 
Для: Adron
Я выше написал. Java Script не нужен в этом случае. Всё на формулах делается.
 
Вернемся к истокам, т.е. к задаче: вывести 2 поля случайного док-та. Так?
Во 1-х: @Random возвращает дробное значение в диапазоне 0..1. Я не путаю (help-а сейчас нет, по памяти)? Ключ надо нормализовать: @Integer(@Random*MaxNum)+1

key:=@Integer(@Random*MaxNum)+1;
@DbLookUp("";""; "ViewName"; key; "Subject")+@DbLookUp("";""; "ViewName"; key; "Body")
К ста: Body небось RTF? Тогда в данном контексте DbLookUp его не возьмет...

Во 2-х: предполагается, что все док-ты уникально нумерованы и макс.номер известен. Это отдельная нехилая (для распределенной среды!) задача
попробовал этот метод. но он мне выдает все записи а не конкретную запись по ключу :)
 
Для: Adron
Я выше написал. Java Script не нужен в этом случае. Всё на формулах делается.
уже пробую все упростить до невозможности.
Документ дава поля (Subject, Body (Body не RTF)). в Subjet, тупо проставил порядковые номера. сделал представление (view1), где поля из документа. Subject и Body. По Subject выставил сортировку.
создал в Shared Code\Fields поле tst (Computed for display). В Value прописал:
key:=2
RES1:=@DBLookup("";"";"view1";key;"Subject");
RES1

в результате ошибка Field: 'tst': Entry not found in index or view's index not built
ну что тут теперь неправильно. выручайте. сроки горят. а я вроде как на такой мелочи застрял

ЗЫ
и это все надо выводить через web интерфейс
может у кого пример есть?
 
<!--QuoteBegin-Adron+26:09:2006, 06:12 -->
<span class="vbquote">(Adron @ 26:09:2006, 06:12 )</span><!--QuoteEBegin-->По Subject выставил сортировку.
[snapback]44448" rel="nofollow" target="_blank[/snapback]​
[/quote]
Сортировку нужно сделать по порядковому номеру.
 
может есть у кого примеры с @DBLookup-ом. поделитесь плиз
 
<!--QuoteBegin-Adron+26:09:2006, 12:15 -->
<span class="vbquote">(Adron @ 26:09:2006, 12:15 )</span><!--QuoteEBegin-->может есть у кого примеры с @DBLookup-ом. поделитесь плиз
[snapback]44469" rel="nofollow" target="_blank[/snapback]​
[/quote]
В хелпе есть примеры.
 
Колонка с порядковым номером - это первая отсортированная колонка в представлении?
В документах порядковый номер имеет числовой или строковой тип?
 
Колонка с порядковым номером - это первая отсортированная колонка в представлении?
В документах порядковый номер имеет числовой или строковой тип?
все. разобрался. поле документа было текстовое. четыре дня тупил из-за этого :ph34r:
пасиба всем за участие
 
Мы в соцсетях:

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