Bex5常用方法总结

Data常用api

1.data数据过滤

orgTreeData.getTreeOption().rootFilter = "SA_OPOrg.sCode='"+ognCode+"'";
orgTreeData.refreshData();	
dialogData.setFilter("dialogDataFL","ORG_ID = '"+ognCode+"'");
dialogData.refreshData();

2.获取treeData的rootFilter

treeData.getTreeOption().rootFilter

3.x5获取request的方法

RequestContext localRequestContext = ActionUtils.getRequestContext();
localRequestContext.getRequest();

4.如何判断树形数据下是否子级数据(树形不展开的时候使用不对)

var treeData = this.comp("treeData");
	var row = treeData.getCurrentRow();
	var i = treeData.getCount(row);
	注意:不展开树形的时候使用(在grid中,通过数据库查询)
		var treeData = this.comp("treeData");	
		var bizData1 = this.comp("bizData1");	
		var rowID = treeData.getCurrentRowID();
		bizData1.setFilter("FL1", "PARENTID = '"+rowID+"'");
		bizData1.refreshData();
		var i = bizData1 .getCount();
		if(i>0 ){
			var md = this.comp("messageDialog");
			userUnit.confirm(md,"必须先删除子级项目,才可以删除父级项目");
		}else{
			treeData.deleteData();
		}

5.关于data的删除

deleteData() 
	public boolean deleteData (List rows, Object options)  


	Parameters
	List	rows
	行数组,缺省当前行
	
	deleteAllData () 删除data中的所有数据(不是数据库中的) 
	要批量删除数据可以先过滤数据,然后再调用这个方法
	删除data后记得要保存到数据库才能生效

	定向删除数据什么意思?
	deleteAllData删除的是data上所有的数据,不是删除数据库所有的数据,没有加载到data上的是不会删除的

常用方法

1.双击列表进入详细页面

this.comp("tabs").setActiveTab("li2");

2.递归函数----找到父节点下面所有的子节点信息

Model.prototype.getChildren = function (data,id){
		var temp = [];
		var level = 0;
		var forFn = function(data, id, level) {
			data.each(function(params) {
				var PARENTID = params.row.val("PARENTID");
				var guid = params.row.val("TSP_KB_FOLDERS");
				if (PARENTID == id ) {
					temp.push(guid);
					forFn(data, guid, level + 1);
				}
			});
		};
		forFn(data, id, level);
		return temp;	
	};
	必须要用延迟加载,不用延迟加载的话数据会加载不完整

3.获得当前组织的Code

var ognCode = this.getContext().getCurrentOgnCode();	

4.按钮的禁用

this.comp("button3").set({"disabled":false});

5.怎么在index.w中放置link标签

window组件上右键引用css创建节点,然后设置地址
<link href="//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">

6.自定义复杂sql(重写sql java代码中实现)

public static Table selectYearPlan(String concept,String select,String from,String aggregate,String dataModel,String fnModel,String condition,List range,Boolean distinct,String idColumn,String filter,Integer limit,Integer offset,String columns,String orderBy,String aggregateColumns,Map variables,String year){
			String sql = ""'
			 if (filter != null) {
				  sql += " where 1=1 and " + filter;
			 }
			 System.out.println("sql:"+sql);
			String offSql = "select * from (select rownum rn,A.* from (" + sql+ ") A where rownum <= " + (offset + limit) + ") where rn >="+ (offset + 1) + "";
			System.out.println("offsql:"+offSql);
			Map<String, String> map = new HashMap<String, String>();			    
			map.put("ORACLE", offSql);
			Table t = SQL.select(map, null, "/TSP/PlanManage/data");
			// 设置table的rowid属性
			t.getProperties().put(Table.PROP_NAME_ROWID, "FID");
		    // 设置table的count属性,总记录数,用于分页
		    String countNum = "select count(*) as FNUM from  ( " + sql + " )";
		    Map<String, String> map1 = new HashMap<String, String>();
		    map1.put("ORACLE", countNum);
		    Table countTable = SQL.select(map1, null, "/TSP/PlanManage/data");
		    BigDecimal num = countTable.iterator().next().getDecimal("FNUM");
		    t.getProperties().put(Table.PROP_DB_COUNT, num);
		    return t;
		    
			
		}

7.设置参数

Model.prototype.dialogDataRefreshCreateParam = function(event){
		var date = new Date();
		var year = date.getFullYear();
		event.param.setString("year", year);
	};

8.新增前赋值

Model.prototype.bizData1DataChange = function(event){
		var data1=this.comp("data1");
		var planGuid = data1.getValue("planGuid");
		var type = data1.getValue("type");
		var bizData1 = this.comp("bizData1");
		bizData1.setValue("PLAN_MAIN_ID",planGuid);
		bizData1.setValue("MODIFY_TYPE",type);
	};

9.x5如何写接口给外部引用调用然后返回这种值

在UI中的J文件夹下写了个java类,需要调用BIZ当中一个包下的java类,我应该怎么做
biz层定义action,.j中去调用action

10.自己写的sql中的自定义字段怎么放到页面中来

data中定义同名的计算关系

Ksql

1.ksql中如何实现not in

KSQL中的语法跟SQL是不一样的,KSQL中不能把not in连着写,正确的格式应该是:not 概念别名.关系别名 in (XXXX)

注意

引用别的模块的表进行关联查询需要先include其他模块的data  	方法: 打开本模块data目录中的model.config.xml文件,include其它模块的data目录
复选框的是否条件判断:用了deleteFilter这个方法
如果有过滤数据不对,可能别的地方也用到了这个data,然后加了过滤
version必须是小写
复制的时候不要直接复制源码,在设计页选择要复制的元素,到目标页面粘贴就不会有这样的问题
源码编译  class文件的位置在dsrc对应的 dclasses文件夹下
延迟加载:  默认只加载父节点,点击父节点展开才会加载下一级子节点
上传附件的存储地址  默认在model同级的data\doc\blobstore下直接存储的文件
平台默认显示的图标基本上都是iconclass     定位到样式就能看出是哪个css文件平台默认的icon图标是字体图片,通过字体样式的控制的,平台提供的有菜单的鼠标操作相关的样式控制了字体样式,所以默认的图标是可以
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值