Extjs随笔(一)WebBuilder开发
1.extjs怎么实现点击第一个grid1(对应store1)的某行,显示第二个grid2(对应store1)与之关联的行(前提是grid1和grid2之间的数据有关联),并默认选中所有的行:
(1).在grid1的events事件的itemclick属性加入如下代码:
//首先获取grid1所选中的行
var record = grid1.getSelectionModel().getSelection();
//定义一个字符串用来存grid1所存取的的数据行的主键(INQ_H_ID)
var INQ_H_ID_S = "";
//遍历所选中的行,把主键依次加入到INQ_H_ID_S中
for(var i = 0; i < record.length; i++)
{
INQ_H_ID_S += record[i].data.INQ_H_ID;
if(i<record.length-1)
{
INQ_H_ID_S = INQ_H_ID_S + "‘,‘";
}
}
//根据所得到的主键字符串INQ_H_ID_S重新刷新grid2的数据
Wb.load(store2,{INQ_H_ID_S:INQ_H_ID_S});
(2).默认选中grid2中的所有行
在grid2对应的store2的events事件中的load属性中加入如下代码:
grid2.getSelectionModel().selectAll();
2.从数据库中读取的数据,怎么实现读取“1”,界面上显示“编辑中”,读取“2‘,界面上显示”已提交“:
decode(A.ORDER_STATUS,‘1‘,‘编辑中‘,‘2‘,‘已提交‘) STATUS_NAME
在query中加入以上代码,
在要显示的grid定义的Column中的dataIndex中填入STATUS_NAME,当从数据库中读取的STATUS_NAME状态为”1“的时候,前台界面显示”编辑中“,为“2”的时候,前台界面显示“已提交”
3.查询条件,订单类型(ORDER_TYPE),界面上显示的是”采购订单“或者”销售订单“,数据库中存储的字段是”S“或者”P“,其实就是是根据”S“或者”P“在数据库中查询
查询sql如下:
SELECT A.*,
decode(A.ORDER_STATUS,‘1‘,‘编辑中‘,‘2‘,‘已提交‘) STATUS_NAME
FROM TRD_PS_ORDER_V A WHERE NVL(A.ORDER_H_CODE,‘ ‘) LIKE ‘%{#text1#}%‘
AND NVL(A.ORDER_H_NAME,‘ ‘) LIKE ‘%{#text11#}%‘
AND NVL(A.COM_NAME,‘ ‘) LIKE ‘%{#text3#}%‘
AND NVL(A.ORDER_GROSS_VALUE,‘1‘) <TO_NUMBER (NVL({?number1?},99999999999))
AND NVL(A.ORDER_GROSS_VALUE,‘1‘) >TO_NUMBER (NVL({?number2?},0))
AND NVL(A.VENDOR_NAME,‘ ‘) LIKE ‘%{#text31#}%‘
AND NVL(A.ORDER_TYPE,‘ ‘) LIKE ‘%{#comboBox1#}%‘
AND NVL(A.ORDER_STATUS,‘ ‘) LIKE ‘%{#comboBox2#}%‘
AND NVL(A.CREATE_BY_NAME,‘ ‘) LIKE ‘%{#text2#}%‘
order by a.CREATE_DATE DESC
在comboBox1中的properties中的query读入一条search,代码如下:
select A.VAL_CODE,A.VAL_NAME from XIP_PUB_VAL_SET_DTL A where A.val_set_code=‘DDLX‘
VAL_CODE表示订单编码,存入数据库的字段,VAL_NAME订单名称,在界面显示的字段
4.怎么实现点击按钮(这里按钮名称为”新增“),要跳转的页面上自动生成制定格式的编码并赋值给制定的text文本框:
1).首先从数据库中获取制定格式的编码
1.新建一个组件(New module),在module中新建一个dataprovider,在dataprovider的properties中的sql中加入如下代码:
//获取年月日时分秒
select to_char(sysdate,‘yyyymmddhhiiss‘)as aa from dual
生成的字符格式:20141227064432
2.并在dataprovider的properties中的type选择jsonObject
3.新建一个Ajax,在Ajax的properties中的url属性中把module的url放入其中,即把module拖入改url中即可,并在该output中填入要得到的该编码的text文本框的名称
4.并在Ajax的events中的success中添加如下代码:
var a = response.responseText;
var value=eval("("+a+")");
Ext.getCmp(‘CON_CODE‘).setValue(value.AA);
//CON_CODE为要得到该格式编码的text文本框的di名称
//AA和module下的dataprovider中的sql语句里面获取字符的别名,sql默认把这些字符都设置成大写,所以这里写成大写的AA
5.最后在新建按钮中的events的时间中的success属性中执行该Ajax
格式如下:getcodeajax.request();
getcodeajax为Ajax的名称
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。