Запросите источник данных, ссылающийся на другие источники данных - PullRequest
0 голосов
/ 12 октября 2018

Я не уверен, правильно ли я здесь подхожу;У меня есть две модели данных, CoursesFiled и TraineesFiled.У них обоих есть поле с именем CourseName.Каждая запись стажера будет иметь поле CourseName, которое также отображается в CoursesFiled.

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

Я несколько новичок в этом и подумал, что проще всего будет создать запросисточник данных в модели TraineesFiled со сценарием запроса, который выглядит следующим образом:

var courseName = "Register-2012-10-02(xxxxxxxxx).xml";//hardcoded for now, to be replaced with variable being passed from UI for app.datasources.CoursesFiled.item.CourseName;
var query = app.models.TraineesFiled.newQuery();
query.filters.CourseName._equals = courseName ;
query.run();

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

Fri Oct 12 10:59:46 GMT+200 2018
The function queryRecords returned undefined, please make sure a value was 
explicitly returned. Error: The function queryRecords returned undefined, 
please make sure a value was explicitly returned.
E
Fri Oct 12 10:59:46 GMT+200 2018
Executing query for datasource TraineesFiled1: (Error) : The function 
queryRecords returned undefined, please make sure a value was explicitly 
returned.
E
Fri Oct 12 10:59:46 GMT+200 2018
Executing query for datasource TraineesFiled1 failed.

Куда я иду не так?Полностью ли я поступаю неправильно?

1 Ответ

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

Как объясняется в официальной документации , при использовании сценария запроса необходимо ВОЗВРАТ результатов.

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

var employeeResult = [];
// Modify passed query to additionally filter by minimum age.
query.filters.Age._greaterThan = 20;
var employeesAboveMinimumAge = query.run();
for (var i = 0; i < employeesAboveMinimumAge.length; i++) {
  if (employeesAboveMinimumAge[i].age % 2 == 0) {
    employeeResult.push(employeesAboveMinimumAge[i]);
  }
}
return employeeResult;

Это означает, что все, что вам нужно сделать, это добавить оператор return в свой код:

var courseName = "Register-2012-10-02(xxxxxxxxx).xml";
var query = app.models.TraineesFiled.newQuery();
query.filters.CourseName._equals = courseName ;
return query.run();
...