extjs 增删改查 extjs 增删改查 extjs 增删改查

package com.tempus.userCenter.service.authority;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.directwebremoting.annotations.Param;
import org.directwebremoting.annotations.RemoteMethod;
import org.directwebremoting.annotations.RemoteProxy;
import org.directwebremoting.spring.SpringCreator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.tempus.modules.dwr.util.Condition;
import com.tempus.modules.dwr.util.DWRUtil;
import com.tempus.modules.dwr.util.DwrBackParams;
import com.tempus.modules.orm.Page;
import com.tempus.modules.orm.PropertyFilter;
import com.tempus.modules.orm.hibernate.EntityManager;
import com.tempus.modules.web.struts2.Struts2Utils;
import com.tempus.userCenter.dao.authority.ResourcesDao;
import com.tempus.userCenter.dao.authority.UsersDao;
import com.tempus.userCenter.entity.authority.Resources;
import com.tempus.userCenter.entity.authority.Users;
import com.tempus.userCenter.service.ServiceException;

/**
 * 角色管理类.
 *
 * 实现领域对象角色的所有业务管理函数.
 * 通过泛型声明继承DefaultEntityManager,默认拥有CRUD管理函数及HibernateDao<Role,Long>
 * entityDao成员变量. 使用Spring annotation定义事务管理.
 *
 * @author andy
 */
@Service
@RemoteProxy(creator = SpringCreator.class, creatorParams = @Param(name = "beanName", value = "ResourcesManager"), name = "ResourcesManager")
@Transactional
public class ResourcesManager extends EntityManager<Resources, Long> {

 @Autowired
 ResourcesDao resourceDao;
 @Autowired
 UsersDao usersDao;

 @Override
 @RemoteMethod
 protected ResourcesDao getEntityDao() {
  return resourceDao;
 }

 /**
  * 查询用户权限
  *
  * @param userid
  * @param resources_type
  * @param functionLevel
  * @param status
  * @return
  */
 public List<Resources> findUserFunction(String userid,
   String resources_type, String functionLevel, String status) {
  String sql = "select tr.* from t_users t inner join t_users_roles ur on t.id=ur.user_id inner join t_roles_authorities ra on ra.role_id=ur.role_id"
    + " inner join t_resources_authorities rea on rea.authority_id=ra.authority_id inner join t_resources tr on tr.id = rea.resource_id where t.id='"
    + userid
    + "' and tr.resource_type='"
    + resources_type
    + "' and tr.function_level like '"
    + functionLevel
    + "%' and tr.status='" + status + "'";
  return getEntityDao().findBySql(sql);
 }

 public String geToolButtons(String userid, String resources_type,
   String functionLevel, String status) {
  List<Resources> buttonList = findUserFunction(userid, resources_type,
    functionLevel, status);
  Collections.sort(buttonList);
  return buttonHelper(buttonList);

 }
 public String geToolButtons(List<Resources> buttonList,String functionLevel)
 {  
  List<Resources> currentButtonList = new ArrayList<Resources>();
  try{
    for (Resources resources : buttonList) {
     if(resources.getFunctionLevel().startsWith(functionLevel)&&!currentButtonList.contains(resources))
     {
      currentButtonList.add(resources);
     }
    }
    
  }catch(Exception ex)
  {
   throw new ServiceException("会话已经超时,请重新登录!");
  }
  return buttonHelper(currentButtonList);

 }
 public String buttonHelper(List<Resources> buttonList)
 {
  StringBuffer buttonSbf = new StringBuffer();

  buttonSbf.append("<script language='JavaScript'>\n");
  buttonSbf.append("var tb = new Ext.Toolbar({});\n");
  
  for (int i = 0; i < buttonList.size(); i++) {
   buttonSbf.append("tb.addButton(\n");
   buttonSbf.append("new Ext.Toolbar.Button({\n");
   buttonSbf.append("text:'" + buttonList.get(i).getFunctionName()
     + "',\n");
   if ("新增".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'addIcon',\n");
    buttonSbf.append("handler:function(){addRecord(store);}\n");

   }
   if ("申请".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'addIcon',\n");
    buttonSbf.append("handler:function(){addRecord(store);}\n");
    
   }
   if ("查询".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'queryIcon',\n");
    buttonSbf.append("handler:function(){queryRecord(store);}\n");

   }

   if ("修改".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要修改的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("updateRecord(store,id,record);}\n");
   }
   
   if ("层级配置".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要配置的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("configRecord(store);}\n");
   }
   
   if ("生效".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要生效的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    
    buttonSbf
    .append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("inureRecord(store,items);}\n");
   }
   
   if ("注销".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要注销的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("writeoffRecord(store,id);}\n");
   }
   if ("激活".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'activeIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要激活的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("activeRecord(store,id);}\n");
   }
   if ("删除".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'deleteIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要删除的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("deleteRecord(store,items);}\n");
   }
   if ("工单撤回".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'deleteIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要删除的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("withdrawRecord(store,items);}\n");
   }
   
   if ("撤回".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'deleteIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要撤回的工单');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("withdrawsRecord(store,items);}\n");
   }
   if ("删 除".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'deleteIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要删除的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("deleteHistoryCent(store,items);}\n");
   }
   if ("撤销".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'deleteIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要撤销的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get('id');\n");
    buttonSbf.append("dropRecord(store,id);}\n");
   }
   if ("营销审核".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要审核的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("marketFunction(store,id);}\n");
   }
   if ("主管审核".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要审核的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("marketFunction(store,id);}\n");
   }
   if ("审核".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要审核的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("auditFunction(store,id);}\n");
   }
   if ("通过".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
    .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
    .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要审核的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
    .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("auditFunction(store,id);}\n");
   }
 
   
   
   if ("导出".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'excelIcon',\n");
    buttonSbf.append("handler:function(){exportRecord(store);}\n");
   }
   if ("ERP导出".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'excelIcon',\n");
    buttonSbf.append("handler:function(){exportRecord(store);}\n");
   }
   if ("导入".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'excelIcon',\n");
    buttonSbf.append("handler:function(){importRecord(store);}\n");
   }
   if ("批量修改".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'excelIcon',\n");
    buttonSbf.append("handler:function(){importUpdate(store);}\n");
   }

   if ("打印".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'excelIcon',\n");
    buttonSbf.append("handler:function(){importRecord(store);}\n");
   }
   if ("异动".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'timeIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要查看异动的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("changeRecord(store,id);}\n");
   }
   if ("流转轨迹".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'timeIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf.append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf.append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("var recs=selectionModel.getSelections();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要查看流转轨迹的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = recs[0].get('gdid');\n");
    buttonSbf.append("changeRecord(store,id);}\n");
   }
   if ("归档".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf.append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf.append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要归档的记录');\n"); 
    buttonSbf.append("return;}\n");
    buttonSbf.append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("archiveRecord(store,items);}\n");
   }
   if ("工单分配".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf.append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf.append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要分配的工单');\n"); 
    buttonSbf.append("return;}\n");
    buttonSbf.append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("assignRecord(store,items);}\n");
   }
   
   if ("更换客户经理".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf.append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf.append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要更换的客户');\n"); 
    buttonSbf.append("return;}\n");
    buttonSbf.append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("assignRecord(store,items);}\n");
   }
   
   if ("客户回访维护".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择客户');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("accessFunction(store,id);}\n");
   }
   
   if ("工单处理".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要处理的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("dealRecord(store,id,record);}\n");
   }
   
   if ("工单审批".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要审批的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("approveRecord(store,id,record);}\n");
   }
   
   
   if ("处理关闭".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要处理的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("closeRecord(store,id,record);}\n");
   }
   
   if ("历史审批".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'queryIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf.append("queryHistoryRecord(store);}\n");
   }
   
   if ("常旅客".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'guestIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要查看常旅客的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("guestFunction(store,id);}\n");
   }
   
   if ("消费明细".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'moneyIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要查看消费明细的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("historyCentFunction(store,id);}\n");
   }
   
   if ("流转配置".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'moneyIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要流转配置的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("turnConfigFunction(store,id);}\n");
   }
   
   if ("审批流程配置".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'moneyIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要配置的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("approveConfigFunction(store,id);}\n");
   }
   
   if ("机票明细".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'flight',\n");
    buttonSbf.append("handler:function(){flightHistoryCentFunction();}\n");
   }
   
   if ("酒店明细".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'hotel',\n");
    buttonSbf.append("handler:function(){hotelHistoryCentFunction();}\n");
   }
   
   
   if ("其它明细".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'moneyIcon',\n");
    buttonSbf.append("handler:function(){othersHistoryCentFunction();}\n");
   }
   if ("短信邮件角色维护".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'rolesIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要查看的大客户');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("roleduanxin(store,id);}\n");
   }
   if ("人员批量添加".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'moneyIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要批量维护的角色');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("rolepiliang(store,id);}\n");
   }
   
   if ("工单流转".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要流转的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
    .append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("moveRecord(store,items);}\n");
   }
   
   if ("分配权限".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要分配权限的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("assignFunction(store,id);}\n");
   }
   if ("服务分配".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'servingIcon',\n");
    buttonSbf.append("handler:function(){\n");
    // buttonSbf
    // .append("var selectionModel = grid.getSelectionModel();\n");
    // buttonSbf
    // .append("var record = selectionModel.getSelected();\n");
    // buttonSbf.append("if ( record == undefined ){\n");
    // buttonSbf.append("Ext.Msg.alert('系统提示','请选择要分配权限的记录');\n");
    // buttonSbf.append("return;}\n");
    // buttonSbf
    // .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    // buttonSbf.append("if ( selectedcount > 1 ){\n");
    // buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    // buttonSbf.append("return;}\n");
    // buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("assignServing(store);}\n");
   }
   if ("个性服务".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'servingIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf.append("assignOnlyServing(store);}\n");
   }
   if ("重置密码".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要重置密码的人员');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("resetPwdFunction(store,id);}\n");
   }
   if ("分配角色".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要分配角色的人员');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("assignRolesFunction(store,id);}\n");
   }
   if ("积分".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'integralIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要维护积分的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("integralManage(store,id);}\n");
   }
   
   if ("审核不通过".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要审核的投诉或建议');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("auditNotThrough(store,id,record);}\n");
   }
   
   if ("审核通过".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要审核的投诉或建议');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("auditThrough(store,id,record);}\n");
   }
   
   if ("已处理".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要处理的投诉或建议');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("auditFinish(store,id,record);}\n");
   }
   if ("导出日报".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'excelIcon',\n");
    buttonSbf.append("handler:function(){exportRecordDay(store);}\n");
   }
   if ("导出月报".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'excelIcon',\n");
    buttonSbf.append("handler:function(){exportRecord(store);}\n");
   }
   if ("成功".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要审核的记录');\n");
    buttonSbf.append("return;}\n");
//    buttonSbf
//      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
//    buttonSbf.append("if ( selectedcount > 1 ){\n");
//    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
//    buttonSbf.append("return;}\n");
//    buttonSbf.append("var id = record.get(pk);\n");
//    buttonSbf.append("auditSuccess(store,id);}\n");
    buttonSbf
    .append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("auditSuccess(store,items);}\n");
   }
   if ("失败".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要审核的记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf
      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
    buttonSbf.append("if ( selectedcount > 1 ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
    buttonSbf.append("return;}\n");
    buttonSbf.append("var id = record.get(pk);\n");
    buttonSbf.append("auditFail(store,id);}\n");
   }
   if ("异常".equals(buttonList.get(i).getFunctionName())) {
    buttonSbf.append("iconCls:'editIcon',\n");
    buttonSbf.append("handler:function(){\n");
    buttonSbf
      .append("var selectionModel = grid.getSelectionModel();\n");
    buttonSbf
      .append("var record = selectionModel.getSelected();\n");
    buttonSbf.append("if ( record == undefined ){\n");
    buttonSbf.append("Ext.Msg.alert('系统提示','请选择要审核的记录');\n");
    buttonSbf.append("return;}\n");
//    buttonSbf
//      .append("var selectedcount = parseInt(selectionModel.getCount());\n");
//    buttonSbf.append("if ( selectedcount > 1 ){\n");
//    buttonSbf.append("Ext.Msg.alert('系统提示','只能选择一条记录');\n");
//    buttonSbf.append("return;}\n");
//    buttonSbf.append("var id = record.get(pk);\n");
//    buttonSbf.append("auditSuccess(store,id);}\n");
    buttonSbf
    .append("var items = selectionModel.selections.items;\n");
    buttonSbf.append("auditException(store,items);}\n");
   }
   buttonSbf.append("}));\n");
   buttonSbf.append("tb.addSpacer();\n");
   buttonSbf.append("tb.addSeparator();\n");

  }
  buttonSbf.append("</script>\n");
  return buttonSbf.toString();
 }
 public String geToolReports(String userid, String resources_type,
   String functionLevel, String status) {
  HttpServletRequest request = Struts2Utils.getRequest();
  String path = request.getContextPath();
  List<Resources> reportList = findUserFunction(userid, resources_type,
    functionLevel, status);
  if (reportList.size() % 2 != 0) {
   Resources temp = new Resources();
   temp.setId(9999l);
   temp.setValue("");
   temp.setFunctionLevel(9999 + "");
   temp.setFunctionName("");
   reportList.add(temp);
  }

  Collections.sort(reportList);

  StringBuffer buttonSbf = new StringBuffer();
  buttonSbf.append("<br>");
  buttonSbf.append("<center>\n");
  buttonSbf
    .append("<div align=\"center\" style=\"width=100%;overflow=auto;overflow-y=hidden\">\n");
  buttonSbf.append("<table class=\"table_info\" width=\"100%\">\n");
  buttonSbf.append("<tr class=\"td_label\" align=\"center\">\n");
  buttonSbf.append("<td width=\"10%\" align=\"center\">序号</td>\n");
  buttonSbf.append("<td width=\"40%\" align=\"center\">报表</td>\n");
  buttonSbf.append("<td width=\"10%\" align=\"center\">序号</td>\n");
  buttonSbf.append("<td width=\"40%\" align=\"center\">报表</td>\n");
  buttonSbf.append("</tr>\n");

  for (int i = 0; i < reportList.size(); i++) {

   buttonSbf.append("   <tr align=\"center\">\n");
   buttonSbf.append(" <td  class=\"td_last\"> \n");
   buttonSbf.append(i + 1); // print index
   buttonSbf.append(" </td> \n");
   buttonSbf.append(" <td class=\"td_last\"> \n");
   //Resources func = (Resources) reportList.get(i);
   Resources tempFunc = (Resources) reportList.get(i++);
   buttonSbf.append("<a href=\"#\"  onClick=\"openWin('" + path
     + tempFunc.getValue() + "','" + tempFunc.getFunctionName()
     + "')\">" + tempFunc.getFunctionName() + "</a>");
   buttonSbf.append("</td>\n");
   if (i == reportList.size())
    break;
   buttonSbf.append(" <td class=\"td_last\"> \n");
   buttonSbf.append(i + 1); // print index
   buttonSbf.append(" </td> \n");
   buttonSbf.append(" <td class=\"td_last\"> \n");
   tempFunc = (Resources) reportList.get(i);
   buttonSbf.append("<a href=\"#\"  onClick=\"openWin('" + path
     + tempFunc.getValue() + "','" + tempFunc.getFunctionName()
     + "')\">" + tempFunc.getFunctionName() + "</a>");
   buttonSbf.append("</td>\n");
   buttonSbf.append(" </tr>\n");
  }
  buttonSbf.append("</table>\n");
  buttonSbf.append("</div>\n");
  buttonSbf.append("</center>\n");
  return buttonSbf.toString();

 }

 /**
  * DWR 检查functionLevel是否唯一.
  *
  * @return loginName在数据库中唯一或等于orgLoginName时返回true.
  */
 @Transactional(readOnly = true)
 @RemoteMethod
 public boolean isFunctionLevelUnique(String functionLevel,
   String orgFunctionLevel) {
  return resourceDao.isPropertyUnique("functionLevel", functionLevel,
    orgFunctionLevel);
 }

 /**
  * 用于DWR根据ID删除实体
  */
 @RemoteMethod
 public String dwrDelete(Long[] idArray) {
  String msg = "";
  for (int i = 0; i < idArray.length; i++) {
   getEntityDao().delete(idArray[i]);
  }
  msg = "删除成功!";
  return msg;
 }
 @Override
    @RemoteMethod
    @Transactional(readOnly = true)
    public Page<Resources> dwrListPageHQL(DwrBackParams params, String hql) {
        Page<Resources> page = new Page<Resources>();
        hql = "select new com.tempus.userCenter.entity.authority.Resources(id,resourceType,value,orderNum,functionName,functionLevel,description,status,functionEname,parentId) from Resources where 1=1 ";// 在这里拼HQL
        try {
            int pageSize = params.getLimit();
            int currentPage = params.getStart() / pageSize + 1;
            int queryflag = params.getQueryflag();
            String orderby = params.getOrderby();
            String orderDirection = params.getOrderdirection();
            if (queryflag == 1) {
                List<Condition> conditions = params.getConditions();
                List<PropertyFilter> filters = DWRUtil
                        .buildPropertyFilters(conditions);
                Page<Users> argPage = new Page<Users>(currentPage, pageSize);
                if (orderby != null) {
                    argPage.setOrderBy(orderby);// 设置排序参数
                    argPage.setOrder(orderDirection);// 设置排序方向 降序或者降序
                }
                StringBuffer sbHQL = new StringBuffer(hql);
                List<Object> values = new ArrayList<Object>();
                usersDao.buildFilterConditions(filters, sbHQL, values);
                page = resourceDao.findPage(sbHQL.toString(), values.toArray(),
                        argPage);
            }
        } catch (Exception e) {
            logger.error("dwrListPageHQL列表查询出现异常",e);
        }
        return page;
    }
}

 

 

-----------------------------

list。js

/**
 * the entrance of the main function
 * @param store
 */
var sm = new Ext.grid.CheckboxSelectionModel(); 

String.prototype.Trim = function()    {    return this.replace(/(^\s*)|(\s*$)/g, "");    }
function onLoad(params)
{
 var w = Ext.get('list').getWidth();//面板宽度
    var h = Ext.get('search-panel').getHeight()-queryFormWidth-35;//面板高度
    var pagesize=15;
    var conditions=new Array();                   //use to save the query condtion
    if(params["pagesize"])
    {
        pagesize=params["pagesize"];
    }
    var title=params["title"];
    var div=params["div"];

    var gridParams=params["gridParams"];
    var queryCondition=params["queryCondition"];
    var gridconfig=new GridConfig(gridParams);
 var orderby=pk;//排序参数
 var orderdirection="asc";//升序 降序
    Ext.onReady(function() {   
  var MyRecord = Ext.data.Record.create(gridconfig.getRecord());   
     store = new Ext.data.Store({
             proxy: new Ext.data.DWRProxy(eval(listOperater.list)),
             reader: new Ext.data.ListRangeReader({root:'items',totalProperty: 'totalCount',id: 'id'}, MyRecord)
         });       
           
        var colM = gridconfig.getColumn();
        var pagingBar = new Ext.PagingToolbar({
         plugins:[new Ext.ux.Andrie.pPageSize(),new Ext.ux.ProgressBarPager()],          
            pageSize:pagesize,
            paramNames:{start:"start",limit:"limit",conditions:"conditions",orderby:"orderby"},
            store:store,
            displayInfo:true,
      emptyMsg: '没有数据',  
            beforePageText:"第",
            afterPageText:"页 共 {0} 页",
            displayMsg:'第 {0} 条到 {1} 条记录--共 {2} 条',         
            doLoad:function(C) {
                var B = {},A = this.paramNames;               
                B[A.start] = C;
                B[A.limit] = this.pageSize;
                B[A.conditions] = conditions;
                B[A.queryflag] = 1;
                B[A.orderby] = pk;
                B[A.orderdirection] = "asc";
                Ext.apply(B,{queryflag:queryflag,orderby:orderby,orderdirection:orderdirection});  // 强制 增加变量 增加查询标志参数
                if (this.fireEvent("beforechange", this, B) !== false) {
                    this.store.load({params:B})
                }
            }
        });
        grid = new Ext.grid.GridPanel({
            renderTo:div,
         autoWidth:true,
         height: h,
         sm:sm,
         viewConfig: { forceFit: true },
         autoScroll:false,
         stripeRows: true,
            renderTo: document.body,
            cm:colM,
       
            store:store,
      menuDisabled:true,
   resizable:false,
   trackMouseOver:false,
            bbar:pagingBar
        });
        grid.addListener('cellclick',function(grid, rowIndex, columnIndex, e)//添加单击复制事件
          {
           var record = grid.getStore().getAt(rowIndex); //Get the Record   
        var fieldName = grid.getColumnModel().getDataIndex(columnIndex); //Get field name   
        var data = record.get(fieldName);
        if(typeof(data)=="object")
        {         
         data=(data==null?"":Ext.util.Format.date(data.toString(), 'Y-m-d h:i:s'));         
        }
        if(typeof(data)=="number")
        {
         data+="";
        }
        if(data==undefined)
        {
         data="";
        }
          grid.getView().refresh();   
             grid.getView().getCell(rowIndex,columnIndex).style.backgroundColor="#2561DE"; 
        window.clipboardData.setData("Text",data);
          }
        );
        //是否一进入就查询  在相对应的实体JS设置queryflag的值,默认为0(即不查询)
     
       if(queryflag==1)
       {
        queryRecord(store);     
       }

     
    
          var panel = new Ext.Panel({
          applyTo: 'search-panel',                         
          autoScroll:false,
          tbar:tb, 
          items: [queryForm,grid]
      });

 
    });

  //公用删除方法
    deleteRecord = function(store, items)
    {     
            Ext.MessageBox.confirm('提示框', '您确定要进行该操作?', function(btn) {
                if (btn == 'yes')
                {
                    var idArray = new Array();
                    for(var i=0;i<items.length;i++)
                    {
                     idArray.push(items[i].data[pk]);
                    }
                    eval(listOperater["deleteRecord"])(idArray, function(msg) //delete data
                    {
                        Ext.MessageBox.alert("信息:", msg);                 //display the back infomation
                        this.disabled = false;
                        store.reload();
                    });
                }
            });
    }

    /**
     * query Box
     * @param store
     */
 
     queryRecord = function(store)
    {
       conditions=[];
       queryflag=1;//是否查询 避免进入页面就查询
    orderby = params["orderby"]=(params["orderby"]==undefined?pk:params["orderby"]);//排序字段
    orderdirection = params["orderdirection"]=(params["orderdirection"]==undefined?"desc":params["orderdirection"]);//排序方向
             var queryConfig=new QueryConfig(queryCondition);
                         var querygrid=queryConfig.getQueryGrid();
                        var dataLength=querygrid.store.data.length;
                        var queryGridRds=querygrid.getStore().getRange(0,dataLength-1);
                        for(var i=0;i<queryGridRds.length;i++)
                        {                         
                            if(queryGridRds[i].get("operator"))
                            {
                                conditions.push(queryGridRds[i].data);                             
                            }
                        }
                        fitFormValue(conditions);
                        store.load({params:{start:0,limit:pagesize,conditions:conditions,queryflag:queryflag,orderby:params["orderby"],orderdirection:params["orderdirection"]}});
 
    }
     //导出Excel
 exportRecord = function(store)
     {
        conditions=[];
        queryflag=1;//是否查询 避免进入页面就查询
     orderby = params["orderby"]=(params["orderby"]==undefined?pk:params["orderby"]);//排序字段
     orderdirection = params["orderdirection"]=(params["orderdirection"]==undefined?"desc":params["orderdirection"]);//排序方向
              var queryConfig=new QueryConfig(queryCondition);
                          var querygrid=queryConfig.getQueryGrid();
                         var dataLength=querygrid.store.data.length;
                         var queryGridRds=querygrid.getStore().getRange(0,dataLength-1);
                         for(var i=0;i<queryGridRds.length;i++)
                         {                         
                             if(queryGridRds[i].get("operator"))
                             {
                                 conditions.push(queryGridRds[i].data);                             
                             }
                         }
                         fitFormValue(conditions);
                         exportExcel(conditions); 
     }
     //导出Excel
 exportRecordDay = function(store)
     {
        conditions=[];
        queryflag=1;//是否查询 避免进入页面就查询
     orderby = params["orderby"]=(params["orderby"]==undefined?pk:params["orderby"]);//排序字段
     orderdirection = params["orderdirection"]=(params["orderdirection"]==undefined?"desc":params["orderdirection"]);//排序方向
              var queryConfig=new QueryConfig(queryCondition);
                          var querygrid=queryConfig.getQueryGrid();
                         var dataLength=querygrid.store.data.length;
                         var queryGridRds=querygrid.getStore().getRange(0,dataLength-1);
                         for(var i=0;i<queryGridRds.length;i++)
                         {                         
                             if(queryGridRds[i].get("operator"))
                             {
                                 conditions.push(queryGridRds[i].data);                             
                             }
                         }
                         fitFormValue(conditions);
                         exportExcelDay(conditions); 
     }
}
 
/**
 * 填充回传给DWR的字段值默认为Condition.firstvalue
 * @param {} conditionList
 */
function fitFormValue(conditionList)
 {
  for(var i=0;i<conditionList.length;i++)
  {
   if(conditionList[i].name=="hidden")
   {
    continue;
   }
   for(var j=0;j<queryForm.getForm().items.length;j++)
   { 
    
    if(conditionList[i].columnName == queryForm.getForm().items.item(j).getName())
    {  
     var value =queryForm.getForm().items.item(j).getValue();
     if(conditionList[i].type=="Datetime")
     {
      conditionList[i].firstValue = Ext.util.Format.date(queryForm.getForm().items.item(j).getValue(), 'Y-m-d'); 
     }
     else if(conditionList[i].name=="radio")
     {
       conditionList[i].firstValue =queryForm.getForm().findField(conditionList[i].columnName).getGroupValue();      
     }
     else if(conditionList[i].operator=="DateBetween")
     {
      if(queryForm.getForm().items.item(j).getId().indexOf('from')!=-1)
       {       
       conditionList[i].firstValue = Ext.util.Format.date(queryForm.getForm().items.item(j).getValue(), 'Y-m-d');
       }
      else
      {
       conditionList[i].secondValue = Ext.util.Format.date(queryForm.getForm().items.item(j).getValue(), 'Y-m-d');
      }
     }
     else if((conditionList[i].operator=="Between"))
     {
      if(queryForm.getForm().items.item(j).getId().indexOf('from')!=-1)
      {
       conditionList[i].firstValue = value==null?value:String(value).Trim();
      }
      else
      {
        conditionList[i].secondValue = value==null?value:String(value).Trim();
      }
     }
     else
     {
      conditionList[i].firstValue = value==null?value:String(value).Trim();
     }
    }
   }
  }
 }
 
/**
 * class gridConfig
 * @param gridParameters
 */
function GridConfig(gridParameters)
{
    this.key=new Array();
    this.type=new Array();
    this.header=new Array;
    this.ishref=new Array();
    this.width=new Array();
    if (typeof gridParameters=="object")
    {
        for(var i=0;i<gridParameters.length;i++)
        {         
            this.key[i]=gridParameters[i].name;
            this.type[i]=gridParameters[i].type;
            this.header[i]=gridParameters[i].header;
            this.ishref[i]=gridParameters[i].ishref;
            this.width[i]=gridParameters[i].width;
        }
        if(this.key.length>0)//获取主键
        {
         pk = this.key[0];
         
        }
    }
    else
    {
        Ext.alert("Error,the parameters is error");
    }
}
/**
 * define the  Record that be used to receive the data for the grid
 * @param Key
 */
GridConfig.prototype.getRecord=function() {
    var key=this.key;
    var record = new Array();
    for (var i = 0; i <key.length; i++)
    {
        record[i] = {name:key[i]};
    }
   
    return record;
}
function showUrl(value, p, record)
{  

  var id = (record.data[pk]);
  id = "'" + id + "'";
     //var returnv = '<a href='+viewUrl+'!view?id='+ id + ')">' + value + '</a>';
  var returnv = '<a href="#" οnclick="view(' + id + ')">' + value + '</a>';
   return returnv;
}

/**
 * define the column of the grid
 * @param Key
 */
GridConfig.prototype.getColumn=function(){
    var key=this.key;
    var type=this.type;
    var header=this.header;
    var ishref = this.ishref;
    var width = this.width;
    var iscontent =this.iscontent;
    var j=2;
    var column = new Array();
    column[0] = new Ext.grid.RowNumberer();
    column[1] = sm;
    for (var i = 0; i < key.length; i++)
    {
        if(header[i]=="")
        {
        }
        else
        {
         if(width[i]==undefined)
         {
          width[i] =80;
         }
            if(type[i] == "String")
            {
             if(ishref[i]=="true")
             {
              column[j] = {header:header[i],dataIndex:key[i],rsortable:true,width:width[i],editor:new Ext.form.TextField({}),renderer:showUrl};
             }
             else
             {
                 column[j] = {header:header[i],dataIndex:key[i],sortable:true,width:width[i],editor:new Ext.form.TextField({})};
             }
          
            }
            if(type[i] == "renderer")//列表字段需要特殊处理的,例如,根据标志(0,1)加图片显示的
            {
 
              column[j] = {header:header[i],dataIndex:key[i],rsortable:true,width:width[i],renderer:renderer};
           
            }
            if(type[i] == "renderer1")//列表字段需要特殊处理的,例如,根据标志(0,1)加图片显示的--扩展1
            {
 
              column[j] = {header:header[i],dataIndex:key[i],rsortable:true,width:width[i],renderer:renderer1};
           
            }
            if(type[i] == "renderer2")//列表字段需要特殊处理的,例如,根据标志(0,1)加图片显示的--扩展2
            {
 
              column[j] = {header:header[i],dataIndex:key[i],rsortable:true,width:width[i],renderer:renderer2};
           
            }
            if(type[i] == "renderer3")//列表字段需要特殊处理的,例如,根据标志(0,1)加图片显示的--扩展3
            {
 
              column[j] = {header:header[i],dataIndex:key[i],rsortable:true,width:width[i],renderer:renderer3};
           
            }
            if(type[i] == "Datetime")
            {
             if(ishref[i]=="true")
             {
              column[j] = {header:header[i],dataIndex:key[i],sortable:true,width:width[i],renderer:new Ext.util.Format.dateRenderer('Y年m月d日 h:i:s A'),editor:new Ext.form.DateField({format:'Y-m-d h:i:s A'}),renderer:showUrl};
             }
             else
             {
                 column[j] = {header:header[i],dataIndex:key[i],sortable:true,width:width[i],renderer:new Ext.util.Format.dateRenderer('Y年m月d日  h:i:s A'),editor:new Ext.form.DateField({format:'Y-m-d h:i:s A'})};
             }
               
            }
         if(type[i] == "Date")
            {
             if(ishref[i]=="true")
             {
              column[j] = {header:header[i],dataIndex:key[i],sortable:true,width:width[i],renderer:new Ext.util.Format.dateRenderer('Y年m月d日'),editor:new Ext.form.DateField({format:'Y-m-d'}),renderer:showUrl};
             }
             else
             {
                 column[j] = {header:header[i],dataIndex:key[i],sortable:true,width:width[i],renderer:new Ext.util.Format.dateRenderer('Y年m月d日'),editor:new Ext.form.DateField({format:'Y-m-d'})};
             }
               
            }
            if(type[i] == "Number")
            {
             if(ishref[i]=="true")
             {
              column[j] = {header:header[i],dataIndex:key[i],sortable:true,width:width[i],editor:new Ext.form.NumberField({}),renderer:showUrl};
             }
             else
             {
                 column[j] = {header:header[i],dataIndex:key[i],sortable:true,width:width[i],editor:new Ext.form.NumberField({})};
             }               
            }
            if(type[i] == "LongString")
            {
             if(ishref[i]=="true")
             {
              column[j] = {header:header[i],dataIndex:key[i],sortable:true,width:width[i],editor:new Ext.form.TextArea({}),renderer:showUrl};
             }
             else
             {
                 column[j] = {header:header[i],dataIndex:key[i],sortable:true,width:width[i],editor:new Ext.form.TextArea({})};
             }                     
            }
            j++;
        }
    }
   
    return  new Ext.grid.ColumnModel(column);
}
/**
 * define the items for the form which used to add a new record
 * @param Key
 */
GridConfig.prototype.getFormItems=function ()
{
    var key=this.key;
    var type=this.type;
    var header=this.header;
    var items = new Array();
    var j=0;
    for (var i = 0; i < key.length; i++)
    {
        if(header[i]=="")
        {
        }
        else
        {
            if(type[i] == "String")
            {
                items[j] = {fieldLabel:header[i],name:key[i]};
            }
            if(type[i] == "Datetime")
            {
                items[j] = {fieldLabel:header[i],name:key[i],xtype:'datefield',
                    renderer:Ext.util.Format.dateRenderer('Y/m/d'),
                    format:'Y/m/d'};
            }
            if(type[i] == "Number")
            {
                items[j] = {fieldLabel:header[i],name:key[i],xtype:'numberfield'};
            }
            if(type[i] == "LongString")
            {
                items[j] = {fieldLabel:header[i],name:key[i],xtype:'textarea'};
            }
            j++;
        }
    }
    return items;
}
/**
 * get the data for the form
 * @param Key
 */
GridConfig.prototype.getAddRecord=function()
{
    var key=this.key;
    var type=this.type;
    var header=this.header;
    var addRecord = new Object();
    for (var i = 0; i < key.length; i++)
    {
        if( header[i]!="")
        {
            if(type[i] == "Datetime")
            {
                addRecord[key[i]] =new Date(Ext.get(key[i]).dom.value);
            }
            else
            {
                addRecord[key[i]] = Ext.get(key[i]).dom.value;
            }
        }
    }
    return addRecord;
}


/**
 * class  query
 */
function QueryConfig(data)
{
    this.data=data;
    this.stringOp = new Ext.data.SimpleStore({
        fields: ['value','text'],
        data : [["","选择关系运算符"],['=','='],['<>','<>'],
                ["like '|%'",'以...开头'],["like '%|'",'以...结尾'],["like '%|%'",'包含字符'],["not like '%|%'",'不包含字符'],
                ['is null','空白'],['is not null','非空白']]
    });
    this.datetimeOp = new Ext.data.SimpleStore({
        fields: ['value','text'],
        data : [["","选择关系运算符"],['=','='],['<>','<>'],['<','<'],['<=','<='],['<','>'],['>=','>='],['is null','空白'],['is not null','非空白'],["between","between"]]
    });
    this.numberOp=this.datetimeOp;

}

QueryConfig.prototype.getOpStore=function(type){
    var _store;
    if(type=="String")
    {
        _store=this.stringOp;
    }else if(type=="Number")
    {
        _store=this.numberOp;
    }else if(type="Datetime")
    {
        _store=this.datetimeOp;
    }
    return _store;
}
/**
 * get the Editor for each column
 * @param type
 */
QueryConfig.prototype.getEditor=function(type){
    var editor;
    if(type=="String")
    {
        editor=new Ext.form.TextField({});
    }
    else if(type=="Number")
    {
        editor=new Ext.form.NumberField({});
    }
    else if(type="Datetime")
    {
        editor=new Ext.form.DateField({fomat:"Y-m-d"});
    }
    return editor;
}
/**
 * init the query grid
 */
 
QueryConfig.prototype.getQueryGrid=function(){
    var qeuryConfig=this;
    var stringeditor=new Ext.form.TextField({});
    var store=new Ext.data.SimpleStore({data:qeuryConfig.data,fields:["entity","type","columnName","operator","firstValue","secondValue","andOr","bracket","name"]});
    var colM=new Ext.grid.ColumnModel([
    {header:"字段名称",dataIndex:"name",sortable:true},
    {header:"运算符",dataIndex:"operator",editor:stringeditor},
    {header:"数值1",dataIndex:"firstValue",width:150,editor:stringeditor,renderer:displayValue},
    {header:"数值2",dataIndex:"secondValue",width:150,editor:stringeditor,renderer:displayValue},
    {header:"关系",dataIndex:"andOr",editor: new Ext.form.ComboBox({
        store: [["","请选择括号.."],["and","and"],["or","or"]],
        mode: 'local',
        triggerAction: 'all',
        valueField: 'value',
        displayField: 'text',
        editable: false
    })},
    {header:"括号",dataIndex:"bracket", hidden:true,editor: new Ext.form.ComboBox({
        store:[["","请选择括号.."],["(","("],[")",")"]],
        mode: 'local',
        triggerAction: 'all',
        valueField: 'value',
        displayField: 'text',
        editable: false
    })}
            ]);

    var grid = new Ext.grid.EditorGridPanel({
        id:"querygrid",
        title:"查询",
        autoHeight:true,
        width:700,
        cm:colM,
        clicksToEdit:1,
        store:store,
        selModel: new Ext.grid.RowSelectionModel({singleSelect:false}),
        autoExpandColumn:2
    });
    grid.on("beforeedit",function(e){
        var record=grid.getSelectionModel().getSelected();
        if (e.column==1)
        {
            var _store=qeuryConfig.getOpStore(record.get("type"));
            var Opcombox=new Ext.form.ComboBox({
                store: _store,
                mode: 'local',
                triggerAction: 'all',
                valueField: 'value',
                displayField: 'text',
                editable: false
            });
            grid.colModel.setEditor(e.column,new Ext.grid.GridEditor(Opcombox));
        }
        if (e.column==2)
        {
            var gridEditor2=qeuryConfig.getEditor(record.get("type"));
            if(getParamsNum(record.get("operator"))==0)
            {
                grid.colModel.setEditor(e.column,new Ext.grid.GridEditor(null));
            }
            if(getParamsNum(record.get("operator"))==1||getParamsNum(record.get("operator"))==2)
            {
                grid.colModel.setEditor(e.column,new Ext.grid.GridEditor(gridEditor2));
            }
        }
        if (e.column==3)
        {
            var gridEditor3=qeuryConfig.getEditor(record.get("type"));
            if(getParamsNum(record.get("operator"))==0||getParamsNum(record.get("operator"))==1)
            {
                grid.colModel.setEditor(e.column,new Ext.grid.GridEditor(null));
            }
            if(getParamsNum(record.get("operator"))==2)
            {
                grid.colModel.setEditor(e.column,new Ext.grid.GridEditor(gridEditor3));
            }
        }
    });

    grid.on("afteredit",function(e){
        var record=grid.getSelectionModel().getSelected();
        if (e.column==1)
        {
            if(getParamsNum(record.get("operator"))==0)
            {
                record.set("firstValue","");
                record.set("secondValue","");
            }
            if(getParamsNum(record.get("operator"))==1)
            {
                record.set("secondValue","");
            }
        }
    });
    return grid;
};
/**
 * according the operator's type,we can get the amount of the params that used to query
 * @param operator
 */
function getParamsNum(operator)
{
    var ParamsNum;
    if(operator=="is null"||operator=="is not null"||operator=="")
    {
        ParamsNum = 0;
    }
    else if(operator=="between")
    {
        ParamsNum = 2;
    }
    else
    {
        ParamsNum =1 ;
    }
    return ParamsNum;
}
/**
 * format the date.
 * @param value
 */
function displayValue(value)
{
    var formatValue=value;
    if(formatValue.toString().indexOf("UTC")>=0)
    {
        var dt = new Date(formatValue);
        formatValue=dt.format('Y-m-d');
    }
    return formatValue;
}

 

 

 

 

 

 


/**
 * **************************************以下为自定义工具条,带每页显示的记录数下拉框******************************************************
 */

 

Ext.namespace('Ext.ux.Andrie');  
 
 
 
/** 
 
 * @class Ext.ux.Andrie.pPageSize 
 
 * @extends Ext.PagingToolbar 
 
 * A combobox control that glues itself to a PagingToolbar's pageSize configuration property. 
 
 * @constructor 
 
 * Create a new PageSize plugin. 
 
 * @param {Object} config Configuration options 
 
 * @author andy
 
 * @version 0.6 
 
 */ 
 
Ext.ux.Andrie.pPageSize = function(config){  
 
    Ext.apply(this, config);  
 
};  
 
 
 
Ext.extend(Ext.ux.Andrie.pPageSize, Ext.util.Observable, {  
 
    /** 
 
     * @cfg {String} beforeText 
 
     * Text to display before the comboBox 
 
     */ 
 
    beforeText: '每页',  
 
      
 
    /** 
 
     * @cfg {String} afterText 
 
     * Text to display after the comboBox 
 
     */ 
 
    afterText: '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;记录',  
 
      
 
    /** 
 
     * @cfg {Mixed} addBefore 
 
     * Toolbar item(s) to add before the PageSizer 
 
     */ 
 
    addBefore: '-',  
 
      
 
    /** 
 
     * @cfg {Mixed} addAfter 
 
     * Toolbar item(s) to be added after the PageSizer 
 
     */ 
 
    addAfter: null,  
 
      
 
    /** 
 
     * @cfg {Bool} dynamic 
 
     * True for dynamic variations, false for static ones 
 
     */ 
 
    dynamic: false,  
 
      
 
    /** 
 
     * @cfg {Array} variations 
 
     * Variations used for determining pageSize options 
 
     */ 
 
    variations: [5, 10, 20, 50],  
 
      
 
    /** 
 
     * @cfg {Object} comboCfg 
 
     * Combo config object that overrides the defaults 
 
     */ 
 
    comboCfg: undefined,  
 
      
 
    init: function(pagingToolbar){  
 
        this.pagingToolbar = pagingToolbar;  
 
        this.pagingToolbar.pageSizeCombo = this;  
 
        this.pagingToolbar.setPageSize = this.setPageSize.createDelegate(this);  
 
        this.pagingToolbar.getPageSize = function(){  
 
            return this.pageSize;  
 
        }  
 
        this.pagingToolbar.on('render', this.onRender, this);  
 
    },  
 
      
 
    //private  
 
    addSize:function(value){  
 
        if (value>0){  
 
            this.sizes.push([value]);  
 
        }  
 
    },  
 
      
 
    //private  
 
    updateStore: function(){  
 
        if (this.dynamic) {  
 
            var middleValue = this.pagingToolbar.pageSize, start;  
 
            middleValue = (middleValue > 0) ? middleValue : 1;  
 
            this.sizes = [];  
 
            var v = this.variations;  
 
            for (var i = 0, len = v.length; i < len; i++) {  
 
                this.addSize(middleValue - v[v.length - 1 - i]);  
 
            }  
            this.addToStore(middleValue);  
 
            for (var i = 0, len = v.length; i < len; i++) {  
 
                this.addSize(middleValue + v[i]);  
 
            }  
 
        }else{  
 
            if (!this.staticSizes){  
 
                this.sizes = [];  
 
                var v = this.variations;  
 
                var middleValue = 0;  
 
                for (var i = 0, len = v.length; i < len; i++) {  
 
                    this.addSize(middleValue + v[i]);  
 
                }  
 
                this.staticSizes = this.sizes.slice(0);  
 
            }else{  
 
                this.sizes = this.staticSizes.slice(0);  
 
            }  
 
        }  
 
        this.combo.store.loadData(this.sizes);  
 
        this.combo.collapse();  
 
        this.combo.setValue(this.pagingToolbar.pageSize);  
 
    },  
 
 
 
    setPageSize:function(value, forced){  
 
        var pt = this.pagingToolbar;  
 
        this.combo.collapse();  
 
        value = parseInt(value) || parseInt(this.combo.getValue());  
 
        value = (value>0)?value:1;  
 
        if (value == pt.pageSize){  
 
            return;  
 
        }/*else if (value < pt.pageSize){  
 
            pt.pageSize = value;  
 
            var ap = Math.round(pt.cursor/value)+1;  
 
            var cursor = (ap-1)*value;  
 
            var store = pt.store;  
 
            if (cursor > store.getTotalCount()) {  
 
                this.pagingToolbar.pageSize = value;  
 
                this.pagingToolbar.doLoad(cursor-value);  
 
            }else{  
 
                store.suspendEvents();  
 
                for (var i = 0, len = cursor - pt.cursor; i < len; i++) {  
 
                    store.remove(store.getAt(0));  
 
                }  
 
                while (store.getCount() > value) {  
 
                    store.remove(store.getAt(store.getCount() - 1));  
 
                }  
 
                store.resumeEvents();  
 
                store.fireEvent('datachanged', store);  
 
                pt.cursor = cursor;  
 
                var d = pt.getPageData();  
 
               // pt.afterTextEl.el.innerHTML = String.format(pt.afterPageText, d.pages);  
 
                //pt.field.dom.value = ap;  
 
                pt.first.setDisabled(ap == 1);  
 
                pt.prev.setDisabled(ap == 1);  
 
                pt.next.setDisabled(ap == d.pages);  
 
                pt.last.setDisabled(ap == d.pages);  
 
                pt.updateInfo();  
 
            }  
 
        }*/else{  
 
            this.pagingToolbar.pageSize = value;  
 
            this.pagingToolbar.doLoad(Math.floor(this.pagingToolbar.cursor/this.pagingToolbar.pageSize) * this.pagingToolbar.pageSize);  
 
        }  
 
        this.updateStore();  
 
    },  
 
      
 
    //private  
 
    onRender: function(){  
 
        this.combo = Ext.ComponentMgr.create(Ext.applyIf(this.comboCfg||{}, {  
 
            store:new Ext.data.SimpleStore({  
 
                fields:['pageSize'],  
 
                data:[]  
 
            }),  
 
            displayField:'pageSize',  
 
            valueField:'pageSize',  
 
            mode:'local',  
 
            triggerAction:'all',  
 
            width:50,  
 
            xtype:'combo' 
 
        }));  
 
        this.combo.on('select', this.setPageSize, this);  
 
        this.updateStore();  
 
          
 
        if (this.addBefore){  
 
            this.pagingToolbar.add(this.addBefore);  
 
        }  
 
        if (this.beforeText){  
 
            this.pagingToolbar.add(this.beforeText);  
 
        }  
 
        this.pagingToolbar.add(this.combo);  
 
        if (this.afterText){  
 
            this.pagingToolbar.add(this.afterText);  
 
        }  
 
        if (this.addAfter){  
 
            this.pagingToolbar.add(this.addAfter);  
 
        }  
 
    }  
 
})

---------------

jsp

<%@ include file="/common/taglibs.jsp"%>
<%@ page language="java" contentType="text/html; charset=utf-8"%>
<title></title>
<html>
 <script type="text/javascript">
 function user()
 {
  var paraArray=new Array(window,"hidden1","hidden2");
  window.showModalDialog("${ctx}/hr/users!codehelp",paraArray,"dialogWidth:650px;dialogHeight:500px;scroll:no;help:no;status:no;");
 }
 function sendpubnote(da)
 {
  window.showModalDialog("${ctx}/sms/message-reissue?sj="+da,"","dialogWidth:"+wMaster+50+"px;dialogHeight:300px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=no;status:no;help=0");   
 }

</script>
 <script type="text/javascript" src="${ctx}/js/ext/DwrProxyCombobox.js"></script>
 <script type="text/javascript"
  src="${ctx}/dwr/interface/MemberInfosManager.js"></script>
 <script type="text/javascript"
  src="${ctx}/dwr/interface/MemberSourceManager.js"></script>
 <script type="text/javascript"
  src="${ctx}/dwr/interface/MemberLevelManager.js"></script>
 <script type="text/javascript"
  src="${ctx}/dwr/interface/InsureManager.js"></script>
 <script type="text/javascript"
  src="${ctx}/js/usercenter/member/member.js"></script>
 <script type="text/javascript">
    var wMaster = screen.width;
 var hMaster = screen.height;
    var wSlave_modal = screen.width/1.2;
 var hSlave_modal = screen.height/1.2;
 var left=(window.screen.width-wSlave_modal)/2;
 var top=(window.screen.height-hSlave_modal)/2;
       function addRecord(store)
         {
    window.showModalDialog("${ctx}/member/memberinfos!input?rnd="+Math.round(Math.random()*10000),window,"dialogWidth:"+wSlave_modal+"px;dialogHeight:"+hSlave_modal+"px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=yes;status:no;help=0;");   
       }
       function updateRecord(stroe,id,record)
       {
         
      var state = record.get('zt');  
      if(state==3){
       Ext.Msg.alert('系统提示','您选择的记录是已删除状态,不能修改');
                    return;
      }     
         window.showModalDialog("${ctx}/member/memberinfos!input?hyid="+id+"&rnd="+Math.round(Math.random()*10000),window,"dialogWidth:"+wSlave_modal+"px;dialogHeight:"+hSlave_modal+"px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=yes;status:no;help=0");
         //window.open("${ctx}/member/memberinfos!input?hyid="+id+"&rnd="+Math.round(Math.random()*10000));
       }
    function view(id)
    {
         //window.showModalDialog("${ctx}/member/memberinfos!view?hyid="+id+"&rnd="+Math.round(Math.random()*10000),window,"dialogWidth:"+wSlave_modal+"px;dialogHeight:"+hSlave_modal+"px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=yes;status:no;help=0");
      //window.open("${ctx}/member/memberinfos!view?hyid="+id+"&rnd="+Math.round(Math.random()*10000));
        parent.funtab.add({  
                  title:'查看会员资料详情&nbsp;&nbsp;&nbsp;&nbsp;' ,                       
                  iconCls: 'tabs',                    
                  margins:'0 4 4 0',  
                  autoHeight:true,  
                  autoScroll:true,  
                  autoWidth:true,  
                  closable:true,  
                  frame:true,  
                  html:'<iframe id="iframe_memberInfos" src="'+"${ctx}/member/memberinfos!view?hyid="+id+'" width="'+wSlave_modal+'" height="'+hSlave_modal+'" frameborder="0" scrolling="auto"></iframe>'
            }).show();
      
    } 
    function guestFunction (stroe,id)
    {      
      //var win=window.open("${ctx}/member/memberguestinfos?hyid="+id+"&functionLevel=130312&modelName=%E5%B8%B8%E6%97%85%E5%AE%A2%E7%AE%A1%E7%90%86&rnd="+Math.round(Math.random()*10000),"","fullscreen=1")
        parent.funtab.add({  
                  title:'常旅客维护&nbsp;&nbsp;&nbsp;&nbsp;',                       
                  iconCls : 'tabs',
      margins : '0 4 4 0',
      autoScroll : true,
         autoWidth : true,
      closable : true,
      frame : true,
                  html:'<iframe src="'+"${ctx}/member/memberguestinfos?hyid="+id+"&functionLevel=130312"+'" width="100%" height="100%" frameborder="0" scrolling="auto"></iframe>'
            }).show();
    }
    function historyCentFunction(stroe,id)
    {
      //window.showModalDialog("${ctx}/memberhistorycent/memberhistorycent?hyid="+id+"&orderType=1&functionLevel=130401&rnd="+Math.round(Math.random()*10000),"","dialogWidth:"+wMaster+"px;dialogHeight:"+hMaster+"px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=yes;status:no;help=0");
      //document.location="${ctx}/memberhistorycent/memberhistorycent?hyid=" + id + "&orderType=1&functionLevel=130401&modelName=%E6%9C%BA%E7%A5%A8%E6%98%8E%E7%BB%86%E7%AE%A1%E7%90%86";
      parent.funtab.add({  
                  title:'机票消费明细&nbsp;&nbsp;&nbsp;&nbsp;' ,                       
                  iconCls: 'tabs',                    
                  margins:'0 4 4 0',  
                  autoScroll:true,  
                  autoWidth:true,  
                  closable:true,  
                  frame:true,  
                  html:'<iframe src="'+"${ctx}/memberhistorycent/memberhistorycent?keyValue=" + id + "&memberKey=" + id + "&orderType=1&functionLevel=130401"+'" width="100%" height="100%" frameborder="0" scrolling="auto"></iframe>'
            }).show();
    }
    function integralManage(stroe,id)
    {
      window.showModalDialog("${ctx}/member/memberinfos!marketinput?hyid="+id+"&rnd="+Math.round(Math.random()*10000),"","dialogWidth:"+950+"px;dialogHeight:"+435+"px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=yes;status:no;help=0");
    }
   
     //导出到Excel   
     function exportExcel(conditions)
     {  
    MemberInfosManager.getHql(conditions,"from MemberInfos ",function(msg)
    {
       var headerStr = "hyid,会员ID,String;hyzcm,注册名,String;xm,会员姓名,String;dept.deptname,部门,String;"+
           "sj,手机,String;sj1,手机,String;hykhm,会员卡号,String;jtdh,联系电话,String;"+
           "kyjf,可用积分,String;ljjf,累计积分,String;zjhm,证件号码,String;zjhmPassport,护照,String;"+
           "zjhmHk,港澳通行证,String;zjhmOther,其它证件,String;"+
           "cjry,创建人,String;cjryName,创建人姓名,String;cjrq,注册时间,Date;"+
           "lxdz,联系地址,String;sfgm,是否购买保险,String;buyinsureName,购买保险类型,String;"+
           "sfzs,是否赠送保险,String;sendinsureName,赠送保险类型,String;post,岗位,String;bz,备注,String;";
       //Escape.unescape("utf-8");        
        window.open(encodeURI("${ctx}/member/memberinfos!exportExcel?hql="+msg+"&headerStr="+headerStr));   
       //  window.open("${ctx}/member/memberinfos!exportExcel?hql="+msg+"&headerStr="+headerStr);   
               });
    }
           //导入
           function importRecord(store)
           {
               window.showModalDialog("${ctx}/member/memberinfos!importExcel"+"?rnd="+Math.round(Math.random()*10000),"","dialogWidth:"+650+"px;dialogHeight:"+600+"px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=yes;status:no;help=0");
           }
             function importUpdate(store)
           {
               window.showModalDialog("${ctx}/member/memberinfos!updateExcel"+"?rnd="+Math.round(Math.random()*10000),"","dialogWidth:"+750+"px;dialogHeight:"+600+"px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=yes;status:no;help=0");
           }
          
           function changeRecord(store,id)
           {              
             window.showModalDialog("${ctx}/system/log/syslog?sids="+id+"&tablename=member_infos&functionLevel=900115&modelName=%E8%A1%A8%E5%BC%82%E5%8A%A8%E7%9B%91%E6%8E%A7"+"&rnd="+Math.round(Math.random()*10000),"","dialogWidth:"+800+"px;dialogHeight:"+800+"px;dialogLeft:"+left+"px; dialogTop:"+top+"px;scrollbars=yes;status:no;help=0");
           }
          
function newWindowsView(hyid)
{
 window.open("${ctx}/member/memberinfos!view?hyid="+hyid+"&rnd="+Math.round(Math.random()*10000));
}
    </script>


</html>

 


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值