- 浏览: 10027 次
- 性别:
- 来自: 上海
最新评论
/**不知道怎么插入图片,代码保证正确。下拉列表名分别是:贷方凭证类型 ,本方科目
*图片放在下面的附件里了
* 细节的东西,自己慢慢看,肯定写的有点粗糙。
*/
Ext.namespace('speedy.cm.tcmVoucherOppSet');
speedy.cm.tcmVoucherOppSet.MainPanel = function(config) {
Ext.applyIf(this, config);
this.initUIComponents();
speedy.cm.tcmVoucherOppSet.MainPanel.superclass.constructor.call(this);
};
Ext.extend(speedy.cm.tcmVoucherOppSet.MainPanel, Ext.Panel, {
firstValue :'',
tcmvoucheroppsettingId :'', //tcm_voucheroppsetting表的主键vId
tcmVoucherSettingId :'', //tcm_VoucherSetting表的主键vId
initUIComponents : function() {
this.st3= new Ext.data.Store({
baseParams : {limit:50},
reader : new Ext.data.JsonReader({
totalProperty:'totalCount',
id : "id",
root : "result"},
[
{name : 'vId', mapping : 'vId'},
{name : 'vVouId', mapping : 'vVouId'},
{name : 'vOppAccCode', mapping : 'vOppAccCode'},
{name : 'vOppAccName', mapping : 'vOppAccName'},
{name : 'nIssum', mapping : 'nIssum'},
{name : 'nIsusing', mapping : 'nIsusing'},
{name : 'vAbstract', mapping : 'vAbstract'},
{name : 'vCustomer', mapping : 'vCustomer'},
{name : 'vFlowCode', mapping : 'vFlowCode'}
]),
proxy : this.proxy||new Ext.data.HttpProxy({
url:'ui/modules/speedy/cm/VoucherOppSet/getAllTcmVoucherOppSetByVouId.action'
})
});
this.accStore= new Ext.data.Store({
baseParams : {limit:50},
reader : new Ext.data.JsonReader({
totalProperty:'totalCount',
id : "id",
root : "result"},
[
{name : 'vId', mapping : 'vId'},
{name : 'vOppId', mapping : 'vOppId'},
{name : 'vBankAccount', mapping : 'vBankAccount'},
{name : 'vCostCenter', mapping : 'vCostCenter'},
{name : 'vRemark', mapping : 'vRemark'}
]),
proxy : this.proxy||new Ext.data.HttpProxy({
url:'ui/modules/speedy/cm/VoucherOppSet/getAllTcmVoucherOppAccountByOppId.action'
})
});
//加载accStore数据源
this.accStore.load();
this.oppGridPanel = new Ext.grid.GridPanel({
bbar : new Ext.PagingToolbar({
xtype : 'paging',
pageSize : 50,
store : this.st3,
displayInfo : true,
displayMsg : '显示记录从 {0} 到 {1} 总共 {2}',
emptyMsg : '没有记录'
}),
height :100,
store : this.st3,
border : false,
loadMask: {msg:'正在取数,请稍等!'},
listeners : {
click : {
fn : function() {
var record=this.oppGridPanel.selModel.getSelected();
if( record!= null)
{
this.accStore.baseParams.vOppId=record.get('vId');
this.accStore.load();
}
}.createDelegate(this)
}
},
columns : [
new Ext.grid.RowNumberer(),
{
width : 150,
header : '唯一ID',
dataIndex : 'vId',
sortable : true,
hidden : true
},
{
width : 150,
header : '对应本方信息表中唯一ID ',
dataIndex : 'vVouId',
sortable : true,
hidden : true
},
{
width : 150,
align : 'Left',
header : '对方科目编号',
dataIndex : 'vOppAccCode',
sortable : true,
hidden : false
}
,
{
width : 250,
align : 'Left',
header : '对方科目名称',
dataIndex : 'vOppAccName',
sortable : true,
hidden : false
}
,
{
width : 150,
align : 'Left',
header : '是否汇总',
dataIndex : 'nIssum',
sortable : true,
hidden : false,
renderer : this.isWhether
}
,
{
width : 150,
align : 'Left',
header : '是否有效',
dataIndex : 'nIsusing',
sortable : true,
hidden : false,
renderer : this.isValid
}
,
{
width : 250,
align : 'Left',
header : '凭证摘要',
dataIndex : 'vAbstract',
sortable : true,
hidden : false
}
,
{
width : 150,
align : 'Left',
header : '现金流量',
dataIndex : 'vFlowCode',
sortable : true,
hidden : false
}
,
{
width : 150,
align : 'Left',
header : '客户编号',
dataIndex : 'vCustomer',
sortable : true,
hidden : false
}
],
scrollable:true,
cm : this.columns,
selModel : new Ext.grid.RowSelectionModel({singleSelect : true})
});
this.accountGridPanel = new Ext.grid.GridPanel({
store : this.accStore,
height : 100,
border : false,
loadMask: {msg:'正在取数,请稍等!'},
listeners : {
click : {
fn : function() {
var record=this.oppGridPanel.selModel.getSelected();
if( record!= null)
{
this.tcmvoucheroppsettingId=record.get('vId');
this.accStore.baseParams.vOppId=this.tcmvoucheroppsettingId;
}
}.createDelegate(this)
}
},
columns : [
new Ext.grid.RowNumberer(),
{
width : 150,
header : '唯一ID',
dataIndex : 'vId',
sortable : true,
hidden : true
},
{
width : 150,
align : 'Left',
header : '对应对方信息唯一ID',
dataIndex : 'vOppId',
sortable : true,
hidden : true
}
,
{
width : 400,
align : 'Left',
header : '银行账户',
dataIndex : 'vBankAccount',
sortable : true,
hidden : false
}
,
{
width : 250,
align : 'Left',
header : '成本中心',
dataIndex : 'vCostCenter',
sortable : true,
hidden : false
}
,
{
width : 150,
align : 'Left',
header : '备注',
dataIndex : 'vRemark',
sortable : true,
hidden : false
}
],
scrollable:true,
cm : this.columns,
selModel : new Ext.grid.RowSelectionModel({singleSelect : true})
});
this.onAddClick = function(){
var oppEditPanel = new speedy.cm.tcmVoucherOppSet.ModifyWindow({
fOppSetId: this.tcmVoucherSettingId,
faStore :this.st3,
title :'新增',
type :0
})
oppEditPanel.show();
};
this.onAccAddClick = function(){
var accountEditPanel = new speedy.cm.tcmVoucherOppSet.AccountModifyWindow({
fOppSetId : this.tcmvoucheroppsettingId,
fStore :this.accStore,
title :'新增',
type :0
})
accountEditPanel.show();
};
this.onModifyClick = function(){
var record = this.oppGridPanel.selModel.getSelected();
if( record == null)
{
Ext.Msg.alert('提示', '请选择一条记录!');
return;
}
var ModifyWindow = new speedy.cm.tcmVoucherOppSet.ModifyWindow({
fStore :this.st3,
title :'修改',
type :1
})
ModifyWindow.on('beforeshow',function(dialog){
Ext.getCmp('speedy.cm.tcmVoucherOppSet.ModifyWindow').getForm().loadRecord(record);
});
ModifyWindow.show();
};
this.onAccModifyClick = function(){
var record = this.accountGridPanel.selModel.getSelected();
if( record == null)
{
Ext.Msg.alert('提示', '请选择一条记录!');
return;
}
var accountModifyWindow = new speedy.cm.tcmVoucherOppSet.AccountModifyWindow({
fStore :this.accStore,
title :'修改',
type :1
})
accountModifyWindow.on('beforeshow',function(dialog){
Ext.getCmp('speedy.cm.tcmVoucherOppSet.AccountModifyWindow').getForm().loadRecord(record);
});
accountModifyWindow.show();
};
this.onDeleteClickSure = function(record){
var box = Ext.MessageBox.show(
{
msg :'正在删除,请稍候...',
progressText: '',
width : 200,
height:100,
progress:false,
closable:false,
wait : false
});
Ext.Ajax.request
(
{
url:'ui/modules/speedy/cm/VoucherOppSet/deleteTcmVoucherOppSet.action',
params:
{
vId:record.get('vId'),
version:record.get('version')
},
success:function(response, optional)
{
var ret = Ext.util.JSON.decode(response.responseText);
if(ret.success == false){
Ext.Msg.alert('错误',ret.err);
return;
}
box.hide();
var o = {start: 0};
this.st3.reload({params:o});
}.createDelegate(this),
failure:function(response,optional)
{
Ext.Msg.alert('错误',"删除操作失败!");
box.hide();
}
}
)
};
this.onDeleteClick = function(){
var record = this.oppGridPanel.selModel.getSelected();
if(!record)
{
Ext.Msg.alert('提示', "请选择一条记录!");
return;
}
Ext.MessageBox.confirm('提示', "确定要删除所选记录?", function(btn)
{
if(btn == 'yes')
{
this.onDeleteClickSure(record);
}
}.createDelegate(this))
};
this.onAccDeleteClickSure = function(record){
var box = Ext.MessageBox.show(
{
msg :'正在删除,请稍候...',
progressText: '',
width : 200,
height:100,
progress:false,
closable:false,
wait : false
});
Ext.Ajax.request
(
{
url:'ui/modules/speedy/cm/VoucherOppSet/deleteTcmVoucherOppAccount.action',
params:
{
vId:record.get('vId'),
version:record.get('version')
},
success:function(response, optional)
{
var ret = Ext.util.JSON.decode(response.responseText);
if(ret.success == false){
Ext.Msg.alert('错误',ret.err);
return;
}
box.hide();
var o = {start: 0};
this.accStore.reload({params:o});
}.createDelegate(this),
failure:function(response,optional)
{
Ext.Msg.alert('错误',"删除操作失败!");
box.hide();
}
}
)
};
this.onAccDeleteClick = function(){
var record = this.accountGridPanel.selModel.getSelected();
if(!record)
{
Ext.Msg.alert('提示', "请选择一条记录!");
return;
}
Ext.MessageBox.confirm('提示', "确定要删除所选记录?", function(btn)
{
if(btn == 'yes')
{
this.onAccDeleteClickSure(record);
}
}.createDelegate(this))
};
this.st = new Ext.data.Store({
proxy : this.proxy||new Ext.data.HttpProxy({url:'ui/modules/speedy/cm/VoucherSet/getTcmVoucherTypeSetIdAndTypeName.action'}),
reader : new Ext.data.JsonReader({
totalProperty:'totalCount',
id : "id",
root : "result"},
[{name : 'vId', mapping : 'vId'},
{name : 'vTypeName',mapping : 'vTypeName'}]
)
});
this.st2 = new Ext.data.Store({
proxy : this.proxy||new Ext.data.HttpProxy({url:'ui/modules/speedy/cm/VoucherSet/getAllTcmVoucherSetByTypeId.action'}),
reader : new Ext.data.JsonReader({
totalProperty:'totalCount',
id : "id",
root : "result"},
[{name : 'vId', mapping : 'vId'},
{name : 'vAccCode',mapping : 'vAccCode'},
{name : 'vAccName',mapping : 'vAccCodeAndvAccName'}]
)
});
this.vouTypeChang = new Ext.form.ComboBox({
store : this.st,
fieldLabel : '凭证类型',
mode : 'local',
triggerAction : 'all',
id : 'vTypeId',
name : 'speedy.cm.tcmVoucherOppSet.vTypeId',
displayField : 'vAccCode',
valueField : 'vId',
displayField : 'vTypeName',
hiddenName : 'Id',
forceSelection: true,
readOnly : true,
width : 200
});
this.accCodeChange = new Ext.form.ComboBox({
store : this.st2,
fieldLabel : '本方科目',
mode : 'local',
triggerAction : 'all',
id : 'vAccCode',
name : 'speedy.cm.tcmVoucherOppSet.vAccCode',
displayField : 'vAccName',
valueField : 'vId',
displayField : 'vAccName',
hiddenName : 'AccId',
forceSelection: true,
readOnly : true,
width : 400
});
this.st.load();//加载数据源
//设置下拉列表的默认值
this.st.on('load',function(store,record,opts){
//这种方法可以获得第一项的值
var vId=store.getRange()[0].data.vId;
this.firstValue =store.getRange()[0].data.vTypeName;
this.vouTypeChang.setValue(vId);
this.st2.baseParams.vTypeId=vId;
// Ext.Msg.alert('load',vId);
this.st2.load();
this.st3.load();
}.createDelegate(this) );
this.st2.on('load',function(store,record,opts){
//tcmVoucherSetting表的vId
this.tcmVoucherSettingId = store.getRange()[0].data.vId;
this.st3.baseParams.vVouId=this.tcmVoucherSettingId;
this.accCodeChange.setValue(this.tcmVoucherSettingId);
this.st3.load();
this.accStore.load();
}.createDelegate(this));
//弹出每次下拉列表选择的值
this.vouTypeChang.on('select',function(store,record,options){
//获取下拉列表中凭证类型vTypeName对应的vTypeId
var selectValue=Ext.fly('vTypeId').dom.value;
//对应vTypeId的vId<即tcm_voucherTypeSet表的主键值>
var id=Ext.fly('Id').dom.value;
this.st2.on('beforeload',function(store,record,opts){
//将下拉列表的值赋给vTypeId
store.baseParams.vTypeId=id;
});
this.accCodeChange.setValue('');
this.st2.reload();
}.createDelegate(this));
this.accCodeChange.on('select',function(store,record,options){
//设定过滤参数
this.tcmVoucherSettingId=Ext.get('AccId').dom.value;
this.st3.baseParams.vVouId=this.tcmVoucherSettingId;
this.st3.load();
}.createDelegate(this));
Ext.apply(this, {
layout : "border",
items:[{
tbar : new Ext.Toolbar([
'贷方凭证类型 :',
this.vouTypeChang,
{
xtype : "tbseparator"
},
'本方科目 :',
this.accCodeChange,
{
xtype : "tbseparator"
},
{text : "新增",
iconCls : "btn_add",
handler : function() {
this.onAddClick();
this.st3.load();
}.createDelegate(this)
}, {
xtype : "tbseparator"
}, {
text : "修改",
iconCls : "btn_modify",
handler : function() {
this.onModifyClick();
}.createDelegate(this)
}, {
xtype : "tbseparator"
}, {
text : "删除",
iconCls : "btn_delete",
handler : function() {
this.onDeleteClick();
}.createDelegate(this)
}]),
items : [this.oppGridPanel],
split : true,
// height :100,
layout : "fit",
region : "center",
border : false,
closable :true,
title : "贷方凭证分类设置1"
},{
tbar : new Ext.Toolbar([
{text : "新增",
iconCls : "btn_add",
handler : function() {
this.onAccAddClick();
}.createDelegate(this)
}, {
xtype : "tbseparator"
}, {
text : "修改",
iconCls : "btn_modify",
handler : function() {
this.onAccModifyClick();
}.createDelegate(this)
}, {
xtype : "tbseparator"
}, {
text : "删除",
iconCls : "btn_delete",
handler : function() {
this.onAccDeleteClick();
}.createDelegate(this)
}]),
items : [this.accountGridPanel],
layout : "fit",
split : true,
height :200,
region : "south",
border : false,
closable :true,
title : "贷方凭证分类设置2"
}
]
});
},
isWhether:function(val)
{
if(val == '0')
{
return '否';
}
else if(val == '1')
{
return '是';
}
},
isValid: function(val)
{
if(val == '0')
{
return '无效';
}
else if(val == '1')
{
return '有效';
}
}
});
Ext.reg('speedy.cm.tcmVoucherOppSet.MainPanel', speedy.cm.tcmVoucherOppSet.MainPanel);
相关推荐
在实现二级联动时,通常会涉及两个ComboBox,一个用于一级选择(如省份),另一个用于二级选择(如城市)。当一级选择改变时,我们需要更新二级ComboBox的store,使其只显示与选定的一级选项相关的数据。 以下是一...
在这个示例中,`LoadLevel1Categories()`和`LoadSubCategories(int parentId)`是两个假设存在的方法,分别用于加载一级分类和对应父分类ID的二级分类。 总的来说,实现`datagridview`中的`combobox`二级联动需要...
当用户在第一级combobox中选择一个值时,触发该事件,此时可以获取到所选值并根据这个值动态更新第二级combobox的`url`,然后调用`reload`方法重新加载数据。这样,第二级combobox的选项就会基于第一级的选择进行...
valueField: 0, // 数组中的第一个元素作为值 textField: 1, // 数组中的第二个元素作为显示文本 onLoadSuccess: function() { $(this).combobox("select", '1'); // 选中第一条数据 } }); ``` #### 总结 综...
3. 动态加载:根据第一个Combobox的选中值,向服务器发送请求获取相关联的第二级数据,然后填充到第二个Combobox的Store中。 三、具体步骤 1. 创建Store:定义两个Store,分别用于存储一级和二级的数据,可以使用...
在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)应用程序中实现一个基于comboBox的全国地址联动功能。ComboBox是WPF中一个常用的控件,它允许用户在下拉列表中选择一个项或者输入自定义内容...
本教程将深入探讨如何在C#环境下使用SQLite数据库与ComboBox控件进行交互,帮助开发者实现数据查询和展示。 首先,我们需要安装SQLite for .NET,这是一个允许.NET应用程序访问SQLite数据库的库。可以通过NuGet包...
当用户在省份ComboBox中选择一个项时,ViewModel可以通过`DelegateCommand`触发事件,更新城市ComboBox的数据。类似地,城市选择也会更新县ComboBox。 4. **事件响应** 在ViewModel中,添加事件处理方法来响应用户...
本教程将详细讲解如何在DataGridView中内嵌ComboBox,并实现可下拉编辑以及从数据库加载数据的功能。 1. **创建内嵌ComboBox** 在C#中,我们首先需要在DataGridView的列定义中设置某一列的数据类型为DataGridView...
当我们需要在DataGrid的不同列中实现ComboBox的联动效果时,即在一个ComboBox的选择改变时,根据选中的值更新另一个ComboBox的选项,这涉及到事件监听、数据绑定和自定义组件等多个知识点。 首先,我们来理解联动的...
C#动态从SQL数据库载入数据到Listview和ComboBox
3. **数据更新**:在事件处理器中,我们根据第一个ComboBox选择的值去过滤或刷新第二个ComboBox的数据源。可以使用`store.load`或`store.filter`方法,前者用于重新加载数据,后者用于根据条件过滤现有数据。 4. **...
Delphi中在ComboBox中添加数据库中字段
WinForm中comboBox控件数据绑定是许多开发者需要掌握的技巧,本文将详细介绍WinForm中comboBox控件数据绑定的实现方法,并结合实例形式分析了WinForm实现comboBox控件数据绑定的常用方法与相关操作技巧。 WinForm中...
ZK中combobox的设置,combobox默认选项的设置,
在本文中,我们将深入探讨如何使用Ext 2.0的ComboBox组件实现省份和城市联动选择框的功能。Ext是一个强大的JavaScript库,它提供了丰富的用户界面组件,包括ComboBox,用于创建下拉选择框。在这个例程中,我们将看到...
首先,我们需要了解这段代码的基本功能:它定义了一个名为`CoPassData`的方法,该方法接受两个参数——一个`ComboBox`对象(命名为`cobox`)和一个字符串变量(命名为`TableName`),用于指定数据表的名称。...
本话题主要关注如何将分页功能与ComboBox(下拉列表框)和TextBox(文本框)控件结合,以便在Windows Forms或ASP.NET等平台上绑定数据库,实现数据的动态加载和筛选。 首先,我们需要理解ComboBox和TextBox的基本...
- 当Combobox的数据源来自数据库或其他数据集时,要确保所有数据项都被正确地添加到控件中,并且状态设置正确。 7. **解决方案** - 检查并修正代码中的逻辑错误,确保所有项的Enabled和Visible属性设置正确。 - ...
本实例主要讲解如何将数据库中的数据绑定到`ComboBox`,使得用户可以从列表中选择或者直接输入数据。这个过程涉及到数据访问、数据绑定以及UI交互等关键知识点。 首先,我们需要理解`ComboBox`的基本操作。`...