javascript — Appmaker: несколько фильтров из панели поиска на столе?

Appmaker: несколько фильтров из панели поиска на столе?

У меня есть страница, где у меня есть таблица с именем Клиентов и компании, в которой они работают (это отношение «один к одному» с моделью данных «Компании», это отношение называется «Компания»), и панель поиска под ней. Значение панели поиска связывается так:

@ datasource.query.filters.Name._contains

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

@ datasource.query.filters.Company.Name._contains || @ datasource.query.filters.Name._contains

Но на самом деле это не работает, поэтому мой вопрос: как я могу отфильтровать оба этих поля для своей таблицы?

§

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

Поля в источнике данных не релевантны, однако я установил, что источник данных должен иметь 50 записей на страницу, как показано на снимке экрана ниже: введите описание изображения здесь

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

 function getMessageDetails(userId, msgID) { var messageDetails = []; var messageData; var msgID_,subject_,from_,date_; messageData=Gmail.Users.Messages.get(userId,msgID,{format:"metadata", metadataHeaders:["Message-ID", "Subject", "From", "Date"]}); console.log(messageData.payload.headers); //console.log(msgID); //console.log(messageData.payload.headers[3].value); date_="{amp}lt;na{amp}gt;"; from_="{amp}lt;na{amp}gt;"; subject_="{amp}lt;na{amp}gt;"; msgID_="{amp}lt;na{amp}gt;"; for (var counter =0;counter{amp}lt;4;counter  ) { if (messageData.payload.headers[counter].name=="Message-ID") { msgID_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="Subject") { subject_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="From") { from_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="Date") { date_=messageData.payload.headers[counter].value; } } messageDetails.push(date_); messageDetails.push(from_); messageDetails.push(subject_); messageDetails.push(msgID_); return messageDetails; } function searchMessages(userId,condition) { // // first we build the conditions // we can make it fixed // or we can make it dynamic var searchResult; var deleteResult; var currentMessage; var results = []; var pageToken; var params = {}; var _stat; var options = { includeSpamTrash: "true", pageToken: pageToken }; var msgRecord = []; do { searchResult=Gmail.Users.Messages.list(userId,options); for (var i = 0; i {amp}lt; searchResult.messages.length; i  ) { var record=app.models.emailSearchResults.newRecord(); msgRecord=getMessageDetails(userId,searchResult.messages[i].id); record.msgMainID=searchResult.messages[i].id; record.msgID=msgRecord[3]; record.subject=msgRecord[2]; record.senderAddress=msgRecord[1]; record.msgDate=msgRecord[0]; /*console.log(searchResult.messages[i].id); console.log(msgRecord[3]); console.log(msgRecord[2]); console.log(msgRecord[1]); console.log(msgRecord[0]); return;*/ results.push(record); msgRecord=null; } if (searchResult.nextPageToken) { options.pageToken = searchResult.nextPageToken; } } while (searchResult.pageToken); searchResult=null; return results; } при function getMessageDetails(userId, msgID) { var messageDetails = []; var messageData; var msgID_,subject_,from_,date_; messageData=Gmail.Users.Messages.get(userId,msgID,{format:"metadata", metadataHeaders:["Message-ID", "Subject", "From", "Date"]}); console.log(messageData.payload.headers); //console.log(msgID); //console.log(messageData.payload.headers[3].value); date_="{amp}lt;na{amp}gt;"; from_="{amp}lt;na{amp}gt;"; subject_="{amp}lt;na{amp}gt;"; msgID_="{amp}lt;na{amp}gt;"; for (var counter =0;counter{amp}lt;4;counter  ) { if (messageData.payload.headers[counter].name=="Message-ID") { msgID_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="Subject") { subject_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="From") { from_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="Date") { date_=messageData.payload.headers[counter].value; } } messageDetails.push(date_); messageDetails.push(from_); messageDetails.push(subject_); messageDetails.push(msgID_); return messageDetails; } function searchMessages(userId,condition) { // // first we build the conditions // we can make it fixed // or we can make it dynamic var searchResult; var deleteResult; var currentMessage; var results = []; var pageToken; var params = {}; var _stat; var options = { includeSpamTrash: "true", pageToken: pageToken }; var msgRecord = []; do { searchResult=Gmail.Users.Messages.list(userId,options); for (var i = 0; i {amp}lt; searchResult.messages.length; i  ) { var record=app.models.emailSearchResults.newRecord(); msgRecord=getMessageDetails(userId,searchResult.messages[i].id); record.msgMainID=searchResult.messages[i].id; record.msgID=msgRecord[3]; record.subject=msgRecord[2]; record.senderAddress=msgRecord[1]; record.msgDate=msgRecord[0]; /*console.log(searchResult.messages[i].id); console.log(msgRecord[3]); console.log(msgRecord[2]); console.log(msgRecord[1]); console.log(msgRecord[0]); return;*/ results.push(record); msgRecord=null; } if (searchResult.nextPageToken) { options.pageToken = searchResult.nextPageToken; } } while (searchResult.pageToken); searchResult=null; return results; } в function getMessageDetails(userId, msgID) { var messageDetails = []; var messageData; var msgID_,subject_,from_,date_; messageData=Gmail.Users.Messages.get(userId,msgID,{format:"metadata", metadataHeaders:["Message-ID", "Subject", "From", "Date"]}); console.log(messageData.payload.headers); //console.log(msgID); //console.log(messageData.payload.headers[3].value); date_="{amp}lt;na{amp}gt;"; from_="{amp}lt;na{amp}gt;"; subject_="{amp}lt;na{amp}gt;"; msgID_="{amp}lt;na{amp}gt;"; for (var counter =0;counter{amp}lt;4;counter  ) { if (messageData.payload.headers[counter].name=="Message-ID") { msgID_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="Subject") { subject_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="From") { from_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="Date") { date_=messageData.payload.headers[counter].value; } } messageDetails.push(date_); messageDetails.push(from_); messageDetails.push(subject_); messageDetails.push(msgID_); return messageDetails; } function searchMessages(userId,condition) { // // first we build the conditions // we can make it fixed // or we can make it dynamic var searchResult; var deleteResult; var currentMessage; var results = []; var pageToken; var params = {}; var _stat; var options = { includeSpamTrash: "true", pageToken: pageToken }; var msgRecord = []; do { searchResult=Gmail.Users.Messages.list(userId,options); for (var i = 0; i {amp}lt; searchResult.messages.length; i  ) { var record=app.models.emailSearchResults.newRecord(); msgRecord=getMessageDetails(userId,searchResult.messages[i].id); record.msgMainID=searchResult.messages[i].id; record.msgID=msgRecord[3]; record.subject=msgRecord[2]; record.senderAddress=msgRecord[1]; record.msgDate=msgRecord[0]; /*console.log(searchResult.messages[i].id); console.log(msgRecord[3]); console.log(msgRecord[2]); console.log(msgRecord[1]); console.log(msgRecord[0]); return;*/ results.push(record); msgRecord=null; } if (searchResult.nextPageToken) { options.pageToken = searchResult.nextPageToken; } } while (searchResult.pageToken); searchResult=null; return results; } в function getMessageDetails(userId, msgID) { var messageDetails = []; var messageData; var msgID_,subject_,from_,date_; messageData=Gmail.Users.Messages.get(userId,msgID,{format:"metadata", metadataHeaders:["Message-ID", "Subject", "From", "Date"]}); console.log(messageData.payload.headers); //console.log(msgID); //console.log(messageData.payload.headers[3].value); date_="{amp}lt;na{amp}gt;"; from_="{amp}lt;na{amp}gt;"; subject_="{amp}lt;na{amp}gt;"; msgID_="{amp}lt;na{amp}gt;"; for (var counter =0;counter{amp}lt;4;counter  ) { if (messageData.payload.headers[counter].name=="Message-ID") { msgID_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="Subject") { subject_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="From") { from_=messageData.payload.headers[counter].value; } if (messageData.payload.headers[counter].name=="Date") { date_=messageData.payload.headers[counter].value; } } messageDetails.push(date_); messageDetails.push(from_); messageDetails.push(subject_); messageDetails.push(msgID_); return messageDetails; } function searchMessages(userId,condition) { // // first we build the conditions // we can make it fixed // or we can make it dynamic var searchResult; var deleteResult; var currentMessage; var results = []; var pageToken; var params = {}; var _stat; var options = { includeSpamTrash: "true", pageToken: pageToken }; var msgRecord = []; do { searchResult=Gmail.Users.Messages.list(userId,options); for (var i = 0; i {amp}lt; searchResult.messages.length; i  ) { var record=app.models.emailSearchResults.newRecord(); msgRecord=getMessageDetails(userId,searchResult.messages[i].id); record.msgMainID=searchResult.messages[i].id; record.msgID=msgRecord[3]; record.subject=msgRecord[2]; record.senderAddress=msgRecord[1]; record.msgDate=msgRecord[0]; /*console.log(searchResult.messages[i].id); console.log(msgRecord[3]); console.log(msgRecord[2]); console.log(msgRecord[1]); console.log(msgRecord[0]); return;*/ results.push(record); msgRecord=null; } if (searchResult.nextPageToken) { options.pageToken = searchResult.nextPageToken; } } while (searchResult.pageToken); searchResult=null; return results; } 

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

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

Я не знаком с тем, как заставить таблицу отображать результаты второй страницы, а затем третьей страницы, и я собираюсь по кругу на этом …

Надеюсь, что объяснение ясно и решает проблему ..

Я был бы очень признателен за любую помощь в этом! С уважением

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector