Пустое поле Number с использованием Extjs - PullRequest
0 голосов
/ 24 сентября 2018

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

Я просто хочу показать пустое значение в этих столбцах.

data: [{"Name": "Part-0000112-01", "Wastage": "4.63", "Unit_Cost": "7.00", "Количество": "7.2200", "Тип": "Ткань", "Net_Consumption": "11,8500", "TotalCost": "82.95"}, { "Имя": "Часть-0000114-01", "Потеря": "0,0", "Unit_Cost": "1,00", "Количество": "10,0000", "Тип": "Ткань", "Net_Consumption": "10,0000", "TotalCost": "10,00"}, { "Name": "Part-0000116-01", "Потери": "2,0", "Unit_Cost": "1,00", "Количество": "10.0000", "Тип": "Trim", "Net_Consumption": "12.0000", "TotalCost": "12.00",}, { "Имя":" Part-0000118-01" , "Потери": "0,0", "Unit_Cost": "0,00", "Количество": "10,0000", "Тип": "Trim", "Net_Consumption": "10,0000","totalCost": "0,00"}, {"totalCost": "104,95", "Name": "Общие материальные затраты (InDollar)"}]

Код:

Ext.create('Ext.grid.Panel', {    
    store: BOMStore,    
    columns: [{    
        text: 'Name',    
        dataIndex: 'name'    
    }, {    
        text: 'Quantity',    
        dataIndex: 'Quantity',    
        editor: {    
            xtype : 'numberfield',       
            allowBlank : false,      
            listeners : {    
                change : function(field, newValue,o ,e) {    
                    var quantity = field.value;   
                    var selectedModel = this.up('grid').getSelectionModel().getSelection()[0];  
                    var wastage = selectedModel.get('Wastage');  
                    var unitCost = selectedModel.get('Unit_Cost');  
                    var updateTotalCost = getTotalCost(quantity,wastage,unitCost);  
                    selectedModel.set('totalCost', updateTotalCost);  
                    updateRowCosting(selectedModel);  
                }  
            }  
        }  
    }, {  
        text: 'Wastage',   
        dataIndex: 'Wastage',  
        editor: {  
            xtype : 'numberfield',   
            allowBlank : false,  
        }  
    },{  
        text: 'Cost',  
        dataIndex: 'Unit_Cost',  
        editor: {  
            xtype : 'numberfield',   
            allowBlank : false,  
        }  
    },{  
        text: 'Total Cost',  
        dataIndex: 'totalCost',  
        editor: {  
            xtype : 'numberfield',   
            allowBlank : false,  
        }  
    }]  
}); 

Ответы [ 2 ]

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

Проблема решена.

Ниже представлена ​​моя модель.

fields: [ 'Type', 'matid', 'ebomid' , 'srmid' ,'Name', 'Component_Location','Description',
                      'Article','Supplier_Item_Label','Supplier_Item_Description','UOM',
                      { name: 'Quantity', type: 'float' },{ name: 'Wastage', type: 'float' },'Wastage_Percentage','Net_Consumption','Material_Currency','Target_Cost',
                      'markupInViewMode',{ name: 'Markup', type: 'float' },'markup_Percentage','Final_Material_Cost','Sourcing_Classification','Brand_Cost','Vendor_Cost','Total_Cost']
        });

Итак, если я задаю тип float / number в Model и не передаю данные для соответствующих столбцов, топо умолчанию значение равно 0.

Мы должны установить тип поля в столбце.xtype : 'numberfield',

0 голосов
/ 24 сентября 2018

Вы можете использовать рендерер , который можно использовать как конвертер, поэтому вы можете проверить, является ли строка последней, и вернуть пустую строку.

FIDDLE

Ext.create('Ext.grid.Panel', {
    store: Ext.data.StoreManager.lookup('simpsonsStore'),
    columns: [{
        text: 'Name',
        dataIndex: 'name'
    }, {
        text: 'Email',
        dataIndex: 'email',
        flex: 1
    }, {
        text: 'Phone',
        dataIndex: 'numm',
        renderer: function (value, metaData, record, rowIndex, collIndex, store) {
            if (store.indexOf(record) === (store.totalCount - 1)) {
                return '';
            }
            return value;
        }
    }]
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...