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

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

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

Как менять formname в data source

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

Mario1985

Есть стандартный web интерфейс базы.
Отображение в web идет по категориям (у каждой категории своя форма и свой вид, поля везде одинаковые).
Выбор категории слева, подкатегории отображаются справа. Если раскрыть подкатегории, то отображаются документы.
В каждом виде есть своя кнопка "Новый документ", при нажатии на нее создается xpages.
Как можно имея одну xpage, менять динамически Data source?
То есть, как можно передать со стандартного View значение формы, чтобы вписать его в formName в зависимости от того, какой вид документа пользователь хочет создать.
 
Если у view Data source не собственный а со страницы, то можно так например
view1 - это имя view(в свойствах var) в Data source страницы.
Код:
var formName = view1.getFirstDocument().getItemValueString('form');
Опять же если во вьюшке документы с одной формы, и на ней есть хоть один документ иначе не будет работать
 
Если у view Data source не собственный а со страницы, то можно так например
view1 - это имя view(в свойствах var) в Data source страницы.
Код:
var formName = view1.getFirstDocument().getItemValueString('form');
Опять же если во вьюшке документы с одной формы, и на ней есть хоть один документ иначе не будет работать
У меня View Name тоже постоянно меняются, в зависимости от того, какую категорию выберет пользователь.
 
Что то ты мудришь там сильно, можешь описать на простом примере что ты хочешь. С View ты вряд ли форму получишь, они могут строится с нескольких форм и к формам вообще не привязаны, она может быть только у документа и то не 100%.
Тут почитай:

С view примерно тоже самое
 
Что то ты мудришь там сильно, можешь описать на простом примере что ты хочешь. С View ты вряд ли форму получишь, они могут строится с нескольких форм и к формам вообще не привязаны, она может быть только у документа и то не 100%.
Тут почитай:

С view примерно тоже самое
Есть классические формы, у каждой формы есть классический View (не XPages) их около 20 штук.
Все это отображается через классический Shared Elements - Outline.
Outline Entry это классическое View.
при клике на Outline Entry появляется соответственно свой View, в который вшита кнопка "Новый документ".
Как сделать так, чтобы при клике на "Новый документ" появлялась своя страница XPage?

Из каждого классического View открыть свою Xpage со своим data source?
XPage, при этом всего одна, так как все поля одинаковые, меняться должен только data source.
 
при клике на Outline Entry появляется соответственно свой View, в который вшита кнопка "Новый документ".
Как ты понимаешь какой View открыть ? И еще можешь код скинуть нажатия на Outline Entry
вшита кнопка "Новый документ".
Вшита в столбце ?? На каждый док своя кнопка ?
 

Вложения

  • 1.jpg
    1.jpg
    75,3 КБ · Просмотры: 609
  • 2.png
    2.png
    2,4 КБ · Просмотры: 575
  • 3.jpg
    3.jpg
    109,5 КБ · Просмотры: 573
Вангую:
он хочет универсальную кнопку, чтоб из xpage в которую загрузилось представление, кнопка создавала документ с формой документов этого представления.

если да то:
делаешь кнопку в которой будет гигантский свич.
имя представления - ссылка на хстраничку соответствующего документа
имя представления берёшь из датасорса.
 
А есть другой способ.
Может через managed bean? Ну или что-то другое, но не громадный свич.
Сделал через Profile Document, передаю значение формы с вью в Profile Document, а оттуда забираю beforePageLoad event который в xpages:
var currdb:NotesDatabase = database;
var profdoc:NotesDocument = currdb.getProfileDocument("frmProfile","");
var showRefInfo = profdoc.getItemValueString("ShowReferenceInformation");
sessionScope.put("showRefInfo",@Text(showRefInfo));

Но не подходит, так как слишком долго обновляется страница и Profile Document тоже, поэтому иногда не успевала обновляться информация и документ создавался не в той форме.
 
Можно гланды удалять не через горло. Но я бы на такое не согласился.
Твою задачу я бы решил так. Не хочешь свич, тогда либо придумывай какю то транспортную функцию, либо привязывайся к стандартизации названий (алиас представления view1 ,берём этот алиас и делаем openXpage("view1"+"doc1"+".xsp") - получаем открывшейся xpage привязанный к форме doc1).
Ну тут в общем пространство для творчества неограниченно.
Может возможно добраться через датасорс к объекту представления а там и к формуле отбора, которую распарсить и по результатам открывать соответствующую страницу, но тут тоже Ифы и Свитчи.
 
Мы в соцсетях:

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

Похожие темы