раскрывающийся список фильтров Google Appmaker - PullRequest
0 голосов
/ 15 октября 2018

Я только начал работать с Google AppMaker, и у меня возникли проблемы с пониманием того, как работает построитель запросов.

Вот мой сценарий:

У меня есть три источника данных:

  1. Заказчик:
    • Имя
  2. Проект
    • Имя
    • Заказчик
  3. Milestone
    • Имя
    • Заказчик
    • Проект

Теперь я установил отношения между этими моделями, так что: у одного проекта есть один клиент (но у одного клиента может быть много проектов) один этап имеет один проект и одного клиента

Теперь, когда я создаю этап, я хочу, чтобы пользователь сначала выбрал клиента, а затемкогда они выбирают проект, я хочу, чтобы в раскрывающемся списке «Проект» отображались только проекты, принадлежащие Заказчику.

Мой текущий подход заключается в следующем: я создал страницу с именем «MilestonePage», которая имеет модель данных Milestone.задавать.Эта страница содержит таблицу (не редактируемую) и (создать) форму.Форма имеет два раскрывающихся списка (Заказчик, Проект) и одно текстовое поле (Имя).Я думаю, что в раскрывающемся списке «Project» необходимо изменить параметры, чтобы список доступных проектов был отфильтрован выбранным клиентом.Я посмотрел на документацию, но, честно говоря, я не могу найти правильное объяснение того, как использовать редактор.Я также рассмотрел примеры Projects Tracker и Project List, но ни одна из них не имеет необходимой конфигурации.Моим лучшим предположением было установить для параметров что-то вроде:

@datasources.Project.query.filters.Customer._equals

или как-то использовать отношения, используя что-то вроде:

@datasources.Project.relations.Customer.item.Project

Излишне говорить, что ни один из них не работал.Последний всегда дает мне проекты, назначенные первому клиенту в таблице, и я понятия не имею, почему ...

Я готов использовать другие элементы управления и / или сценарии для достижения этой цели, но мне кажется, чтоРешение должно быть проще.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 16 октября 2018

Исходя из описания вашей проблемы, вот что я сделал:

Сначала я настроил модели следующим образом:

  1. Заказчик:

    • Имя
  2. Проект:

    • Имя
  3. Веха:

    • Имя


Во-вторых, я устанавливаю отношения следующим образом:

  1. Заказчик

    • (заказчик) ОТ ОДНОГО (Вехи)

    • (заказчик) От ОДНОГО до МНОГО (проект)

  2. Веха

    • (веха) ОТ ОДНОГО (клиент)

    • (веха) от МНОГО К ОДНОМУ (проект)

  3. Проект

    • (проект) МНОГО К ОДНОМУ (клиент)

    • (проект) ОДИН НА МНОГИЕ (этап)


В-третьих, я создал страницу,"MilestonePage", который имеет данные Milestoneмодельный набор.На этой странице я вставил таблицу и insert форму.Страница выглядит следующим образом:

enter image description here

Здесь остается только убедиться, что привязки Customer выпадающий и Project выпадающий являются правильными.По умолчанию раскрывающийся список Customer должен иметь следующие привязки:

  • Параметры: @datasources.customer.items

  • Значение: @datasource.item.customer

Наконец, хитрым является выпадающий список Project .Поскольку вы хотите отобразить проекты, принадлежащие выбранному клиенту, вам необходимо сделать следующее:

  1. Удалить привязки для Опции и Значение
  2. Убедитесь, что новые привязки имеют следующий вид:

    • Опции: @widget.parent.descendants.Field2.value.project (где Field2 - Customerdropdwon )

    • Значение: @datasource.item.project

БОНУС: Во избежаниев случае путаницы добавьте это в обработчик onValueChange раскрывающегося списка customer widget.parent.descendants.Field3.value = null; (где Field3 - это Project dropdown.)

PS Обратите внимание на то, что упомянул Маркус Малесса, о настройке предварительных выборок, поскольку это будет необходимо.

...