Помощь нубу

B

beloff

варнинг - поХ
а эррор не даст скомпИлится хоть ты тресни)))
у тебя страничка скомпилена ДО первого эррора, всё , что позже - в расчёт не принимается
это эроры по другим базам, в этой все ок

кстати о птичьках:
@Word (JavaScript)
Returns a word from a string.
@Word(value:string, separator:string, n:int) : string
такшта, всё короче (вот не пользовался, и ваще собак в JS забываю, а они шустрее :)
это тоже видел только оно тоже не работает (пустое место выдает)
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
это тоже видел только оно тоже не работает (пустое место выдает)
работает, но раз пустоту выдаёт, значь пустота на входе или штота невнимательно делал
я смотрю, ты ток 1 кусок стринги берёшь и 1 раз, тада луче сразу в computedfield положить @Word(document1.getItemValueString('AuthorName'),'*',2);
без буферного эдитбокса
 
  • Нравится
Реакции: Vertigo и beloff
B

beloff

работает, но раз пустоту выдаёт, значь пустота на входе или штота невнимательно делал
я смотрю, ты ток 1 кусок стринги берёшь и 1 раз, тада луче сразу в computedfield положить @Word(document1.getItemValueString('AuthorName'),'*',2);
без буферного эдитбокса
отработало, за это наше вам нижайшее. (y)

Вопрос следующий:
внутри существующего документа сделал кнопку. По кнопке должен выходить новый документ с передачей данных в поля из родительского. С чего начать?
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
точно так же, как в классике, ток SSJS - создай док, запиши чёнадо, сохрани
var doc = database.createDocument(); //это current database естественно, если в другую - её надо сначала получить (так же, как и в LS)
doc.form = "myform";
doc.field = document1.field
......
doc.save()
ток не забывай, что всякая фигня, типа - document1.field с твоей странички, это инфа в бекэенде - в памяти на сервере, соотв. чтоб её получить оттуда, её надо туда сначала отправить) (если они на страничке изменялись\вычислялись\редактировались)
обычно, в общем случае, эти айтемы должны быть отрефрешены
------------------------
если хочется в CSJS, используй REST service (в экстеншин лайбрари он) - тогда можешь без рефрешей брать инфу со страничке (прям, которую видишь на экране)
это лучшая практика ИМХО (произвольная и удобная комбинация клиентского и серверного JS)
такшта почитай про него - примеров в инете море на любой вкус

если не читал, почитай, там и твой последний вопрос есть
 
Последнее редактирование:

garrick

Lotus Team
26.10.2009
1 367
152
BIT
364
не секонд едишн ли часом надыбал?) а то поделись...
Second Edition - это вообще не книга, а дополнение к первой книге. Там всего одна глава "Xpages Mobile Application Development". Конечно, может быть это "демо" вариант какой-нибудь, но по крайней мере я других нигде не видел.
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
Second Edition - это вообще не книга, а дополнение к первой книге. Там всего одна глава "Xpages Mobile Application Development". Конечно, может быть это "демо" вариант какой-нибудь, но по крайней мере я других нигде не видел.
Не, ты рекламу видел
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
принт я видел, только что он куда пишет хз, в хелпе написано в какой то лог, где этот лог
Почитай про view.postScript(alert(.....
Вызывает csjs from ssjs
Это и в дальнейшем будет полезно, штоп комбинировать северный и клиентский js
А ващета, можешь писать в какойнить временное поле или диалогбокс
 
B

beloff

var db:NotesDatabase = session.getCurrentDatabase();
var dbpd:NotesDatabase = sys.getDb("pd");
var doc = currentDocument.getDocument();
var docpd = dbpd.createDocument();
docpd.Form = "Request";
docpd.Curator = "**" & doc.getItemValueString("RqOwnerAddress1");
docpd.AddAccessFromDocSourceRead = doc.RqOwnerTeamMemberAddrs;
docpd.RequestName = doc.RequestName;
docpd.RequestCode = doc.RequestNumber;
docpd.Client = doc.RCustomerCompany;
docpd.ClientID = doc.RCustomerCompanyID;
docpd.LinkOnDocSource = "Requests"
docpd.SourceDbServer = db.getServer();
docpd.SourceDbPath = db.getFilePath();
docpd.DocSourseID = doc.Universalid;
var pageId = appConfig.getString("page_pd_form");
sys.createDoc(pageId);

что-то не передает значения в новый документ из текущего. doc.getItemValueString("RqOwnerAddress1") вывел в компутедполе - значение есть. Что я делаю не так?
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
45
1 var db:NotesDatabase = session.getCurrentDatabase();
2 var dbpd:NotesDatabase = sys.getDb("pd");
3 var doc = currentDocument.getDocument();
4 var docpd = dbpd.createDocument();
5 docpd.Form = "Request";
6 docpd.Curator = "**" & doc.getItemValueString("RqOwnerAddress1");
docpd.AddAccessFromDocSourceRead = doc.RqOwnerTeamMemberAddrs;
docpd.RequestName = doc.RequestName;
docpd.RequestCode = doc.RequestNumber;
docpd.Client = doc.RCustomerCompany;
docpd.ClientID = doc.RCustomerCompanyID;
docpd.LinkOnDocSource = "Requests"
docpd.SourceDbServer = db.getServer();
docpd.SourceDbPath = db.getFilePath();
docpd.DocSourseID = doc.Universalid;
var pageId = appConfig.getString("page_pd_form");
sys.createDoc(pageId);

что-то не передает значения в новый документ из текущего. doc.getItemValueString("RqOwnerAddress1") вывел в компутедполе - значение есть. Что я делаю не так?
вижу много недопониманий (тут и мой косяк - с сокращёнными записями(( )...
давай разбирацца, по шагам:
1 объект database всегда определён на странице и это - текущая БД, откуда взяли страничку
соотв. var db:NotesDatabase = session.getCurrentDatabase(); - не нужно
2 "var dbpd:NotesDatabase = sys.getDb("pd");" - что за объект sys? и метод getDb()?, я их не вижу, наверно их нету?)
var dbpd = session.getDatabase(database.getServer(),'pd',false); //взяли БД с того же сервера, или session.getDatabase('','pd',false) - если надо с локального компа
3 надо использовать тот (или один из ...) датасорс, кот. определён на страничке, он, обычно обзывается document1 (document2 и тд., если по умолчанию)
если датасорс на страничке НЕ определён, currentDocument НЕ существует в этом контексте (тогда док надо брать из базы напрямую, напр по ID)
4 - норм
5 docpd.replaceItemValue('Form', 'Request');
6 docpd.replaceItemValue('Curator', document1.getItemValueString('RqOwnerAddress1'));//document1 - нужный датасорс
и т.д.....
....
docpd.save(); //сохранили док в БД "pd" на текущем сервере
 
Последнее редактирование:
B

beloff

вижу много недопониманий (тут и мой косяк - с сокращёнными записями(( )...
давай разбирацца, по шагам:
1 объект database всегда определён на странице и это - текущая БД, откуда взяли страничку
соотв. var db:NotesDatabase = session.getCurrentDatabase(); - не нужно
2 "var dbpd:NotesDatabase = sys.getDb("pd");" - что за объект sys? и метод getDb()?, я их не вижу, наверно их нету?)
var dbpd = session.getDatabase(database.getServer(),'pd',false); //взяли БД с того же сервера, или session.getDatabase('','pd',false) - если надо с локального компа
3 надо использовать тот (или один из ...) датасорс, кот. определён на страничке, он, обычно обзывается document1 (document2 и тд., если по умолчанию)
если датасорс на страничке НЕ определён? currentDocument НЕ существует в этом контексте (тогда док надо брать из базы напрямую, напр по ID)
4 - норм
5 docpd.replaceItemValue('Form', 'Request');
6 docpd.replaceItemValue('Curator', document1.getItemValueString('RqOwnerAddress1'));//document1 - нужный датасорс
и т.д.....
....
docpd.save(); //сохранили док в БД "pd" на текущем сервере
also der Reiche nach
2 "var dbpd:NotesDatabase = sys.getDb("pd");" - что за объект sys? и метод getDb()?, я их не вижу, наверно их нету?).
это другая база, берется по скрипту из библиотеки (функция sys метод getDb). База получается, я на компутед выводил этой базы getFilePath() и оно все выводило верно, т.е. другая база получена все ок.
3. документ датасорс это текущий документ, тут все определено верно, просто нужно передать значения из текущего датасорса в новый документ который создается в другой базе dbpd.

остальное поэл, щас переделаю

вижу много недопониманий (тут и мой косяк - с сокращёнными записями(( )...
вопрос еще: как новый док поcле сохранения открыть на edit?
 
Мы в соцсетях:

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