首页 > 代码库 > Extjs随笔(一)WebBuilder开发

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=http://www.mamicode.com/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的名称

 

Extjs随笔(一)WebBuilder开发