famillesDataStore = new Ext.data.Store({
id : 'famillesDataStore',
proxy : new Ext.data.HttpProxy({
url : 'index/grille',
method : 'POST'
}),
baseParams : {
gAction : "gListeFamille"
},
reader : new Ext.data.JsonReader({
root : 'results',
id : 'id'
}, [{
name : 'id',
type : 'int',
mapping : 'id'
}, {
name : 'Libelle',
type : 'string',
mapping : 'Libelle'
}
]),
sortInfo : {
field : 'Libelle',
direction : "ASC"
}
});
articlesCols = new Ext.grid.ColumnModel([{
header : 'Ref.',
allowBlank : false,
readOnly : true,
dataIndex : 'ref',
width : 60,
hidden : false,
editor : new Ext.form.TextField({ // rules about editing
allowBlank : false,
maxLength : 9,
maskRe : /([a-zA-Z0-9\s-]+)$/
})
}, {
header : 'Désignation',
dataIndex : 'designation',
width : 200,
hidden : false,
editor : new Ext.form.TextField({ // rules about editing
allowBlank : false,
maxLength : 20,
maskRe : /([a-zA-Z0-9\s]+)$/
})
// alphanumeric + spaces allowed
} , {
header : 'Qte',
readOnly : true,
dataIndex : 'Qte',
width : 50,
align : 'right',
hidden : false,
editor : new Ext.form.NumberField({
allowBlank : false,
decimalSeparator : ',',
allowDecimals : true,
allowNegative : false,
blankText : '0',
maxLength : 4
})
}, {
header : 'Prix',
readOnly : true,
dataIndex : 'Prix',
width : 80,
hidden : false,
renderer : Ext.util.Format.formatNumber
.createDelegate(Ext.util.Format),
align : 'right',
editor : new Ext.form.NumberField({
allowBlank : false,
decimalSeparator : ',',
allowDecimals : true,
allowNegative : false,
blankText : '0',
maxLength : 11
})
}, {
header : 'Id Famille',
readOnly : true,
dataIndex : 'famille',
width : 50,
align : 'right',
hidden : true,
editor : new Ext.form.NumberField({
allowBlank : false,
allowDecimals : false,
blankText : '0',
maxLength : 4
})
}, {
header : 'Familles',
dataIndex : 'LibFamille',
width : 150,
editor : new Ext.form.ComboBox({
store : famillesDataStore,
typeAhead : true,
triggerAction : 'all',
mode : 'remote',
displayField : 'Libelle',
listeners : {
select : {
fn : function(e, rec) {
var sm = articlesListGrid
.getSelectionModel()
.getSelected();
sm.set('famille', rec.id);
}
}
},
listClass : 'x-combo-list-small'// ,
})
}, {
header : 'Date d\'entrée',
readOnly : true,
dataIndex : 'date_ent',
width : 80,
hidden : false,
renderer : Ext.util.Format.dateRenderer('d/m/Y'),
editor : new Ext.form.DateField({
format : 'd/m/Y'
})
}]);
articlesListGrid = new Ext.grid.EditorGridPanel({
id : 'articlesListGrid',
title : 'liste des employe',
store : articlesDataStore,
width : 700,
height : 350,
cm : articlesCols,
frame : true,
clicksToEdit : 1,
enableColLock : false,
selModel : new Ext.grid.RowSelectionModel({
singleSelect : true
}),
tbar : [{
text : 'Ajouter',
handler : function() {
articleAction = 'gAjouter';
var p = new article({
ref : '',
designation : '',
Qte : '0',
Prix : '0',
date_ent : (new Date()).clearTime(),
famille : '0'
});
articlesListGrid.stopEditing();
articlesCols.setEditable(0, true);
articlesDataStore.insert(0, p);
articlesListGrid.startEditing(0, 0);
}
}]
});