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图标是字体图片,通过字体样式的控制的,平台提供的有菜单的鼠标操作相关的样式控制了字体样式,所以默认的图标是可以