Использование всплывающего окна для выбора правильного реляционного поля и передачи значения обратно в форму ввода - PullRequest
0 голосов
/ 10 апреля 2019

Я использую Google App Maker с SQLcloud для создания базы данных отслеживания активов. У меня есть пара таблиц с отношениями: Список активов (многие к одному с местами) Места (много к одному с районами) Районы (много к одному с районами)

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

Магазин Экипаж 1 Экипаж 2 Магазин Экипаж 1 Внешний поставщик

У меня есть 2 страницы

Активы - Источник данных: Таблица активов -Вход в форму Источник данных: наследуется (активы) для ввода новых активов -Table View Datasource: унаследовано (активы), чтобы увидеть актив, который вводится) без редактирования)

Расположение всплывающих окон Кажется, что это работает, как и ожидалось, в основном формы для перехода к правильному местоположению и сохранения его в текстовом поле и кнопке со свойством On_Click для отправки значения текстового поля в форму ввода данных в ресурсах (не работает). Я могу передать значение в виджет, но не может понять, как сохранить его в фактическом источнике данных. В настоящее время, используя местоположение в текстовом поле в этой форме, я должен использовать Id?

Я создал всплывающую форму, которая позволяет пользователю переходить к правильному идентификатору записи местоположения путем фильтрации по району. У меня возникли проблемы с пониманием того, как на самом деле записать его обратно в поле правильного местоположения в форме ввода активов. Я новичок в Java Script / Apps Script, поэтому смысл всех свойств и то, как их использовать, доставляет мне неприятности.

Я попытался установить текстовое поле с именем «SetLocation» в форме ввода и установить для свойства value значение

@datasource.item.Location.Location

затем во всплывающем окне я установил кнопку on_click на

app.pages.Assets.descendants.SetLocation.value = 
widget.parent.descendants.PassLocation.value;

«Pass Location» - это имя текстового поля во всплывающем окне, в котором хранится правильное местоположение.

1 Ответ

1 голос
/ 10 апреля 2019

Некоторые предложения для рассмотрения. В вашем всплывающем окне установите динамическое свойство, назовите его «CreateDatasource» или любым другим, что вам нужно.

В форме страницы ресурсов, где вы переходите к всплывающему окну (скажем, это кнопка, которая открывает всплывающее окно из вашей формы), введите следующий код:

var popup = app.popups.YourPopup;
popup.properties.CreateDatasource = widget.datasource;
popup.visible = true;

Допустим, для вашего источника данных всплывающего контента задано значение Locations, и у вашего всплывающего окна есть некоторые входные данные, которые фильтруют ваши местоположения, а затем есть таблица, отображающая ваши отфильтрованные результаты. В этой таблице вы должны выбрать соответствующую строку местоположения, а затем в вашем всплывающем окне есть кнопка, которая передает местоположение обратно в форму вашего актива с кодом, подобным следующему:

widget.root.properties.CreateDatasource.item.Location = widget.datasource.item; //this would set the relation only assuming your asset relation end to locations is named 'Location'
widget.root.visible = false;

Это сработает, если все настроено правильно в ваших отношениях.

...