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

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

    Скидки до 10%

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

Помогите пж с интерфейсом пользователя

  • Автор темы Ruska132
  • Дата начала

garrick

Lotus Team
26.10.2009
1 352
151
BIT
204
Я всё про то же... Вот же очень простой пример описание здесь
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
НЕ фига не упало.. и даже больше скажу.. ни композитные приложения ни xPages не помогут по одной простой причине.. ни те ни другие не работают на бейсик клиентах))) так сказать шах и мат.. крутись как хошь, а сделать нуно чтоб работало на всяких клиентах.. и таким образом получается что нужно выкручиваться самыми обычными средствами....
состряпал вот такую фиговину: Снимок.PNG
но вот бяда... она открывает подчиненные только при открытии фреймсета.. при перемещении по записям не меняется((
 

savl

Lotus Team
28.10.2011
2 607
313
BIT
258
@swyatogor, xpage дал простой и быстрый выход на WEB, клиент уже не нужен.
Поэтому актуальность и упала. Нет смысла держать клиента. когда можно работать из браузера.
А то что надо кучу кода переписать и базу адаптировать, так это нормально.
 
R

Ruska132

НЕ фига не упало.. и даже больше скажу.. ни композитные приложения ни xPages не помогут по одной простой причине.. ни те ни другие не работают на бейсик клиентах))) так сказать шах и мат.. крутись как хошь, а сделать нуно чтоб работало на всяких клиентах.. и таким образом получается что нужно выкручиваться самыми обычными средствами....
состряпал вот такую фиговину: Посмотреть вложение 6602
но вот бяда... она открывает подчиненные только при открытии фреймсета.. при перемещении по записям не меняется((

да именно там бы мне и хотелось.
можно ваш пример посмотреть и пощупать?
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
@savl, Lotus именно тем и хорош, что это единая среда работы со всем приложениями на любой версии клиента.. от почты, календаря, контактов, до любого самописного приложения.. с единой авторизацией и правилами работы.. та же почта через iNotes уже лишена некоторых функциональных возможностей.. что говорить о других стандартных шаблонах Domino - там половина на java-аплетах, вторая половина тупо транслируется в HTML.. кроме как в базе lotustraveler xPage ни где нет..
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 948
609
BIT
251
кучу кода переписать и базу адаптировать
не совсем...
вызов LS, из хэпагов, вполне реально сделать через агентов, а многие ЮИ решения становятся проще:
-передача параметров между приложениями, страницами... (чего только не городили для классики)
-нормальная поддержка JS - т.е. подключение фронтэнд разрабов
-ЖСП - бекэнд разрабы на java
-уход от агентов, кот. ограничены по мультитредовости (актуально для сервера - DOTS)
-любая консолидация БД (в т.ч. РСУБД)
с ужасом вспоминаю эти фрэймы и прочие кастыли, бр...
как я радовался на 5-ке возможности использовать java, а с 6.5 она стала хоть немного ближе (по версии) к десктопной версии
теперь жвм 1.6 - это хоть что-то (хотя хочется 8-ку ;) )
резьюм - мне трудно себя "уговорить" разрабатывать для классики :)
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
Как заставить обновиться (переоткрыться, симитировать нажатие F9) во фрейме??((
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
@garrick, тот пример который сделан, делается элементарно без композитов.. а вот композитная почта на бейсике точно не работает..

зы.. и таки да... на бейсике тот пример не работает))))
 
Последнее редактирование модератором:

swyatogor

Green Team
24.02.2014
593
24
BIT
0
бамболеййёёё..... я его победил таки))) завтра расскажу как..
 

garrick

Lotus Team
26.10.2009
1 352
151
BIT
204
вызов LS, из хэпагов, вполне реально сделать через агентов, а многие ЮИ решения становятся проще:
Можно поподробнее? Имею приложение в котором куча кода на QueryOpen, QuerySave, QueryClose форм, часть кода хранится в настоечных документах в виде текста LS и формул и выполняется через Evaluate и Execute, возвращая либо код код успешного завершения, либо генерирует ошибку. Также должны возвращаться сообщения типа "Вы не заполнили поле..." и т.п. Хотел попробовать "внедрить" в это приложение XPages, но останавливает необходимость переписывать всё это на JS.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 948
609
BIT
251
ЛС (кот. возможно) придется вынести в агенты, иной - переписать
Имею приложение в котором куча кода на QueryOpen, QuerySave, QueryClose
о том что - это "зло", я уже не раз писал ;) (и даже примеры классов набаянил, кот. еще и сам пользую)
ЛС код проще перенести в JS , чем в java, но сложнее отлаживать (после переноса)
Хотел попробовать "внедрить" в это приложение XPages, но останавливает необходимость переписывать всё это на JS.
с моей т.з. - вс будет гораздо быстрее, многие вещи просто не надо будет кастылировать (как пример - валидаторы, без всяких ошибок)
QO: создаем поле вычисляемый лэйбл пример
JavaScript:
var entry:NotesViewEntry=lastContract();
calcOnDate();
return entry.getColumnValues().elementAt(1).toString();
где ф-ции - это JS кот. может вызвать ЛС, пример:
JavaScript:
function calcOnDate(){
	//return "dummy";
	var name:string = "CalcOnDate";
	var unid:string = name+java.lang.System.currentTimeMillis();
	var dt:NotesDateTime =session.createDateTime("Today");
	print ("date:" + getComponent(DATE_FLD).value);
	dt.setLocalTime(getComponent(DATE_FLD).value);
	//http://www.openntf.org/main.nsf/project.xsp?r=project/xTalk%20Discussion%20Forums/defects/0ABCC3CFDEDB0C21862578B8007C67DF
	//var db:NotesDatabase = database;
	var db:NotesDatabase = sessionAsSigner.getDatabase(session.getServerName(),session.getCurrentDatabase().getFilePath());
	print ("db name:" +database.getTitle());
	//create profile document for parameters
	var profDoc:NotesDocument = db.getProfileDocument(name, unid);
	profDoc.replaceItemValue(DATE_FLD, dt);
	profDoc.replaceItemValue("parentUNID", lastContract().getUniversalID());
	profDoc.replaceItemValue("replyID", unid);
	profDoc.save();
	var profDocID:String = profDoc.getNoteID();
	//get agent and call it with profile doc
	var agent:NotesAgent = db.getAgent(name);
	print("Calling agent"+agent.getName()+" with "+profDocID);
	agent.run(profDocID);
	//extract returned value
	profDoc = db.getProfileDocument(name, unid);
	requestScope.rest = "-";
	requestScope.restprc = "-";
	requestScope.percent = "-";
	if (profDoc == null) {
		print("There isn't reply doc!");
	}
	else {
		if (profDoc.hasItem(PERCENT_FLD)) {
			requestScope.rest = profDoc.getItemValue(REST_FLD)[0];//.toString();
			requestScope.restprc = profDoc.getItemValue(RESTPRC_FLD)[0];
			requestScope.percent = profDoc.getItemValue(PERCENT_FLD)[0];
		}
		else {
			print("Calc failed");
		}
	}
	//remove doc
	profDoc.remove(false);
	return requestScope.percent
}
в тексте ссылка на блог с этим методом вызова через профайл
 

swyatogor

Green Team
24.02.2014
593
24
BIT
0
@Ruska132, рассказываю..

Безымянный.png
технология такая..
на втором фрейме стоит галка, что ссылки по умолчанию отображать во фрейме 3.. в нем выводится спец документ (не по основной форме) содержащий набор данных для документа..
на событии документа QueryOpen код
Код:
@SetTargetFrame("названиефрейма4");
@Command([OpenView]; "названия вида во фрейме 4");
@SetViewInfo([SetViewFilter];@Text(@DocumentUniqueID);"$36";1);
ну и собственно всё)).. кликаем по строчкам во фрейме 2, во фрейме 4 накладываем фильтр на вид по значению ИД выделенного документа..
 
  • Нравится
Реакции: savl
Мы в соцсетях:

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