MES開發(fā)與應(yīng)用 課件 3.5.9 工業(yè)管理軟件開發(fā)基礎(chǔ)-命令的使用-導(dǎo)入命令_第1頁
MES開發(fā)與應(yīng)用 課件 3.5.9 工業(yè)管理軟件開發(fā)基礎(chǔ)-命令的使用-導(dǎo)入命令_第2頁
MES開發(fā)與應(yīng)用 課件 3.5.9 工業(yè)管理軟件開發(fā)基礎(chǔ)-命令的使用-導(dǎo)入命令_第3頁
MES開發(fā)與應(yīng)用 課件 3.5.9 工業(yè)管理軟件開發(fā)基礎(chǔ)-命令的使用-導(dǎo)入命令_第4頁
MES開發(fā)與應(yīng)用 課件 3.5.9 工業(yè)管理軟件開發(fā)基礎(chǔ)-命令的使用-導(dǎo)入命令_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

3.5命令的使用深圳市信息職業(yè)技術(shù)學(xué)院——導(dǎo)入命令目

錄平臺導(dǎo)入命令使用通用說明01導(dǎo)入命令框架實現(xiàn)介紹02導(dǎo)入命令開發(fā)示例-使用框架導(dǎo)入模板03導(dǎo)入命令開發(fā)示例-自定義導(dǎo)入模板04知識回顧框架選擇命令實現(xiàn)介紹;自定義選擇命令的開發(fā)實現(xiàn);自定義選擇命令注意事項;學(xué)習(xí)目標(biāo)通過本節(jié)學(xué)習(xí)可以:掌握平臺導(dǎo)入命令的使用配置;掌握導(dǎo)入命令的重寫;了解導(dǎo)入命令框架實現(xiàn)的邏輯。01平臺導(dǎo)入命令使用通用說明平臺導(dǎo)入命令使用通用說明平臺導(dǎo)入命令使用通用說明在工業(yè)管理軟件中要使用導(dǎo)入excel,需要在調(diào)試或者是部署的工程中直接或者間接引用NPOI包(引用的版本根據(jù)具體項目的版本而定),下圖以WebClient直連數(shù)據(jù)庫調(diào)試為例間接依賴NPOI包文件。平臺導(dǎo)入命令使用通用說明平臺導(dǎo)入命令使用通用說明平臺通用導(dǎo)入命令的配置:View.UseImportCommands();下載的excel模板列頭配置是在對應(yīng)功能的ViewConfig配置ConfigImportView方法。如在讀者管理中使用默認導(dǎo)入命令的實現(xiàn): 1、導(dǎo)入命令的配置:

2、配置下載模板:平臺導(dǎo)入命令使用通用說明平臺導(dǎo)入命令使用通用說明 3、效果,可以正常下載模板和進行數(shù)據(jù)導(dǎo)入。

平臺通用導(dǎo)入命令只能做一些基礎(chǔ)的數(shù)據(jù)導(dǎo)入,對于業(yè)務(wù)復(fù)雜,或者是需要自定義模板的導(dǎo)入需要重寫導(dǎo)入命令。如上面讀者管理功能中使用默認的導(dǎo)入命令,類別號無法關(guān)聯(lián)讀者分類進行校驗,單位快碼的數(shù)據(jù)在快碼表不存在也能正常導(dǎo)入數(shù)據(jù)等。02導(dǎo)入命令框架實現(xiàn)介紹導(dǎo)入命令框架實現(xiàn)介紹導(dǎo)入命令框架實現(xiàn)介紹導(dǎo)入命令框架前端是在SIE.Web.Common.Import.Commands.ImportCommandBase中實現(xiàn)的,后端是在ImportCommandBase類中實現(xiàn)的。導(dǎo)入命令的命名規(guī)范:Import+實體名+Command或?qū)嶓w名+ImportCommand;重寫導(dǎo)入命令的前端定義:SIE.defineCommand('SIE.Web.LibMan.ReaderMans.Commands.ReaderManImportCommand',{extend:'SIE.Web.Common.Import.Commands.ImportCommandBase',meta:{text:"導(dǎo)入",group:"business",iconCls:"icon-ImportDataicon-blue"},});其中:導(dǎo)入命令的分組設(shè)置為business。后端CS命令,前端和后端的全命名空間要完全一致。public

class

ReaderManImportCommand:ImportCommandBase{}導(dǎo)入命令常用可重寫的方法和屬性導(dǎo)入命令常用可重寫的方法和屬性BehaviorName:初始化下載模板類型,枚舉值為Download和DownloadCustom;BehaviorName=‘Download’:下載默認類型模板,即下載列模板是在ConfigImportView中配置的,BehaviorName=“DownloadCustom”下載自定義列模板;canExecute:function(view){}:是否可執(zhí)行方法,框架默認是返回true,任何時候?qū)氚粹o都可操作;downloadTemplateSuccess:function(res){}:請求下載模板成功后處理,使用自定義下載模板,需要重寫此方法;creatImportWindow:function(myview){}:創(chuàng)建導(dǎo)入面板,導(dǎo)入按鈕打開的窗體不使用框架的而是自定義實現(xiàn)需要重寫此方法;導(dǎo)入命令常用可重寫的方法導(dǎo)入命令常用可重寫的方法GetImportCompleted:獲取導(dǎo)入完成處理邏輯,該方法是虛方法,繼承平臺導(dǎo)入命令的父類,必須實現(xiàn);GetImportHandleType:獲取導(dǎo)入類型,該方法是虛方法,繼承平臺導(dǎo)入命令的父類,必須實現(xiàn);Excute:執(zhí)行方法,如果是使用自定義下載列模板,該方法需要重寫。導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹canExecute:是否可執(zhí)行方法;execute:執(zhí)行方法;canExecute:function(view){returntrue;},execute:function(listView,source){myview=listView;//保存當(dāng)前視圖對象

varme=this;//初始化下載模板類型

me._downloadTemplateType();var_importWindow=me.creatImportWindow(myview);_importWindow.show();},總是可以執(zhí)行,可根據(jù)實際業(yè)務(wù)進行重寫導(dǎo)入命令的執(zhí)行邏輯,不建議重寫會根據(jù)BehaviorName的值進行初始化下載模板類型,為Download下載默認類型模板,為DownloadCustom下載自定義列模板,該方法不需要進行重寫,通過改變BehaviorName的值能滿足業(yè)務(wù)需求。調(diào)用創(chuàng)建導(dǎo)入面板的方法顯示導(dǎo)入面板導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportWindow:創(chuàng)建導(dǎo)入面板--打開窗體;creatImportWindow:function(myview){varme=this;varform=me.creatImportFormPanel(myview);

vargrid=me.creatImportGridPanel();me._progressBar=newExt.ProgressBar({renderTo:Ext.getBody(),width:585}); varwin=Ext.create("Ext.window.Window",{title:"導(dǎo)入Excel".t(),//標(biāo)題

draggable:false,height:485,width:"60%",//寬度

modal:true,//是否模態(tài)窗口,默認為falseresizable:true,frame:true,items:[form,grid,me._progressBar]});me._progressBar.hide();returnwin;},創(chuàng)建一個表單面板創(chuàng)建一個網(wǎng)格列表面板創(chuàng)建工具欄,寬度為585創(chuàng)建Window彈出窗體,高度為485,寬度為頁面寬度的60%,控件包括表單面板,列表面板和工具欄隱藏工具欄返回window窗體導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportFormPanel:創(chuàng)建導(dǎo)入面板--表單;creatImportFormPanel:function(myview){varme=this;

varuploadBtn=Ext.create('Ext.button.Button',{text:'導(dǎo)入'.t(),itemId:'btnOK',iconCls:'iconfonticon-Upload',formBind:true,//onlyenabledoncetheformisvaliddisabled:true,handler:function(){}});vardownTempleBtn=Ext.create('Ext.button.Button',{text:'下載模板'.t(),itemId:'templatebutton',iconCls:'iconfonticon-Download',handler:function(){ }});varform=newExt.form.FormPanel({});returnform;},創(chuàng)建上傳按鈕上傳按鈕的邏輯處理創(chuàng)建下載模板按鈕下載模板按鈕的邏輯處理創(chuàng)建表單面板返回創(chuàng)建好的表單面板導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportFormPanel方法導(dǎo)入按鈕的執(zhí)行邏輯;handler:function(){varfield=Ext.getCmp('filefield');varnewValue=field.getValue();

varfile=field.fileInputEl.dom.files.item(0);varfileReader=newFileReader('file://'+newValue);fileReader.readAsDataURL(file);fileReader.onload=function(e){ me._progressBar.show();me._progressBar.wait({interval:100,duration:36000000,text:'數(shù)據(jù)正在導(dǎo)入中,請稍候...'.t(),increment:10,scope:this,fn:function(){}});varparent=myview.getParent()!=null&&myview.getParent().getCurrent()!=null?myview.getParent().getCurrent().data:null;創(chuàng)建文件上傳組件獲取文件讀取文件執(zhí)行導(dǎo)入操作時,顯示等待進度條導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportFormPanel方法導(dǎo)入按鈕的執(zhí)行邏輯;myview.execute({data:{BehaviorName:'ImportData',Type:myview.model,SelectedParent:parent!=null?Ext.encode(parent):null,SelectedParentId:parent!=null?parent.Id:0,Data:e.target.result,ViewGroup:myview.viewGroup},success:function(res){//導(dǎo)入模板成功后處理數(shù)據(jù)

me._importExcelCallback(res,myview);me._progressBar.hide();SIE.Msg.showMessage(res.Result.ImportMsg);}});} }向后端請求數(shù)據(jù),執(zhí)行導(dǎo)入的邏輯傳到后端的參數(shù)導(dǎo)入成功后處理數(shù)據(jù),隱藏等待進度條,顯示提示信息導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportFormPanel方法下載按鈕的執(zhí)行邏輯vardownTempleBtn=Ext.create('Ext.button.Button',{text:'下載模板'.t(),itemId:'templatebutton',iconCls:'iconfonticon-Download',handler:function(){myview.execute({data:{BehaviorName:me.BehaviorName,Type:myview.model},success:function(res){me.downloadTemplateSuccess(res);}});}});下載模板向后端請求數(shù)據(jù),執(zhí)行下載邏輯傳到后端的參數(shù)下載模板成功之后的處理邏輯導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportFormPanel方法創(chuàng)建表單的處理邏輯;varform=newExt.form.FormPanel({bodyStyle:'padding:5px5px0',frame:true,border:true,layout:'anchor',width:"100%",buttons:[uploadBtn,downTempleBtn],items:[{xtype:'filefield',id:'filefield',name:'fileUpload',fieldLabel:'請選擇導(dǎo)入文件'.t(),reference:'basicFile',autoWidth:'true',msgTarget:'side',allowBlank:false,anchor:'99%',buttonText:'瀏覽'.t(),regex:/^.*\.(xls|xlsx)$/i,//正則表達式,用來檢驗文件格式

regexText:'請選擇Excel對應(yīng)格式(*.xls|*.xlsx)文件!'.t(),},{xtype:'textfield',id:'msgtextfield',fieldLabel:'導(dǎo)入處理的消息'.t(),readOnly:true,anchor:'99%'}]});表單的按鈕:上傳、下載文件上傳的控件文本控件,顯示導(dǎo)入處理的消息導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportGridPanel:創(chuàng)建導(dǎo)入面板--Grid;creatImportGridPanel:function(){varme=this;//動態(tài)Jsonstore格式

varjsonText='{\"total\":\"0\",\"data\":[{\"index\":\"\"}],\"columnModle\":[{\"text\":\"No\",\"dataIndex\":\"index\"}],\"fieldsNames\":[{\"name\":\"index\"}]}';varjson=Ext.util.JSON.decode(jsonText);//創(chuàng)建strore對象

varstore=newExt.data.Store({proxy:newExt.data.MemoryProxy(null),fields:json.fieldsNames,data:json.data,totalProperty:json.total,pageSize:10});對動態(tài)json數(shù)據(jù)格式進行轉(zhuǎn)碼創(chuàng)建Store數(shù)據(jù)總的數(shù)據(jù)行每頁顯示10筆數(shù)據(jù)導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportGridPanel:創(chuàng)建導(dǎo)入面板--Grid;//創(chuàng)建動態(tài)JsonStore表格

varimportColumns=json.columnModle;varbbar=newExt.PagingToolbar({id:'failedtoolbar',xtype:'pagingtoolbar',store:store,//數(shù)據(jù)

displayInfo:true,//是否顯示數(shù)據(jù)信息

displayMsg:'顯示{0}-{1}條記錄,共{2}條'.t(),//只有displayInfo:true時才有效,用來顯示有數(shù)據(jù)的提示信息。

emptyMsg:"沒有記錄",//沒有數(shù)據(jù)顯示的信息,items:[{xtype:'combobox',itemId:'pageSizeItem',store:Ext.create('Ext.data.Store',{fields:['value'],data:[{"value":10},{"value":20},{"value":50},{"value":100},{"value":500},]}),創(chuàng)建表格分頁工具欄分頁下拉框控件設(shè)置導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportGridPanel:創(chuàng)建導(dǎo)入面板--Grid;listeners:{change:function(clt,newValue,oldValue,eOpts){vararrtydata=[];vartoolbar=Ext.getCmp('failedtoolbar');toolbar.store.setPageSize(newValue);varpageData=toolbar.getPageData();for(vari=pageData.fromRecord-1;i<=pageData.toRecord-1;i++){arrtydata.push(toolbar.store.data.items[i]);}Ext.getCmp('failedGrid').store.setData(arrtydata);}},value:me._pageSize,width:72,minValue:0,maxValue:5000,queryMode:'local',displayField:'value',valueField:'value',}],分頁下拉列表值變更事件的監(jiān)聽,設(shè)置頁碼分頁值為變更的值,進行表格數(shù)據(jù)的加載。導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportGridPanel:創(chuàng)建導(dǎo)入面板--Grid;listeners:{change:{fn:function(clt,newValue,oldValue,eOpts){vararrtydata=[];for(vari=this.getPageData().fromRecord-1;i<=this.getPageData().toRecord-1;i++){arrtydata.push(this.store.data.items[i]);}Ext.getCmp('failedGrid').store.setData(arrtydata);}}}});分頁工具欄變更事件的監(jiān)聽給表格設(shè)置數(shù)據(jù)導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportGridPanel:創(chuàng)建導(dǎo)入面板--Grid;vargrid=Ext.create("Ext.grid.Panel",{id:'failedGrid',name:'failedGrid',title:'導(dǎo)入失敗數(shù)據(jù)'.t(),xtype:'grid-filtering',//類型為鎖定表格

columns:importColumns,bodyStyle:'overflow-x:hidden;overflow-y:hidden',store:store,height:280,layout:"fit",width:'100%',loadMask:true,autoScroll:true,tbar:[{xtype:'button',id:'Importbutton',text:'導(dǎo)出Excel'.t(),handler:function(){vargrid=Ext.getCmp('failedGrid’); },}],bbar:bbar,});returngrid;},創(chuàng)建表格面板表格列,列為失敗行號、失敗原因和動態(tài)讀取的下載模板的列頭組成工具欄,加了一個導(dǎo)出Excel按鈕導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportGridPanel:創(chuàng)建導(dǎo)入面板--Grid;handler:function(){vargrid=Ext.getCmp('failedGrid');if(grid.store.config.totalProperty==='0'){SIE.Msg.showMessage('沒有出錯數(shù)據(jù)!'.t());return;}//varme=this;varfieldNames=[];grid.getStore().config.fields.forEach(function(item){varfieldName={};fieldName.key=;fieldName.header===='_Index'?'失敗行號'.t():.t();fieldNames.push(fieldName);});varrecordData=[];導(dǎo)出Excel按鈕數(shù)據(jù)邏輯處理導(dǎo)入命令框架方法實現(xiàn)邏輯介紹方法實現(xiàn)邏輯介紹creatImportGridPanel:創(chuàng)建導(dǎo)入面板--Grid;Ext.each(grid.getStore().getRange(),function(record){recordData.push(record.data);});varexportJsonData=[];recordData.forEach(function(row){varfieldData='';fieldNames.forEach(function(fieldName){varexportValue=row[fieldName.key];fieldData+='\"'+fieldName.key+'\":\"'+(exportValue===null?'':exportValue)+'\",';});varfieldDataStr='{'+fieldData.substr(0,fieldData.length-1)+'}';exportJsonData.push(JSON.parse(fieldDataStr.replace(/\n/g,"\\n").replace(/\r/g,"\\r")));});varexportJsonHeaders=[];fieldNames.forEach(function(value){exportJsonHeaders.push(value.header==='_MessageTip'?'失敗原因'.t():value.header.t())});me.jSONToExcelConvertor(exportJsonData,myview.label+Ext.util.Format.date(newDate(),'Ymdhis'),exportJsonHeaders);},思考題從導(dǎo)入命令框架實現(xiàn)邏輯可以看出,BehaviorName的值包括哪些?Download、DownloadCustom和ImportData。導(dǎo)入命令框架方法實現(xiàn)邏輯介紹ImportCommandBase類方法實現(xiàn)邏輯介紹Excute:導(dǎo)入數(shù)據(jù);///<paramname="importViewArgs">導(dǎo)入視圖參數(shù)</param>///<paramname="scope">使用范圍</param>///<returns>執(zhí)行結(jié)果</returns>protectedoverrideobjectExcute(ImportViewArgsimportViewArgs,stringscope){//獲取實體數(shù)據(jù)varmeta=ClientEntities.Find(importViewArgs.Type);if(scope!=meta.EntityType.GetQualifiedName())thrownewSystem.Security.SecurityException("參數(shù)type[{0}]與令牌不一致".FormatArgs(importViewArgs.Type));ImportHandleimportHandle=newImportHandle();switch(importViewArgs.BehaviorName){case"Download":returnimportHandle.DownloadTemplate(meta,GetImportTempleData());case"DownloadCustom":returnimportHandle.DownloadCustomTemplate(meta,GetImportHandleType(),GetImportTempleData());default:returnImportData(importViewArgs);}}下載模板按鈕,非自定義模板執(zhí)行的邏輯下載模板按鈕,自定義模板執(zhí)行的邏輯導(dǎo)入按鈕執(zhí)行的邏輯導(dǎo)入命令框架方法實現(xiàn)邏輯介紹ImportCommandBase類方法實現(xiàn)邏輯介紹GetImportHandleType和GetImportCompleted方法;

//

//摘要:

//獲取導(dǎo)入類型

protected

abstractTypeGetImportHandleType();

//

//摘要:

//獲取導(dǎo)入完成處理邏輯

protected

abstractImportCompletedGetImportCompleted();虛方法,繼承ImportCommandBase必須實現(xiàn)虛方法,繼承ImportCommandBase必須實現(xiàn)導(dǎo)入命令框架實現(xiàn)介紹導(dǎo)入命令框架實現(xiàn)介紹導(dǎo)入命令框架實現(xiàn)詳情參考。JS源碼CS源碼思考題重寫導(dǎo)入命令后端繼承?需要實現(xiàn)哪兩個方法?后端繼承ImportCommandBase,需要實現(xiàn)GetImportCompleted和GetImportHandleType方法。03導(dǎo)入命令開發(fā)示例-使用框架導(dǎo)入模板思考題導(dǎo)入列模板使用框架的,處理導(dǎo)入邏輯時,需要做數(shù)據(jù)關(guān)聯(lián)校驗,該如何實現(xiàn)?導(dǎo)入命令業(yè)務(wù)需求在讀者管理中添加導(dǎo)入命令,導(dǎo)入下載列模板使用框架的方法進行配置,數(shù)據(jù)校驗如下:1、類別號要在類別管理中存在的數(shù)據(jù),才能導(dǎo)入成功,否則提示異常;2、狀態(tài)只能是可用或者是禁用才能導(dǎo)入成功;3、已借書數(shù)量不能大于可借書數(shù)量,且大于等于0;4、單位要驗證在快碼中是否存在;5、讀者編號,姓名不能為空,且編號和姓名聯(lián)合驗證唯一。業(yè)務(wù)需求自定義導(dǎo)入命令開發(fā)步驟在客戶端添加導(dǎo)入命令的js文件,繼承SIE.Web.Common.Import.Commands.ImportCommandBase,js文件嵌入到資源。開發(fā)步驟自定義導(dǎo)入命令開發(fā)步驟添加導(dǎo)入命令的CS文件,繼承ImportCommandBase,實現(xiàn)抽象類。開發(fā)步驟自定義導(dǎo)入命令開發(fā)步驟GetImportCompleted方法的處理,導(dǎo)入完成時返回成功和失敗的數(shù)據(jù)。

return(DataRow[]drSuccess,DataRow[]drFailed)=>

{

};開發(fā)步驟自定義導(dǎo)入命令開發(fā)步驟在服務(wù)端添加導(dǎo)入的數(shù)據(jù)處理的handle類,實現(xiàn)接口IDisposable,IBusinessImport。開發(fā)步驟自定義導(dǎo)入命令開發(fā)步驟導(dǎo)入handle類方法和屬性說明。開發(fā)步驟自定義導(dǎo)入命令開發(fā)步驟導(dǎo)入列頭名屬性ColumnNameList的處理。開發(fā)步驟自定義導(dǎo)入命令開發(fā)步驟創(chuàng)建列驗證的方法CreaetColumnValid處理。開發(fā)步驟自定義導(dǎo)入命令開發(fā)步驟數(shù)據(jù)邏輯的處理。開發(fā)步驟

public

voidProcessBusinessDataHandle(DataRow[]drs)

{

varreaderMans=newEntityList<ReaderMan>();drs.ForEach(p=>

{

try

{

varreaderMan=newReaderMan();readerMan.ReaderNo=p[ColIndex(ColumnNameList[0])].ToString();readerMan.Name=p[ColIndex(ColumnNameList[1])].ToString();readerMan.ReaderCatId=Convert.ToDouble(p[ColIndex(ColumnNameList[2])].ToString());readerMan.BrowQty=Convert.ToInt32(p[ColIndex(ColumnNameList[3])].ToString());readerMan.Unit=p[ColIndex(ColumnNameList[4])].ToString();readerMan.State=LabelToEnum<State>(p[ColIndex(ColumnNameList[5])].ToString());readerMan.Phone=p[ColIndex(ColumnNameList[6])].ToString();readerMan.WeChat=p[ColIndex(ColumnNameList[7])].ToString();readerMan.CreateBy=RT.IdentityId;readerMan.CreateDate=DateTime.Now;readerMan.UpdateBy=RT.IdentityId;readerMan.UpdateDate=DateTime.Now;InvOrgIdExtension.SetInvOrgId(readerMan,RT.InvOrg);PhantomEntityExtension.SetIsPhantom(readerMan,false);readerMans.Add(readerMan);

}

catch(Exceptionex)

{

//設(shè)置失敗信息到失敗列,用于統(tǒng)計及顯示p[ImportDataHandle.MessageColumnName]=ex.Message;

}

});

//BulkSaver.Save(readerMans);BulkSaver.SetBatchEntityId(readerMans);RF.BatchInsert(readerMans);

}自定義導(dǎo)入命令開發(fā)步驟導(dǎo)入命令cs文件的獲取導(dǎo)入類型GetImportHandleType方法的返回值設(shè)置為導(dǎo)入的handle類。開發(fā)步驟自定義導(dǎo)入命令開發(fā)步驟配置下載模板。開發(fā)步驟自定義導(dǎo)入命令開發(fā)步驟使用命令。開發(fā)步驟自定義導(dǎo)入命令開發(fā)步驟效果,可以正常下載模板和導(dǎo)入數(shù)據(jù),數(shù)據(jù)驗證不符合要求的,原因會展示在導(dǎo)入失敗數(shù)據(jù)中。開發(fā)步驟04導(dǎo)入命令開發(fā)示例-自定義導(dǎo)入模板思考題做導(dǎo)入功能時,下載的模板是提前配置好的,點擊導(dǎo)入時,也需要做數(shù)據(jù)的關(guān)聯(lián)校驗,該如何實現(xiàn)?導(dǎo)入命令業(yè)務(wù)需求在讀者管理中添加導(dǎo)入命令,導(dǎo)入模板使用自定義模板,數(shù)據(jù)校驗如下:1、類別號要在類別管理中存在的數(shù)據(jù),才能導(dǎo)入成功,否則提示異常;2、狀態(tài)只能是可用或者是禁用才能導(dǎo)入成功;3、已借書數(shù)量不能大于可借書數(shù)量,且大于等于0;4、單位要驗證在快碼中是否存在;5、讀者編號,姓名不能為空,且編號和姓名聯(lián)合驗證唯一。業(yè)務(wù)需求自定義下載模板導(dǎo)入命令開發(fā)步驟這里的需求和“03導(dǎo)入命令實現(xiàn)示例-使用框架導(dǎo)入模板”的業(yè)務(wù)需求除了下載模板部分存在差異外,其他的需求都是一致,這里只對查詢部分實現(xiàn)步驟進行說明,其他的實現(xiàn)參考“03導(dǎo)入命令實現(xiàn)示例-使用框架導(dǎo)入模板”的實現(xiàn)

。將寫好excel下載模板放到WebClient工程中的wwwroot的Templates中。開發(fā)步驟自定義下載模板導(dǎo)入命令開發(fā)步驟右鍵“讀者管理導(dǎo)入模板”--屬性,設(shè)置復(fù)制到輸出目錄為“如果較新則復(fù)制”。開發(fā)步驟自定義下載模板導(dǎo)入命令開發(fā)步驟添加導(dǎo)入命令的js文件,將BehaviorName設(shè)置為DownloadCustom,重寫downloadTemplateSuccess方法。開發(fā)步驟SIE.defineCommand('SIE.Web.LibMan.ReaderMans.Commands.ReaderManCustomImportCommand',{extend:'SIE.Web.Common.Import.Commands.ImportCommandBase',meta:{text:"自定義下載模板導(dǎo)入",group:"business",iconCls:"icon-Downloadicon-blue"},executeIntervalMode:SIE.cmd.IntervalMode.Debounce.value,BehaviorName:"DownloadCustom",

/***請求下載模板成功后處理*@param

{any}

res*/downloadTemplateSuccess:function(res){

//利用服務(wù)端返回的數(shù)據(jù)創(chuàng)建模板文件并實現(xiàn)下載

varbstr=atob(res.Result),n=bstr.length,u8arr=newUint8Array(n);

while(n--){

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論