Как я могу найти запись, основанную на другой записи? - PullRequest
1 голос
/ 13 мая 2019

Я получаю некоторые значения из базы данных, например:

var data = new Ext.create('Ext.data.Store',{
                                fields: [

                                        {name:'code',mapping: 'CODE'},{name:'code_company',mapping: 'COD_COMP'}, 
                                        {name:'descriptionCompany',mapping: 'DESC_COMP'}, {name:'group',mapping: 'GRP_GRP'},                                        

                                ],
                                autoLoad: false,
                                remoteSort: true,
                                proxy: {               
                                    type: 'ajax',
                                    url: 'index.php?Control=GeneralData&Accion=companyData', // this is the Store Procedure from I am getting the data
                                },

                            });

        data.load();

Я получаю это из базы данных:

GRP_GRP | CODE | COD_COMP | DESC_COMP
   1        1       1         APPLE
   1        1       2       MICROSOFT
   1        1       3          HP
   1        2       1        SAMSUNG
   1        2       2         NOKIA
   1        2       3         BLUE


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

Я имею в виду, я пытался получить описание (NOKIA) из этого ответа, например:

var record = data.findRecord('code_company', 2);

Выход из этого кода - «MICROSOFT», а не NOKIA, как я хотел, но я уже знаю, почему это происходит.Мне нужно быть более точным в своих поисках, но я не знаю, как это сделать.

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

Теперь мне нужен кусок кода, который позволяет мне найти запись на основе группы и кода, выбранного пользователем.

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

1 Ответ

1 голос
/ 13 мая 2019

Вы можете использовать QueryBy, который используется с функцией фильтрации, чтобы вы могли получить все записи, которые соответствуют этой функции.

var records = store.queryBy(function(record, id) {
    return (record.get('code_company') == 2 &&
        record.get('code') == 2);
}).items;

Тогда вы можете получить каждую запись, делая для каждого

records.forEach(record=>{
 console.log('Company Name', record.get('descriptionCompany'));
})
...