我想做成一个快速开发平台,把一些基本的界面逻辑封装起来,目前这些都已经实现了
用我现在这个框架做一个单据的代码如下 :
//InvoiceBill.js
AppBox.Bill.SalInvoice = Compasslab.AppBox.prototype=
{
//调用的WebService,目前我使用的是.net的ScriptService
InvokeConfig:
{
baseUrl:'../AppBus/Sal/Invoice/InvoiceService.asmx',
detail:{method:'GetABill',params:'{"billId":"@ID@"}'}, //根据ID得到单据的方法
save:{method:'SaveBill',paramName:'billInfo'}//保存单据的方法
},
/*
//也可以使用asp,php做服务端,写法如下
InvokeConfig:
{
//Proxy:'Sal100' 表示在权限系统中的功能权限码,
//在权限系统中预制这个码的URL即可实现集成(授权管理等)
detail:{proxy:'Sal100'},
save:{proxy:'Sal1x0'}
},
*/
//单据数据集信息
StoreBuilder:[{
recordName:'Invoice',mappingId:'TRANSID',mappingCode:'TRANSNUM',
schema: ['TRANSID','CORPID','TRANSNUM','TRANSDATE','TRANSCLASS','TRANSTYPE','TRANSTYPECODE','TRANSTYPENAME',
'CUSTOMERCODE','CUSTOMERNAME','TRANSTOCODE', 'TRANSTONAME','CUSTOMER','BILLTO','PAYER','TRANSTO',
'BILLTOCODE', 'BILLTONAME','PAYERCODE','PAYERNAME','CURRENCY','CURRENCYCODE','CURRENCYNAME','EXCHGRATE','MEMO','CREATOR','CREATETIME','STATUS','APPROVALID']
},{
recordName:'InvoiceItem',mappingId:'DETAILID',
schema: ['TRANSID','DETAILID','MATERIALID','MATERIALCODE','MATERIALNAME','TAXRATE','ORIGINALPRICE','QTY','PRICE','ORGEXCLUSVAMT','ORGTAXAMT',
'ORGAMT','EXCLUSVAMT','TAXAMT','AMT','MEMO','BATCHNUM']
}],
// 基本信息TAB页,实现了配置式的开发,从繁琐的页面设计中解脱出来
baseHeader:[ {xtype:'hidden',cellConfig:{colspan:3},fieldLabel: 'CORPID',width:300,name: 'CORPID'},
{xtype:'hidden',cellConfig:{colspan:3},fieldLabel: 'TRANSID',width:300,name: 'TRANSID'},
{
xtype:"combo",fieldLabel:'业务分类',width:'150',emptyText:'', blankText:'请选择',editable:false,forceSelection:true,triggerAction:'all',
store:new Ext.data.SimpleStore({fields: ["retrunValue", "displayText"],data: [[1,'到货'],[2,'退货']],sortInfo:{field:'retrunValue'}}),
valueField :"retrunValue",displayField: "displayText",mode: 'local',hiddenName:'TRANSCLASS',allowBlank:false,name:'_stransclass'
},
{xtype:'helpfield', fieldLabel: '业务类型',width:165,name: 'TRANSTYPENAME',allowBlank: false,oidName:'TRANSTYPE',
codeName:'TRANSTYPECODE', helpConfig:{helpName:'M_TRANSTYPE',helpCode:'001'}},
{xtype:'textfield', fieldLabel: '发票编号',width:165,name: 'TRANSNUM',readOnly :true},
{xtype:'datefield', fieldLabel: '发票日期',width:165,name: 'TRANSDATE',allowBlank: false},
{xtype:'helpfield', fieldLabel: '售达客户',width:165,name:'CUSTOMERNAME', oidName:'CUSTOMERID',
codeName:'CUSTOMERCODE', helpConfig:{helpName:'M_COMPANYPARTNER',helpCode:'001',onAfterHelp:function(e){AppBox.Bill.SalDelivery.headerHelp(e);}}},
{xtype:'helpfield', fieldLabel: '收票客户',width:165,name:'BILLTONAME', oidName:'BILLTO',
codeName:'BILLTOCODE', helpConfig:{helpName:'M_COMPANYPARTNER',helpCode:'001'}},
{xtype:'helpfield', fieldLabel: '付款客户',width:165,name:'PAYERNAME', oidName:'PAYER',
codeName:'PAYERCODE', helpConfig:{helpName:'M_COMPANYPARTNER',helpCode:'001'}},
{xtype:'helpfield', fieldLabel: '送达客户',width:165,name:'TRANSTONAME', oidName:'TRANSTO',
codeName:'TRANSTOCODE', helpConfig:{helpName:'M_COMPANYPARTNER',helpCode:'001'}},
{xtype:'helpfield', fieldLabel: '货币',width:165,name: 'CCNAME', oidName:'CURRENCY',
codeName:'CCCODE', helpConfig:{helpName:'M_CURRENCY',helpCode:'001'}},
{xtype:'numberfield', fieldLabel: '汇率',width:165,name: 'EXCHGRATE'},
{xtype:'textfield', fieldLabel: '备注',width:165,name: 'MEMO'}
],
// 单据页脚
footer:[
{xtype:'textfield', fieldLabel: '制单人', width:165,name: 'CREATOR',disabled:true},
{xtype:'textfield', fieldLabel: '最后修改时间', width:165,name: 'CREATETIME',disabled:true},
{
xtype:"combo",fieldLabel:'状态', width:165,emptyText:'制单', blankText:'制单',editable:false,forceSelection:true,triggerAction:'all',
qtip:'设置是否可用',
store:new Ext.data.SimpleStore({fields: ["retrunValue", "displayText"],data: [[0,'制单'],[2,'审批中'],[1,'审核通过']],sortInfo:{field:'retrunValue'}}),
valueField :"retrunValue",displayField: "displayText",mode: 'local',hiddenName:'STATUS',allowBlank:false,name:'_status',disabled:true
}
],