Помощь нубу

B

beloff

Нужна помощь (поиском пользовался) - отображение на хпаге значений, отформатированных @ формулами. Пример - биндится обычное поле (только из другой базы) содержанием --------*-------*------
на форме лотуса компутедтекстом выводится @(Word;"*":2). Как такое же реализовать на паге? Если только жабаскриптом то как? Примерно понимаю что тут обычный биндер не сработает, нужно искать дб, потом документ по униду, потом уже из документа делать return @(Word,"*",2). хотелось бы знать - это единственный путь или есть менее сложные? Дополнительные поля служебные тоже можно сделать с исходной доке, но опять же - хотелось бы с минимумом телодвижений, исключительно, так сказать, "силой мысли Генерального секретаря ЦК КПСС"
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
ничё не понятно
"на форме лотуса компутедтекстом выводится @(Word;"*":2) " - так там (в доке) есть сохранённый стринг "--------*-------*------ "??
тада бинди этот стринг, разбивай сплитом в arr и показывай аrr[n]
если нет, знач берётся через gеtdocfield или dbloocup - т.е. и юнид, и дб, и сервер известны, по ним и биндить док
 
B

beloff

ничё не понятно
"на форме лотуса компутедтекстом выводится @(Word;"*":2) " - так там (в доке) есть сохранённый стринг "--------*-------*------ "??
тада бинди этот стринг, разбивай сплитом в arr и показывай аrr[n]
если нет, знач берётся через gеtdocfield или dbloocup - т.е. и юнид, и дб, и сервер известны, по ним и биндить док
в доке есть этот стринг, я ж и пишу что в лотусевой морде все что нужно выводится через word, прошу хэлп как реализовать это на паге-> аналог word. Как я вижу пока - тут или байдинться напрямую в поле или жабаскриптом через сервер, дб и т.п.
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
в доке есть этот стринг, я ж и пишу что в лотусевой морде все что нужно выводится через word, прошу хэлп как реализовать это на паге-> аналог word. Как я вижу пока - тут или байдинться напрямую в поле или жабаскриптом через сервер, дб и т.п.
аналог - split и показываеешь элемент получившегося массива
1 биндишь поле со стрингом в "fieldname" /а штоб не отсвечивала, делаешь этому полю display: none (а не vIsible = false!!!)/
2 в computedField показываешь (Value => JS):
var str= getComponent(“fieldname”).getValue();
var arr = str.split('*');
arr[0]; //показали первый кусок стринги;
/это будет, канеш, SSJS/
------------
ЗЫ это будет быстрей, чем в каждом computedField лезть в док за стрингой и вырезать из неё кусок
 
Последнее редактирование:
B

beloff

аналог - split и показываеешь элемент получившегося массива
1 биндишь поле со стрингом в "fieldname"
2 в computedField показываешь (Value => JS):
var str= getComponent(“fieldname”).getValue();
var arr = str.split('*');
arr[0]; //показали первый кусок стринги;
/это будет, канеш, SSJS/


Error while executing JavaScript computed expression
Script interpreter error, line=1, col=46: 'getComponent()' is null

JavaScript code

1: var str = getComponent(document1.AuthorName).getValue();
2: var arr = str.split('*');
3: arr[1];

document1 это док в другой базе
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
document1 это док в другой базе
1 а этот датасорс то определён на хепаге???
2 ты же говоришь, что "в доке есть этот стринг, я ж и пишу что в лотусевой морде все что нужно выводится через word ", так что мешает simpleBinding-ом сбиндить его на xpage c формы документа?
просто перетаскиваешь его на страничку из закладки Data (справа вверху окна, там где ты контролы берёшь)
потом getComponent(''это самое имя поля, которое получилось "перетаскиванием"').getValue();
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
1 а этот датасорс то определён на хепаге???
2 ты же говоришь, что "в доке есть этот стринг, я ж и пишу что в лотусевой морде все что нужно выводится через word ", так что мешает simpleBinding-ом сбиндить его на xpage c формы документа?
просто перетаскиваешь его на страничку из закладки Data (справа вверху окна, там где ты контролы берёшь)
потом getComponent(''это самое имя поля, которое получилось "перетаскиванием"').getValue();
-----------
или я тя совсем не понимаю(
 
B

beloff

-----------
или я тя совсем не понимаю(
Дано:
база 1=веб морда, сбирает данные из 3х других баз (просмотр, новые доки для безклиентных граждан)
база 2=лотусевая. Хранит доки. В базе2 док хранит AuthorName в строке типа "100z431*Ковалёва Валентина Лаврентьевна*CN=Valentina Kovaleva"
Задача.
В доке базы1 отображать для просмотра вместо поля "100z431*Ковалёва Валентина Лаврентьевна*CN=Valentina Kovaleva" просто Ковалёва Валентина Лаврентьевна.
Решение.
В лотусной базе это реализовано через ворд.
а) SimpleBind из базы2 в базу1 поля AuthorName выводит на хпаге полное значение этого поля "100z431*Ковалёва Валентина Лаврентьевна*CN=Valentina Kovaleva", что нам не нужно.
б) SimpleBind из базы2 в базу1 поля AuthorName вернул нам эту строку, я подключаю скрипт в компутед поле уже в этому полю документа базы1 и получаю те же йайца только в профиль - рантайм ошибка 'getComponent()' is null
Screenshot_2.png
 

garrick

Lotus Team
26.10.2009
1 367
152
BIT
364
getComponent("ИМЯ_ПОЛЯ") - получает поле текущей страницы XPage.
getComponent("ИМЯ_ПОЛЯ").getValue() - получает значение поля текущей страницы XPage.
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
а) SimpleBind из базы2 в базу1 поля AuthorName выводит на хпаге полное значение этого поля "100z431*Ковалёва Валентина Лаврентьевна*CN=Valentina Kovaleva", что нам не нужно.
какраз нужно)) - биндим и скрываем от показа
у тебя это поле AutorName получается
потом, в computedfield -> var str = getComponent('AuthorName').getValue(); ......
ток твой editbox AuthorName должен быть выше на страничке, чем computedfield - ы для показа
---------------------------
или, совсем без буферного поля AuthorName в computedfield:
var str = document1.AuthorName
или
var str = document1.getItemValueString('AuthorName');
 
Последнее редактирование:
B

beloff

какраз нужно)) - биндим и скрываем от показа
у тебя это поле AutorName получается
потом, в computedfield -> var str = getComponent('AuthorName').getValue(); ......
ток твой editbox AuthorName должен быть выше на страничке, чем computedfield - ы для показа
дык я ж обо что и пишу: все это я понял и проделал (кроме того чтоб повыше засунуть авторнэйм), получаю ошибку "валуе компутедполя = еггог"
Error source
Page Name:/pdForm.xsp
Control Id: computedField1
Property: value

Exception
Error while executing JavaScript computed expression
Script interpreter error, line=1, col=38: 'getComponent()' is null

JavaScript code

1: var str = getComponent("AuthorName").getValue();
2: var arr = str.split('*');
3: arr[1];
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
кста, заметил на скрине 4 эррора и 1 варнинг (вот слепашарый я, раньше не увидел)))
надо прояснить и устранить
после этого должно всё работать если в AuthorName нужное значение из дока подтягивается
-------------
\XML странички пришли, если не разберёшься\
 
B

beloff

кста, заметил на скрине 4 эррора и 1 варнинг (вот слепашарый я, раньше не увидел)))
надо прояснить и устранить
после этого должно всё работать если в AuthorName нужное значение из дока подтягивается
-------------
\XML странички пришли, если не разберёшься\
да это варнинги по другим базам, ошибки я секу. В авторнаме подтягивается то что нужно (длинный стринг)
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
да это варнинги по другим базам, ошибки я секу. В авторнаме подтягивается то что нужно (длинный стринг)
варнинг - поХ
а эррор не даст скомпИлится хоть ты тресни)))
у тебя страничка скомпилена ДО первого эррора, всё , что позже - в расчёт не принимается
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
кстати о птичьках:
@Word (JavaScript)
Returns a word from a string.
@Word(value:string, separator:string, n:int) : string
такшта, всё короче (вот не пользовался, и ваще собак в JS забываю, а они шустрее :)
 
Мы в соцсетях:

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