ExtJS Store - копировать определенные поля в хранилище - PullRequest
1 голос
/ 14 июня 2011

Я использую extjs 3.2.1 с рельсами 3.x. У меня есть JsonWriter, который записывает все поля в базе данных MySQL через хранилище Json. Есть ли способ реплицировать записи из одного Json Store в другой, с некоторым различием полей.

Вот что я попробовал:

var RecRecordDef = Ext.data.Record.create([
                              {name: 'product_master_id'},
                                {name: 'qty'},
                               {name: 'stock_price'},{name: 'discount_rate'},
                               {name: 'amount'}
        ]);

    salesbtn.on("click",function(){

                for(var cnt=1;cnt<=salestore.getCount();cnt++)
                {
                    var rectmp= salestore.getAt(cnt);

                    var receiptrec= new RecRecordDef({
                      product_master_id:rectmp.get('product_master_id'),

                       qty:rectmp.get('qty'),
                       stock_price:rectmp.get('stock_price'),
                       discount_rate:rectmp.get('discount_rate'),
                       amount:rectmp.get('amount')
                    });
                    recstore.add(receiptrec);

                }
                  recstore.save();

            });

где, var recstore= Ext.StoreMgr.get('ReceiptStore');

но я получаю следующий вывод в консоли браузера: Uncaught TypeError: Невозможно вызвать метод 'get' из неопределенного

Есть предложения?

Заранее спасибо!

1 Ответ

2 голосов
/ 15 июня 2011

Вы должны попробовать что-то вроде этого:

Ext.each(salesstore.getRange(), function(item, index, all){
    var receiptrec= new RecRecordDef({
                  product_master_id: item.get('product_master_id'),

                   qty:item.get('qty'),
                   stock_price:item.get('stock_price'),
                   discount_rate:item.get('discount_rate'),
                   amount:item.get('amount')
                });
                recstore.add(receiptrec);
}, this);
recstore.save();
...