最近着手开发一个报表平台,主要技术框架是Servlet+Ext4。Ext4变化很大,很多示例代码在网上都还很难搜索到,整个探索过程比较曲折,也因此总结出一些技术点,我将陆续发布,希望让后学者少走弯路。
本次贴上Ext4访问Servlet并将结果显示到Grid上:
Ext.define("ReportModel", {
extend: "Ext.data.Model",
fields: ["客户","物料","销售数量","销售金额"]
});
var ajaxProxy = Ext.create("Ext.data.proxy.Ajax", {
type:"ajax",
url: "/easportal/RptDataSourceServlet?metas=/metas/KDPlayStation.xml ", //指定Servlet的URL和参数
extraParams: { },
reader: {
type: "json",
root: "result"
}
});
var datastore = Ext.create('Ext.data.Store', {
autoLoad: false,
model: ReportModel,
proxy: ajaxProxy
});
var panel = Ext.create('Ext.grid.Panel', {
store: datastore,
columns: [
{
header:'NO.',
width:30,
renderer:function(value, cellmeta, record, rowIndex){
return "<span style='font-weight:bold'>" + (rowIndex + 1) + "</span>";
}
},
{ header: "客户",
dataIndex: "客户",
renderer: function(value, metadata, record, rowIndex, colIndex, store){ return applyFontSize(value)}
},
{ header: "物料",
dataIndex: "物料",
renderer: function(value, metadata, record, rowIndex, colIndex, store){ return applyFontSize(value)}
},
{ header: "销售数量",
dataIndex: "销售数量",
align: "right",
renderer: function(value, metadata, record, rowIndex, colIndex, store){ return applyFontSize(Ext.util.Format.number(value, '0,000')) } }
}
], // end of columns
height: containerHeight,
width: containerWidth,
renderTo: Ext.get("divGrid")
});