//導入
function importRecord(store)
{
window.showModalDialog("${ctx}/fx/fxcustomer!importExcel"+"?rnd="+Math.round(Math.random()*10000),"","dialogWidth:"+650+"px;dialogHeight:"+600+"px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=yes;status:no;help=0");
}
action
@Results( { @Result(name = CRUDActionSupport.RELOAD, location = "fxcustomer!input.action?id=${id}&updateFlag=${updateFlag}", type = "redirect") })
public class FxcustomerAction extends CRUDActionSupport<FxCustomer>
public String importExcel() throws Exception {
return "importExcel";
}
頁面代碼
<%@ include file="/common/taglibsNoButton.jsp"%>
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<title>導入Excel<%=sbfBlank_160.toString()%></title>
<html>
<script type="text/javascript" src="${ctx}/js/ext/DwrProxyCombobox.js"></script>
<link rel="stylesheet" type="text/css"
href="${ctx}/js/ext/ux/css/fileuploadfield.css" />
<script type="text/javascript"
src="${ctx}/js/ext/ux/FileUploadField.js"></script>
<script type="text/javascript"
src="${ctx}/dwr/interface/FxCustomerService.js"></script>
<head>
<script language='JavaScript'>
Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
var grid;
var tb = new Ext.Toolbar({});
tb.addSpacer();
tb.addSeparator();
</script>
<script type="text/javascript">
var myData;
var store = new Ext.data.JsonStore({
fields: [
{name: 'subCompany',mapping: 'subCompany'},
{name: 'name',mapping: 'name'},
{name: 'code',mapping: 'code'},
{name: 'contact',mapping: 'contact'},
{name: 'mobile',mapping: 'mobile'},
{name: 'address',mapping: 'address'},
{name: 'customerCategory',mapping: 'customerCategory'},
{name: 'businessLine',mapping: 'businessLine'},
{name: 'payDay',mapping: 'payDay'}
]
});
dwr.engine.setAsync(false);
window.name="myself";
var allowfiletype=".xls" //允許上傳的文件類型
Ext.onReady(function(){
Ext.QuickTips.init();
var msg = function(title, msg){
Ext.Msg.show({
title: title,
msg: msg,
minWidth: 200,
modal: true,
icon: Ext.Msg.INFO,
buttons: Ext.Msg.OK
});
};
var fp = new Ext.FormPanel({
renderTo: 'fi-form',
fileUpload: true,
width: 600,
height: 210,
frame: true,
title: '導入Excel文件',
bodyStyle: 'padding: 10px 10px 0 10px;',
labelWidth: 50,
defaults: {
anchor: '80%',
allowBlank: false,
msgTarget: 'side'
},
items: [{
xtype: 'fileuploadfield',
id: 'myFile',
emptyText: '請選擇欲導入的Excel文件',
fieldLabel: '',
name: 'myFile',
buttonText: '瀏覽...',
listeners:
{
'fileselected':function (fb,v)
{
var temp=v.replace(/^.*(\.[^\.\?]*)\??.*$/,'$1'); //獲取文件後綴名
var temp1=temp.toLocaleLowerCase() //轉換成小寫字符
if(allowfiletype.indexOf(temp1)==-1)
{
Ext.Msg.alert("錯誤","只能選擇Office2003的Excel文件類型,請重新選擇!");
fb.setValue("");
}
}
}
}
],
buttons: [{
text: '導入',
handler: function(){
if(fp.getForm().isValid()){
fp.getForm().submit({
url: '${ctx}/fx/fxcustomer!importExcelData',
waitMsg: '正在導入信息,請稍等...',
success: function(fp, o){
myData=o.result.data;
store.loadData(myData);
grid.setTitle("<font color='red'>導入成功信息</font>");
Ext.Msg.alert("成功","導入成功!");
},
failure:function(fp, o)
{
myData=o.result.data;
store.loadData(myData);
grid.setTitle("<font color='red'>導入失敗信息</font>");
Ext.Msg.alert("失敗","導入失敗!");
}
});
}
}
},{
text: '重置',
handler: function(){
fp.getForm().reset();
}
},{
text: '下載導入模板',
handler: function(){
window.open("${ctx}/fx/fxcustomer!importSuccess.action");
}
}]
});
// create the grid
var grid = new Ext.grid.GridPanel({
store: store,
title:"導入數據信息",
tbar:tb,
columns: [
{header: "隸屬公司", width: 60, dataIndex: 'subCompany', sortable: true},
{header: "分銷商名稱", width: 60, dataIndex: 'name', sortable: true},
{header: "分銷商編號", width: 60, dataIndex: 'code', sortable: true},
{header: "聯繫人", width: 60, dataIndex: 'contact', sortable: true},
{header: "聯繫人手機", width: 60, dataIndex: 'mobile', sortable: true},
{header: "地址", width: 60, dataIndex: 'address', sortable: true},
{header: "分類", width: 60, dataIndex: 'customerCategory', sortable: true},
{header: "業務線", width: 60, dataIndex: 'businessLine', sortable: true},
{header: "付款條件",width: 260, dataIndex: 'payDay', sortable: true}
],
renderTo:'grid-example',
width:600,
height:430
});
});
function renderer(v)
{
return "<font color='red'>"+v+"</font>";
}
</script>
</head>
<body topmargin="0" leftmargin="0" marginheight="0" marginwidth="0"
scroll="no">
<p>
<div id="fi-form"></div>
<div id="grid-example"></div>
</p>
</body>
</html>