С Новым годом! Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/66: Рейтинг темы: голосов - 66, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
1

Объединить данные view

25.03.2015, 09:30. Показов 12410. Ответов 40
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как можно в репите или во вьюшке в xPages получить из такой вью
[xtable=145x65]
{tbody}
{tr}
{td}Вата{/td}
{td} 10{/td}
{/tr}
{tr}
{td} Вата{/td}
{td} 20{/td}
{/tr}
{tr}
{td} Нож{/td}
{td} 10{/td}
{/tr}
{tr}
{td} Вата{/td}
{td} 10{/td}
{/tr}
{tr}
{td} Нож{/td}
{td} 20{/td}
{/tr}
{/tbody}
[/xtable]
Такую таблицу
[xtable=177x44]
{tbody}
{tr}
{td}Вата{/td}
{td} 40{/td}
{/tr}
{tr}
{td} Нож{/td}
{td} 30{/td}
{/tr}
{/tbody}
[/xtable]
Вообще не могу догнать как объединять данные во view :nailbiting:
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.03.2015, 09:30
Ответы с готовыми решениями:

пропадают данные из View
в дизайнере меняю вью, поля, к примеру, там же делаю обновить, данные исчезают, чтобы их увидеть,...

Не отображаються данные в View
Не отображаються данные в view из response формы. Пишет Not categorized. что не так дклаю?

Проблемы с отображением во View полей из другого View
Здраствуйте. Такая проблема есть одна View № 2 в ней два столбца катигорированых по первому...

Documents In A View Maximum Of 130mb For A View Index
всем привет! я как обычно, с глупыми вопросами как сказано в названии темы, что взято из хелпа,...

40
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 633
25.03.2015, 10:58 2
Цитата Сообщение от JohnLemon
Как можно в репите или во вьюшке в xPages получить ...
Конкретно в твоём случае, можешь сделать в клиенте стандартную категоризированную вьюху с totals и взять в репитер только категории.
А вообще, посмотри как делаются "категории" в репитере из произвольных данных. В инете полно таких поделок.
Категории покажешь, а внутренности категории скроешь.
0
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
25.03.2015, 13:41 3
Цитата Сообщение от alexas1
Конкретно в твоём случае, можешь сделать в клиенте стандартную категоризированную вьюху с totals и взять в репитер только категории.
Сделал категоризированную вьюху по умолчанию поставил что бы не разворачивал категории, но в репите все равно все записи отображает (
Результат
Я так понимаю где то галочку нужно поставить что бы не отображались ) ?
0
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 633
25.03.2015, 15:08 4
Можешь скрыть не нужное по условию viewEntry.isCategory ()
0
0 / 0 / 0
Регистрация: 12.11.2009
Сообщений: 882
25.03.2015, 16:04 5
Цитата Сообщение от alexas1
Можешь скрыть не нужное по условию viewEntry.isCategory ()
И получить офигенные тормоза на более или менее приличной базе.
Вот мы же обсуждали - именно этот момент. Смотреть немного дальше и глубже слоя xPage. Ну нет у домино ф-ций агрегирования данных окромя как всякие тотал. И то есть нюансы с ридерс полями.
Самый быстрый способ - это пробежка по навигатору через getNextCategory и получение через entry.getColumnValues().elementAt(1).toString() значения total колонки. На 30 тыс категорий уходит около 1 сек и время линейна от кол-ва категорий.
0
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 633
25.03.2015, 20:56 6
Цитата Сообщение от rinsk
И получить офигенные тормоза на более или менее приличной базе.
конечно лучше брать только нужное. Но и получать перед мордой лица 30 тыс. доков абсолютно не юзабельно.
0
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
26.03.2015, 05:23 7
Цитата Сообщение от rinsk
Самый быстрый способ - это пробежка по навигатору через getNextCategory и получение через
А через навигатор быстрее работает чем через коллекцию или view??



Цитата Сообщение от alexas1
Но и получать перед мордой лица 30 тыс
Да такой отчет будет нафик не нужен.



Цитата Сообщение от alexas1
Категории покажешь, а внутренности категории скроешь.
А таким образом можно будет сделать еще экспорт в ексель например ??
0
0 / 0 / 0
Регистрация: 12.11.2009
Сообщений: 882
26.03.2015, 05:25 8
Да не - я про 30 тыс доков в одной категории...
0
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
26.03.2015, 06:49 9
Цитата Сообщение от rinsk
Да не - я про 30 тыс доков в одной категории...
А есть примерчик как получить ??
0
0 / 0 / 0
Регистрация: 12.11.2009
Сообщений: 882
26.03.2015, 08:06 10
Обход категорий
var v:NotesView = database.getView("By category");
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getFirst();
while (entry != null) {
//category=entry.getColumnValues().elementAt(0).toString();
//count=entry.getColumnValues().elementAt(1).toString();
var tmpentry:NotesViewEntry = nav.getNextCategory();
entry.recycle();
entry = tmpentry;
}
И по по вкусу или во viewScoup или java.util.HashMap как значение репитера.

А я бы по старинке, как говорят на CSJS - через $.get /db.nsf/view?ReadViewEntries&OutputFormt=JSON&CollapseView И нарисовал бы табличку
0
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
26.03.2015, 10:34 11
пасиб буду пробовать а что значит elementAt(0) ???
0
0 / 0 / 0
Регистрация: 12.11.2009
Сообщений: 882
26.03.2015, 10:40 12
Цитата Сообщение от JohnLemon
а что значит elementAt(0)
Первая колонка вью - в данном случае - значение категории.
0
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
26.03.2015, 12:03 13
Немного не догоняю зачем делать entry.recycle(). И в твоем коде первый элемент почему то не могу получить а последний null вообще с ошибкой валится (
0
0 / 0 / 0
Регистрация: 12.11.2009
Сообщений: 882
26.03.2015, 12:47 14
entry.recycle() - ну мы же практически в яве - надо аккуратнее быть с памятью)
Варианты работы с навигатором + ну и гугл в помощь...
http://www-10.lotus.com/ldd/ddwiki.nsf/dx/NotesViewNavigator_sample_JavaScript_code_for_XPages
0
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
26.03.2015, 13:39 15
В роде разобрался, только не пойму почему в коде:

Код (Javascript):
var v:NotesView = database.getView("repotResearchWriteOff");
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getFirst();
while (entry != null) {
requestScope.status += entry.getColumnValues().elementAt(0).toString();
var tmpentry:NotesViewEntry = nav.getNextCategory();
entry.recycle();
entry = tmpentry;

}
_dump(requestScope.status);
Получаю первое значение null
0
0 / 0 / 0
Регистрация: 12.11.2009
Сообщений: 882
26.03.2015, 14:20 16
надо проверить первый элемент - какого он типа - isTotal и т.п. и если не isCategory - nav.getNextCategory() .

И для информации:
http://www.mindoo.com/web/blog... KLEB9S.htm
Следовательно -
NotesView.AutoUpdate(false)
NotesViewNavigator.setBufferMaxEntries(400)
...
0
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
30.03.2015, 06:33 17
А может кто подсказать почему фт поиск не работает ?

Код (Javascript):
var value = {};
value.json = [];
var v:NotesView = database.getView("repotResearchWriteOff");
//*******
if (!database.isFTIndexed()) database.createFTIndex(0, false);
v.FTSearch("FIELD nameNomenclature = \"Вата\"")
//*****
var nav:NotesViewNavigator = v.createViewNav();
var entry:NotesViewEntry = nav.getFirst();
var d = 0;
while (entry != null) {
if (entry.getColumnValues().elementAt(0).toString() != ) {
d = d+1;
value.json.push({funding:entry.getColumnValues().elementAt(0).toString(), nomenclature:[], value:[], total:entry.getColumnValues().elementAt(2)});
}
if (entry.getColumnValues().elementAt(1).toString() != ) {
value.json[d-1].nomenclature.push(entry.getColumnValues().elementAt(1).toString());
value.json[d-1].value.push(entry.getColumnValues().elementAt(2))
}
var tmpentry:NotesViewEntry = nav.getNextCategory();
entry.recycle();
entry = tmpentry;
}
sessionScope.JsonValue = value
Ошибки нету в роде... :nailbiting:
0
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
30.03.2015, 11:33 18
Так работает:

Код (Javascript):
var value = {};
value.json = [];
var v:NotesView = database.getView("repotResearchWriteOff");




var vec:NotesViewEntryCollection = v.getAllEntries();
vec.FTSearch("FIELD nameNomenclature = \"Спирт\"");




var entry:NotesViewEntry = vec.getFirstEntry();
var d = 0;
while (entry != null) {
if (entry.getColumnValues().elementAt(0).toString() != ) {
d = d+1;
value.json.push({funding:entry.getColumnValues().elementAt(0).toString(), nomenclature:[], value:[], total:entry.getColumnValues().elementAt(2)});
}
if (entry.getColumnValues().elementAt(1).toString() != ) {
value.json[d-1].nomenclature.push(entry.getColumnValues().elementAt(1).toString());
value.json[d-1].value.push(entry.getColumnValues().elementAt(2))
}
var tmpentry:NotesViewEntry = vec.getNextEntry(entry);
entry.recycle();
entry = tmpentry;
}
sessionScope.JsonValue = value
Но пропадают категории ((
0
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
30.03.2015, 12:17 19
И тоталов нету по моему )
0
0 / 0 / 0
Регистрация: 15.08.2014
Сообщений: 284
31.03.2015, 05:30 20
Подскажите вообще можно результаты поиска категоризировать ?
0
31.03.2015, 05:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2015, 05:30
Помогаю со студенческими работами здесь

View.getalldocumentsbykey против View.createviewnavfromcategory
на днях разбирал одну старю базу которую делал другой чуваки столкнулся с такой штукой, у него...

Создать View Без View Style
Здравствуйте. Пытаюсь создать View в почтовой БД. Использую метод <!--shcode--><pre><code...

View или не View
Нужна подсказка... В одном из документов базы есть поле "Дата создания документа" и "Курс...

Данные из View в Controller
Всем привет. Пытаюсь разобраться с MVC и не могу решить проблемму. Из View в Controller...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru