{dorado.getDataProvider("sysLookupTypeAction#getValueByCode").getResult('CARD_TYPE')}
认识本店途径 $${dorado.getDataProvider("sysLookupTypeAction#getValueByCode").getResult('KNOW_APPROACH')}
1、弹出页面的嵌入路径
${web.contextPath}/avicit/platform6/modules/train/examshopmember/view/ExamShopMemberAdd.d7
${web.contextPath}/avicit/platform6/modules/train/examshopmemberexercise/view/ExamShopMemberExerciseEdit.d7
memberDataUpdateAction memberDataDeleteAction dialogAddOrEdit
2、添加页插入空数据:self.get("#dataSetExamShopMemberExercise").insert();
3、添加页保存方法:view.get("#memberDataUpdateAction").execute();
执行成功后关闭弹出页,刷新父页面数据:
var ds =view.get("dataSetExamShopMember");
ds.clear();
ds.insert();
parent.refreshAdd();
4、添加页取消方法:
var ds =view.id("dataSetExamShopMember");
ds.clear();
ds.insert();
parent.refreshAdd();
5、编辑按钮的方法:
var dataGrid = view.get("#MainData");
var selections = dataGrid.get("selection");
if (selections.length == 0) {
dorado.MessageBox.alert("请选择记录");
return "false";
}
if (selections.length > 1) {
dorado.MessageBox.alert("只允许选择一条数据记录!");
return "false";
}
var id =selections[0].get("ID");
view.get("#editIframe").set("path","${web.contextPath}/avicit/platform6/modules/train/examshopmember/view/ExamShopMemberEdit.d7?id="+id);
view.get("#dialogEdit").show();
6、编辑页保存的方法:view.get("#memberDataUpdateAction").execute();
执行成功后关闭弹出页,刷新父页面数据:
parent.refreshEdit();
7、编辑页的取消方法:parent.refreshEdit();
8、隐藏显示某个字段
var value = view.get("#CONSUME_CARD_FLAG.value");
dorado.MessageBox.alert(value);
if(value == '1'){
view.get("#CONSUME_CARD_TYPE").set("visible",true);
view.get("#CONSUME_CARD_MONEY").set("visible",true);
} else {
view.get("#CONSUME_CARD_TYPE").set("visible",true);
view.get("#CONSUME_CARD_MONEY").set("visible",true);
var panelCompany = this.id("PanelMain");
panelCompany.set("visible",true);
//隐藏表格 列
view.id("MainData").getColumn("SearchActionSubject").set("visible",false);
//显示按钮
var kpi = this.id("editActionChangeButton");//变更行动方案
kpi.set("visible",true);//显示编制积分卡按钮
9、获取树的当前节点数据
var currentEitity = view.get("#classDataTree").get("currentEntity");
currentEitity.get("id");
10、刷新数据
buyRecordDataSet.flushAsync();
11、调用ajaxAction,动态传参数
var dataSetSql = view.get("#dataSetSql");
var code = view.get("#sqlQueryCondition.entity.code");
var name = view.get("#sqlQueryCondition.entity.name");
var parentId = view.get("#dataSetTypeSysProfile").getData("#").get("id");
var judgeSqlValueAction = view.get("#judgeSqlValueAction");
judgeSqlValueAction.set("parameter",{parentId:parentId});
judgeSqlValueAction.execute(function(sqlValue){
if(sqlValue==""){
}else{
dataSetSql.set("parameter",{sqlValue:sqlValue,code:code,name:name});
dataSetSql.flushAsync();
}
});
12、ajax校验的动态传参数,beforeExecute方法,例子参考sysLookupType.view.xml中的dataSysLookupTlLanguage的sysLanguageCode
var ds = view.get("#dataSetSysLookupTl");
var dsParent = view.get("#dataSetSysLookupType");
var id = view.get("#dataSetSysLookupType").getData("#.#sysLookup.id");
var sysLanguageCode = ds.getData("#.sysLanguageCode");
arg.parameter = {sysLanguageCode:sysLanguageCode,pId:id};
后台action获取的方法的参数为(Map
if (null != params) {
sysLanguageCode = (String)params.get("sysLanguageCode");
pId = (String)params.get("pId");
}
13、主页面的方法
refreshAdd = function(){
if (view.get("#dialogAdd")) {
view.get("#dialogAdd").hide();
refresh();
}
}
refreshEdit = function(){
if (view.get("#dialogEdit")) {
view.get("#dialogEdit").hide();
refresh();
}
}
refresh = function(){
var ds = view.id("dataSetExamShopMember");
var entityList =ds.getData();
entityList.clear();
entityList.gotoPage(entityList.pageNo);
var grid =view.id("MainData");
grid.set("selection", null);
}
---------------
读取properties文件的值
按钮名称:
\#buttonAddRow.caption=添加
caption属性:
dataTypeSysWordTemplet.readTemplet=查看模板
取值:${res['dataTypeSysWordTemplet.readTemplet']}
值:查看模板
-------------------------
树datatree
取值
view.get("datatree").get('data').get("ID");
--------------------
--重置form
var ds=this.id('dataSetQuery');
var cur=ds.getData('#');
cur.clearData();
var form=this.id('queryForm');
form.set('entity',{});
---------------
/////校验 begin DingRui 2013-06-14///
var data = view.get("#dataSetOcmActPlan.data:#");
var actCode = data.get("ACT_CODE");
var actName = data.get("ACT_NAME");
var hrDeptId = data.get("HR_DEPT_ID");
var startDate = data.get("ACT_START_DATE");
var endDate = data.get("ACT_END_DATE");
log4j.logger.com.bstek.dorado.jdbc=DEBUG
Inltex easy meeting classic 会议软件风也轻狂,梦也嚣张,看夜雨潇潇洒洒.;
缓存
-Xmx512m -XX:MaxPermSize=512m
-Xmx256m -XX:MaxPermSize=256m
以前项目的D:\Program Files\apache-tomcat-6.0.20
代码我已配置好,你们只需改一下cinfigure-debug文件里的view.root=file:F:\\workSpace v6\\182OCm\\src\;
Dorado7 Tomcat路径:D:\Dorado7\ProgramProject\apache-tomcat-6.0.35
E:\Workspaces\Workspace_Platform_V6\182OCM\webapp\WEB-INF\dorado-home
RD
import avicit.platform6.core.api.system.syslog.service.SysLogUtil;d
系统部门
create table sys_dept_mac as (select * from sys_dept)
${res['process.Catalog.Change']}
改数据源登陆用户的话得改两个地方:configure*.properties; jdbc.properties
----接收参数
var flag="${param.flag}";//1公司级;2专业级
var proid = top.$.cookie('proid');
蓝色圆点图片
>images/tblue.gif
绿色圆点
>images/tgreen.gif
红色圆点
>images/tred.gif
黄色圆点
>images/tyellow.gif
查询图片
url(>skin>common/icons.gif) -40px -100px
添加图片
url(>skin>common/icons.gif) -120px -0px
删除图片
url(>skin>common/icons.gif) -140px -0px
取消图片
url(>skin>common/icons.gif) -140px -0px
保存图片
url(>skin>common/icons.gif) -140px -20px
-----返回上一步
window.history.back();
var id="${request.getParameter('id')}";
------通过重定向返回某个页面
parent.window.location="${web.contextPath}/avicit/platform6/modules/system/sysdashboard/index.jsp";
另存为[方形框框]
url(>skin>common/icons.gif) -140px -20px
---发布按钮
url(>skin>common/icons.gif) -20px 0px
---
编辑按钮
url(>skin>common/icons.gif) -200px -0px
var dataset = view.id("dataSetSingleChensAgain");
dataset.getData("#").cancel();
重置按钮
url(>skin>common/icons.gif) -100px -20px
var ds=this.id('dataSetQuery');
var cur=ds.getData('#');
cur.clearData();
var form=this.id('queryForm');
form.set('entity',{});
SYS_APPLICATION_ID
---------
var parameter = view.get("#queryForm.entity");
view.get("#dataSetIbscSummarizeV").set("parameter",parameter).flushAsync();
---------
var flag="${param.flag}";
--------
--
-----遇到编辑,详细页面加载数据不正确
需要手动加载
var id="${param.id}";
view.get("#dataSetOcmGraphCard").set("parameter",{ID:id}).flushAsync();
return true;
------------------
---
点击查询弹出页面
this.get("#dialogQuery").show();
能够获取到数据
singleChensAgainAction#saveSingleChensAgain
singleChensAgainAction#saveTAddSingleChensAgain
var view = this;
var dataGrid = view.get("#MainData");
var selections = dataGrid.get("selection"); //获得当前选中的项
if (selections.length == 0) {
dorado.MessageBox.alert("请选择记录");
return;
}else {
dorado.MessageBox.confirm('您真的要删除吗?',function(){
var dataArray = new Array();
var i = 0;
selections.each(function(selection){
dataArray[i] = {id:selection.get('ID')};
i++;
});
view.get("#deleteAction").set("parameter",eval(dataArray));
view.get("#deleteAction").execute(function(){
// 刷新不回首页,只在当前页的方法。
var ds = view.id("dataSetSingleChensAgain");
var entityList =ds.getData();
entityList.clear();
entityList.gotoPage(entityList.pageNo);
});
});
}
------弹出添加页面
在view的onReady()事件中
this.createSubMenu = function(){
var dataset = view.id("dataSetTestSingle");
dataset.insert();
var dialog = view.id("dialogAdd");
dialog.set("caption", "添加");
dialog.show();
}
dataSetSingleChensAgain
DialogAddNew
this.get("#DialogAdd").show();
---------------返回DialogAddNew
var dialog = this.id("dialogAdd");
dialog.hide();
//var ds = view.id("CompositeTestSingle");
//var entityList =ds.getData();
//entityList.clear();
//entityList.gotoPage(entityList.pageNo);
//ds.flushAsync();
-------------------
---弹出编辑页面
var dataGrid = view.get("#MainData");
var selection = dataGrid.get("selection"); //获得当前选中的项
if(selection==null){
dorado.MessageBox.alert("请选择一条要编辑的记录!");
}
if (selection.length == 1) {
var currentData = selection[0];
var id =currentData.get("ID");
var ds = view.id("dataSetmac");
ds.set("parameter",{ID:id});
ds.flushAsync();
var dialog = this.id("dialogAdd");
dialog.set("caption", "編輯");
dialog.show();
}else if(selection.length > 1){
dorado.MessageBox.alert("只能选择一条要编辑的记录!");
return;
} else{
dorado.MessageBox.alert("请选择一条要编辑的记录!");
}
---------------设置查询条件
var parameter = view.get("#queryForm.entity");
view.get("#dataSetSingleChensAgain").set("parameter",parameter).flushAsync();
------------------
var ds=this.id('dataSetQuery');
var cur=ds.getData('#');
cur.clearData();
var form=this.id('queryForm');
form.set('entity',{});
--------------------
if(arg.keyCode==13){
var parameter = view.get("#queryForm.entity");
view.get("#dataSetSingleChensAgain"").set("parameter"",parameter).flushAsync();
}
------
var dataset = view.id("dataSetSingleChensAgain");
dataset.getData("").cancel();
//this.get("#DialogAdd").show();
var dataGrid = view.get("#MainData");
var selection = dataGrid.get("selection"); //获得当前选中的项
if(selection==null){
dorado.MessageBox.alert("请选择一条要编辑的记录!");
}
if (selection.length == 1) {
var currentData = selection[0];
var id =currentData.get("ID");
alert(id);
var ds = view.id("dataSetSingleChensAgain");
ds.set("parameter",{ID:id});
ds.flushAsync();
var dialog = this.id("DialogAdd");
dialog.set("caption", "編輯");
dialog.show();
}else if(selection.length > 1){
dorado.MessageBox.alert("只能选择一条要编辑的记录!");
return;
} else{
dorado.MessageBox.alert("请选择一条要编辑的记录!");
}
[CompositeSingleChensAgain]
jdbcProvider
------在dataPolit的事件 onSubControlAction(self,arg)
中点击添加按钮,添加数据
switch(arg.code){
case "+":
var entityList = this.id("dataSet").getData();
entityList.insert();
var dialog =this.id("dialog");
dialog.show();
arg.processDefault = false;
break;
}
-----
点击添加,把主界面遮罩。添加页显示
var entity=this.id("dataSet").getData("#");
entity.cancel();
var dialog=this.id("dialog");
dialog.hide();
---------------
查询按钮
var parameter = view.get("#queryForm.entity");
var dataset = view.get("#dataSetTestChens514").set("parameter",parameter);
dataset.flushAsync();
alert(parameter.get("LOOKUP_TYPE"));
-----=---通用代码
$${dorado.getDataProvider ("sysLookupTypeAction#getValueByCode").getResult('PLATFORM_SYS_USER_FLAG')}
lookupCode
lookupName
---------------
testChens514Action#saveTestChens514
正在执行
保存成功
CompositeTestChens514
CompositeTestChens514
argument type dismatch 是dataType 字段的类型不匹配..Number(16) 对应的是bigdecenum.有时候生成为Double了,报错了就。
var parameter = view.get("#queryForm.entity");
view.get("#dataSetTestSingle").set("parameter",parameter).flushAsync();
Inltex easy meeting classic 会议软件
-----------------------------
CompositeTestChens514 dataType
dataSetOcmGoalsManager
metaData
jdbc.model CompositeTestChens514
取消
var dataset = view.id("dataSetTestChens514");
dataset.getData("#").cancel();
//getData返回数据集封装的数据
查询
this.get("#dialogQuery").show();
------系统语言
languageCode
{dorado.getDataProvider ("sysLookupTypeAction#getValueByCode").getResult('OCM_MISSION_MANAGER_STAT')}
lookupName
-----------执行action后关闭窗体------
var action = this.id("AddAction");
var dialog = this.id("dialogAdd");
action.execute(function(){dialog.hide();});
-------------
var dataset = view.id("dataSetTrainTestZhangkp");
dataset.getData("#").cancel();
this.id("dialogAdd").hide();
-------------------------
var ds = view.id("dataSetOcmGoalsManager");
var cur=ds.getData('#');
var id = cur.get("ID")
ds.set("parameter",{
ID: id
});
ds.flushAsync();
var dialog = this.id("dialogGoalsAdd");
dialog.set("caption","編輯");
dialog.show();
view.id("dataSetAddForm").flushAsync();
--------------------------------
提示确认,取消不操作;这样取Action执行execute()
dorado.MessageBox.confirm('您确定发布本信息么?',function(){
// view.get("#publishAction").set("parameter",{ID:id});
view.get("#publishAction").execute();
})
------------提示操作,确认关闭窗体----------
dorado.MessageBox.confirm('您尚未保存数据,【确认】将不保存数据?',function(){
var dataset = view.get("#dataSetAddForm");
var data = dataset.getData("#");
data.cancel();
var dialog = view.get("#dialogGoalsAdd");
dialog.hide();
})
-----------
var ds = view.id("dataSetOcmGoalsManager");
var cur=ds.getData('#');
var status = cur.get("DATA_STAT")
ds.set("parameter",{
DATA_STAT: status
});
ds.flushAsync();
------------table---onRenderCell
var a=arg.data.get("NAME");
if(a=='chens0002'){
arg.dom.innerHTML='lizhigang';
}
--------------------
ajaxAction
用注解@Expose
普通action
用注解@DataResolver
------
dorado7增删改
view视图-------------------------------------------------
oncreate()
/**
* 用于table列显示不全内容加tip提示
* @param {Object} arg table列中参数arg
* @param {Object} canShu 对于字段名称
* @param {Object} Split 列中显示的字节数
*/
$showTip = function(arg,canShu,Split){
//根据传入字段名称获取值
var ziDuan = arg.data.get(canShu);
var countLength = 0;
//获取字符串所占字节数
String.prototype.getBytes = function(){
var cArr = this.match(/[^\x00-\xff]/ig);
return this.length + (cArr == null ? 0 : cArr.length);
}
countLength = ziDuan.getBytes();
var allLength = 0;//定义一个分割线
var weiZhi = 0;//定义截取位置
for (i = 0; i < ziDuan.length; i++) {
if (allLength > Split) {
weiZhi = i;
break;
} else {
allLength += ziDuan.substring(i,i + 1).getBytes();
}
}
if (weiZhi == 0) {
weiZhi = ziDuan.length;
}
var show = "";//定义table中显示内容
if (weiZhi < ziDuan.length) {
show = ziDuan.substring(0,weiZhi) + "...";
} else {
show = ziDuan;
}
arg.dom.innerHTML = "" + show + "";
}
------------------------------------------
--beforeRefreshDom()--首页默认加载条件数据
//只加载状态为已发布的记录
view.get("#dataSetOcmMissionManager").set("parameter",{P_DATA_STAT:5}).flushAsync();
return true;
------------------------------
dialogQuery属性
查询按钮事件onClick()
var parameter = view.get("#queryForm.entity");
view.get("#dataSetOcmMissionManager").set("parameter",parameter).flushAsync();
-------------------------------------
重置按钮事件
var ds=this.id('dataSetQuery');
var cur=ds.getData('#');
cur.clearData();
var form=this.id('queryForm');
form.set('entity',{});
-----------------------------------------------
设置几列属性
cols:*,*,*
模式窗口:modal:true
--------------------------------
界面布局
Panel
所有使用到的控件的id或者name,或者caption某一项必须起名称,要设置,不要留空
--
首页面添加按钮事件
var dataset = view.id("dataSetAddForm");
dataset.insert();
var dialog = view.id("dialogMissionAdd");
dialog.show();
-------------------------------------------
-----------------------------------
首页面编辑onclick
var record = view.get("#dataSetOcmGoalsManager").getData().getFirst();
var id= record.get("ID");
if(record != null)
{
//只能修改已发布
var ds = view.id("dataSetAddForm");
ds.set("parameter",{P_ID: id}).flushAsync();
var dialog = this.id("dialogGoalsEdit");
dialog.show();
}else{
dorado.MessageBox.alert("没有可修改的数据!");
return;
}
-------------------------------------------
选择我们所要编辑的页面
//获取当前用户选中的一行数据
var ds = this.get("#dataSetOcmGraphCard").getData("#");
//没有数据
if (typeof(ds) == "undefined") {
dorado.MessageBox.alert("没有可修改的数据!");
return;
}else {
var id = ds.get("id");
if (id != null) {
//只能修改已发布
var ds = view.id("dataSetEditForm");
ds.set("parameter",{
Card_Id: id
}).flushAsync();
var dialog = this.id("dialogEditCard");
dialog.show();
}
}
--------------------------------------------
---首页弹出页面过滤状态为0 的数据展示出来
var ds = view.id("dataSetPubData");
ds.set("parameter",{P_DATA_STAT:0}).flushAsync();
var dialog = view.id("dialogMissionPub");
dialog.show();
----------------------
Action
删除的action子集属性
updateAction控件设置属性dataPath是:[#current];
保存和修改是同一个Action,子集是属性dataPath是:!DIRTY_TREE
dataResolver:ocmMissionManagerAction#deleteBatch
类里边注解用@DataResolver
executingMessage:正在保存
successMessage:
控件的子集updateItem:
子集属性:dataPath:[#current]
dataSet:dataSetPubData
--------------------------------------
添加页面的保存按钮onclick事件:
---这里没有像后台传入多余的参数直接绑定action后台执行保存
var data = view.get("#dataSetAddForm.data:#");
var mission = data.get("MISSION");
var hope = data.get("HOPE");
if(typeof(mission)== "undefined" || typeof(hope)== "undefined"){
dorado.MessageBox.alert("请确保【企业使命】和【企业愿景】字段值不为空");
return;
}else{
mission = mission.replace(/(^\s*)|(\s*$)/g, "");
hope = hope.replace(/(^\s*)|(\s*$)/g, "");
}
if((mission == null || mission == "" || typeof(mission)== "undefined") || (hope == null || hope == "" || typeof(hope)== "undefined")){
dorado.MessageBox.alert("请确保【企业使命】和【企业愿景】字段值不为空");
return;
}
var action = view.id("addAction");
var dialog = view.id("dialogMissionAdd");
action.execute(function(){dialog.hide();});
-------------------------------------------
添加页面发布事件,向后台传入了参数值,处理后返回关闭窗体
var data = view.get("#dataSetAddForm.data:#");
var mission = data.get("MISSION");
var hope = data.get("HOPE");
if(typeof(mission)== "undefined" || typeof(hope)== "undefined"){
dorado.MessageBox.alert("请确保【企业使命】和【企业愿景】字段值不为空");
return;
}else{
mission = mission.replace(/(^\s*)|(\s*$)/g, "");
hope = hope.replace(/(^\s*)|(\s*$)/g, "");
}
if((mission == null || mission == "" || typeof(mission)== "undefined") || (hope == null || hope == "" || typeof(hope)== "undefined")){
dorado.MessageBox.alert("请确保【企业使命】和【企业愿景】字段值不为空");
return;
}
//传入后台json数据
var dataValues={
mission:data.get("MISSION"),
hope:data.get("HOPE"),
dataStat:"5"
};
dorado.MessageBox.confirm('您确定发布本信息么?',function(){
var action = view.id("pubAction");
var dialog = view.id("dialogMissionAdd");
action.set("parameter",dataValues).execute(function(result){
//主界面修改后刷新主数据
view.id("dataSetOcmMissionManager").flushAsync();
dialog.hide();
});
}
)
-----------------------------------------------------
添加页面取消按钮
dorado.MessageBox.confirm('您尚未保存数据,【确认】将不保存数据?',function(){
var dataset = view.id("dataSetAddForm");
dataset.getData("#").cancel();
view.id("dialogMissionAdd").hide();
}
)
----------------------------------------
编辑页面保存按钮事件:
var data = view.get("#dataSetAddForm.data:#");
var mission = data.get("MISSION").replace(/(^\s*)|(\s*$)/g, "");
var hope = data.get("HOPE").replace(/(^\s*)|(\s*$)/g, "");
if((mission == null || mission == "") || (hope == null || hope == "")){
dorado.MessageBox.alert("请确保【企业使命】和【企业愿景】字段值不为空");
return;
}
var action = this.id("addAction");
var dialog = this.id("dialogMissionEdit");
action.execute(function(){
dialog.hide();
//主界面修改后刷新主数据
view.id("dataSetOcmMissionManager").flushAsync();
//发布页面编辑完成后刷新发布页面数据
view.id("dataSetPubData").flushAsync();
});
------------------------------------------------
dorado.MessageBox.confirm('您尚未保存数据,【确认】将不保存数据?',function(){
var dataset = view.id("dataSetAddForm");
dataset.getData("#").cancel();
view.id("dialogMissionEdit").hide();
}
)
----------------------------
发布页面的发布按钮事件
封装了一个json,向后台传了数据id,mession,hope三个字段的值后台处理后返回刷新数据
var data = view.get("#dataSetPubData.data:#");
var dataValues={
id:data.get("ID"),
mission:data.get("MISSION"),
hope:data.get("HOPE"),
dataStat:"5"
};
dorado.MessageBox.confirm('您确定发布本信息么?',function(){
var action = view.id("pubAction");
var dialog = view.id("dialogMissionAdd");
action.set("parameter",dataValues).execute(function(result){
dialog.hide();
//主界面修改后刷新主数据
view.id("dataSetOcmMissionManager").flushAsync();
//发布页面编辑完成后刷新发布页面数据
view.id("dataSetPubData").flushAsync();
});
}
)
-----------------------------
发布页面上的编辑事件
//当前行数据ID
var currentId = view.get("#dataSetPubData.data:#").get("ID")
//用于判断发布页面时候存在数据
var record = view.get("#dataSetPubData").getData().getFirst();
//实际也可以通过record.get("ID");取到当前选中数据的ID
if(record != null)
{
//只能修改已发布
var ds = view.id("dataSetAddForm");
ds.set("parameter",{P_ID:currentId}).flushAsync();
var dialog = view.id("dialogMissionEdit");
dialog.show();
}else{
dorado.MessageBox.alert("没有可修改的数据!");
return;
}
------------------------------------------
发布页面的删除事件
//当前行数据ID
var currentId = view.get("#dataSetPubData.data:#").get("ID")
//用于判断发布页面时候存在数据
var record = view.get("#dataSetPubData").getData().getFirst();
var dataArray = new Array();
if(record != null){
dorado.MessageBox.confirm('您真的要删除吗?',function(){
dataArray[0] = {id:currentId};
view.get("#deleteAction").set("parameter",eval(dataArray));
view.get("#deleteAction").execute(function(){
// 刷新不回首页,只在当前页的方法。
var ds = view.id("dataSetPubData");
ds.flushAsync();
});
});
}else{
dorado.MessageBox.alert("没有可删除的记录");
return;
}
view.id("dialogMissionPub").hide();
-----------------------------
编辑选中当前选中的进行编辑
//当前行数据ID
var currentId = view.get("#dataSetPubData.data:#").get("ID")
//用于判断发布页面时候存在数据
var record = view.get("#dataSetPubData").getData().getFirst();
if(record != null)
{
//只能修改已发布
var ds = view.id("dataSetAddForm");
ds.set("parameter",{P_ID:currentId}).flushAsync();
var dialog = view.id("dialogGoalsEdit");
dialog.show();
}else{
dorado.MessageBox.alert("没有可修改的数据!");
return;
}
------------------------------------------------------------
dataTreeGrid
==
dataTreeGrid
处理子部门级的数据,
dataType的字段中有一个字段用于存储展开的子节点的ID
例如:oldProcessDefinitions;字段的属性dataType:为集合[dataTypePlatformProcessDefinition]
对应的dataSet的属性中
dataProvider:avicit.bpm.processDefinitionManagerAction#findProcessDefinition2 找该节点下的子节点。
dataType属性是一个集合:[dataTypePlatformProcessDefinition]
loadMode:preload
===控件dataTreeGrid
currentNodeDataPath:CURRENT_MENU
dataSet:dataSetPlatformProcessDefinition
dataType:dataTypePlatformProcessDefinition
defaulticon: url(>skin>common/icons.gif) -260px -260px
dynaRowHeight:true
selectionMode:multiRows
treeColumn:id 作为树型列的列名
--------------------------
绑定字段:BindingConfigs
childrenProperty:oldProcessDefinitions
expandLevel:2
hasChild:true
labelProperty:id----显示字段
recursive;true
-----------------
currentNode : dorado.widget.tree.Node from TreeGrid当前节点。
currentEntity : Object|dorado.Entity from TreeGrid当前数据实体。
showFilterBar : boolean from TreeGrid[ReadOnly] 是否表格过滤栏。
highlightCurrentRow : boolean ( = true )from AbstractGrid高亮显示当前行。
highlightHoverRow : boolean ( = true )from AbstractGrid高亮显示鼠标悬停的行。
rowHeight : int ( = 18 )from AbstractGrid默认的行高。
headerRowHeight : int ( = 22 )from AbstractGrid默认的标题栏行高。
scrollMode : String ( = "lazyRender" )from AbstractGrid滚动模式。
fixedColumnCount : int from AbstractGrid最左边锁定的列数。
currentColumn : dorado.widget.grid.Column|String|int from AbstractGrid当前列。
dataColumns : dorado.widget.grid.DataColumn[] from AbstractGrid[ReadOnly]
表格中所有数据列的数组。
selectionMode : String ( = "none" )from AbstractGrid选择模式。
selection : Object|Object[] from AbstractGrid表格中的当前选中项。
itemModel : dorado.widget.list.ItemModel from AbstractList[ReadOnly]
dragMode : String ( = "item" )from AbstractList[WriteBeforeReady]
拖拽模式。
dropMode : String ( = "insertItems" )from AbstractList[WriteBeforeReady]
拖放模式。
nodes : dorado.util.KeyedList|[Object]|[dorado.widget.tree.Node] from AbstractTree子节点集合。
showLines : boolean from AbstractTree[WriteBeforeReady]
是否显示连接树节点的线。
firstNode : dorado.widget.tree.Node from AbstractTree[ReadOnly]
返回树中的第一个有效节点。
getCurrentItem ( ) : Object|dorado.Entityfrom AbstractGrid返回当前行所对应的数据。
selectAll ( ) : voidfrom AbstractGrid全选。
unselectAll ( ) : voidfrom AbstractGrid全部不选。
selectInvert ( ) : voidfrom AbstractGrid反向选择。
refreshSummary ( ) : voidfrom AbstractGrid刷新(即重新计算)表格中的汇总数据。
refresh ( boolean delay ) : voidfrom RenderableElement刷新此对象的显示。
clearNodes ( ) : voidfrom AbstractTree清除树中的所有树节点。
refreshNode ( dorado.widget.tree.Node node ) : voidfrom AbstractTree刷新某树节点的显示。
---------------------------------------------------------------
exceptionHandlers
properties
key
id
version int
packageName
deploymentTime
deploymentDbid
isSuspended
imageResourceName
name
description
deploymentId
oldProcessDefinitions
designer
deployer
insert ( dorado.Entity|Object [data] ) : dorado.Entityfrom DataSet向数据集中添加一条顶层记录。
MESSAGE_REFRESH : int from DataSet通知监听器 需要进行数据刷新的消息。
MESSAGE_DATA_CHANGED : int from DataSet表示 数据实体中的属性值发生变化的消息。
MESSAGE_ENTITY_STATE_CHANGED : int from DataSet表示数据实体的状态变化的消息。
MESSAGE_DELETED : int from DataSet表示 实体集合中 有数据实体 被删除的消息。
MESSAGE_INSERTED : int from DataSet表示 实体集合中 添加了新数据实体的消息。
MESSAGE_CURRENT_CHANGED : int from DataSet表示实体集合中 当前数据实体发生改变的消息。
MESSAGE_REFRESH_ENTITY : int from DataSet通知监听器需要针对某个数据实体进行数据刷新的消息。
---
arg.dom.innerHTML= "";
-------------------------------
编辑超链接
arg.dom.innerHTML="查看"
show = ziDuan.substring(0,weiZhi) + "...";
---------------------------------
onReady:第一次加载页面时起作用,以后都不加载。
edit_overall_goals
alert(document.getElementById("edit_overall_goals"));
onRenderCell : b当表格控件渲染其中的某个数据单元格时触发的事件。
onDataChange :EntityDataType当某个此类型的dorado.Entity中的属性值被改变后触发的事件。
var dialog = view.id("dialogGoalsEdit");
dialog.hide();
return false;
--------------------------------
删除成功后执行成功
var ds= this.id("datasetTest");
var entityList=dataSet.getData();
entityList.clear();
entityList.gotoPage(entityList.pageNo);
-----------------------------
设置弹出页的路径。。加两参数
view.get("#editSysUserIframe").set("path","${web.contextPath}/avicit/platform6/modules/system/sysuser/view/sysuser_edit.d7?sysUserId=" + currentData.get("id") + "&flag=read");
-------------------流程启动按钮事件--只需要更改dataSet和formCode
packages:bpmclientjs,bpmclientcss
//获取当前用户选中的一行数据
var ds = this.get("#dataSetStudyBusinessTrip").getData("#");
//将数据转换为JSON格式的字符串,该字符串传递给流程启动函数
var json = ds.toJSON();
//表单代码定义,这个表单代码必须在表单管理中已经定义
var formCode = "StudyBusinessTrip";
//打开流程选择对话框
var processDef = new StartProcessByFormCode();
processDef.SetFormCode(formCode);
StartProcessByFormCode.prototype.doStart = function(pdId){
/* 将表单代码、业务数据、流程定义ID提交到Java端 */
var data = "processDefId="+pdId+"&formCode="+formCode+"&jsonString="+JSON.stringify(json);
jQuery.ajax({
type : "POST",
data : data,
url : getPath() + "/platform/bpm/clientbpmoperateaction/dostart",
dataType : "json",
success : function(msg) {
if(msg!=null&&msg.error!=null){
window.alert(msg.error);
return;
}else{
var processInstanceId = msg.processInstanceId; //流程实例ID
var taskUrl = msg.taskUrl; //待办URL
//打开待办审批页面
parent.window.location.replace(getPath()+"/"+taskUrl);
}
}
});
};
processDef.start();
--------------------------------------------------------------------------
---详细viewonCreate事件
详细toolbar---HtmlContainer[dock]设置属性:id为toolbar_content
content:
window.getFormDataJson = function(){
var ds = view.get("#dataSetStudyBusinessTrip").getData("#");
var jsonString = dorado.JSON.stringify(ds.toJSON());
framework.variable = jsonString;
};
---还有onReady事件
self.get("#dataSetStudyBusinessTrip").insert();
//画流程按钮部分
var entryId = "${param.entryId}";
var executionId = "${param.executionId}";
var taskId = "${param.taskId}";
var formId = "${param.id}";
var toolbar = new ToolBar(entryId,executionId, taskId,'bpmToolBar', formId);
//画流审批意见
new IdeaManage.getIdea(entryId);
-----------------------------------------------------------------
@Override
public StudyBusinessTrip getStudyBusinessTripById(String id) {
StudyBusinessTrip h = (StudyBusinessTrip)hibernateDao.getSession().get(
StudyBusinessTrip.class, id);
return h;
}
------------------------------
首页面跳转详细页---标题链接跳转
jQuery(arg.dom).empty();
jQuery(arg.dom).xCreate({
tagName: "A",
href:"#",
content:arg.data.get("USERID"),
style:"font-size:13px",
onclick: function() {
var id =arg.data.get("ID");
view.get("#detailIframe").set("path","${web.contextPath}/avicit/platform6study/bpm/studybusinesstrip/view/StudyBusinessTripDetail.d7?id="+id);
view.get("#dialogDetail").show();
}
});
--------------------
------------配工作流-------首页dataSet上要配属性:studyBusinessTripAction#getDataWithBpmEntryV
导入四个包[CompositeStudyBusinessTrip]
import org.springframework.beans.factory.annotation.Autowired;
import com.bstek.dorado.jdbc.iapi.IJdbcDao;
import com.bstek.dorado.jdbc.iapi.annotation.JdbcDaor;
import com.bstek.dorado.data.provider.Criteria;
@Autowired
@JdbcDaor
private IJdbcDao jdbcDao;
@DataProvider
public void getDataWithBpmEntryV(Criteria criteria, Object parameter, Page page) {
jdbcDao.page("CompositeStudyBusinessTrip", criteria, parameter, page);
Collection
for (Record r: records){
String activityNames = "测试A";
//bpmToolService.getActivityNamesByFormId(r.getString("ID").toString()) ;
String state = "已经完成";
//bpmToolService.getProcessStateByFormId(r.getString("ID").toString()) ;
r.put("ACTIVITY_NAMES", activityNames);
r.put("ACTIVITY_STATE", state);
}
}
-----------------获取控件现在只让用view.get("#dataset")------------
接收后台return id;的值拿到放入dataSet中
var dataset= view.get("#dataSetOcmGraphCard");
var data =dataset.getData("#");
data.set("ID",arg.result);
view.get("#dataSetOcmGraphCard").getData("#").set("ID",arg.result);
-----------------
主子表加载第一条:给子表一个主表的ID
var id = view.get("#dataSetOcmGraphCard").getData().getFirst().get("ID");
var ds = view.id("dataSetProfession");
ds.set("parameter",{ID:id}).flushAsync();
-----------END--------------------
---
---获得当前dataGrid行的数据
var table=view.get("#MainData");
var currentId=table.getCurrentItem().get("ID");
----
dataGrid 对指定的列进行排序
public sort (column ,desc)
对指定的列中的数据进行排序。
--
table.highlightItem();默认高亮显示当前行
------------------------view中通过joson封装数据对象,必须有ID,否则后台映射不到(Map2Pojo)
@Expose
public void operateOcmCardPub(Map
OcmGraphCard ocmGraphCards = new OcmGraphCard();
PojoUtil.Map2Pojo(values, ocmGraphCards);
ocmGraphCardService.publishUpdateOcmCardPub(ocmGraphCards);
}
------------------- MainData
var table=view.get("#MainDataprofession");
var id=table.getCurrentItem().get("ID");
var sign=table.getCurrentItem().get("IS_SIGN");
var entryId=table.getCurrentItem().get("entryId");
var executionId=table.getCurrentItem().get("executionId");
var taskId =entryId;
var act =1;//操作 =1;查看详情= 2
if((entryId == null || entryId == "" || typeof(entryId)== "undefined")){entryId="";}
if((executionId == null || executionId == "" || typeof(executionId)== "undefined")){executionId="";}
if((taskId == null || taskId == "" || typeof(taskId)== "undefined")){taskId="";}
view.get("#operateKpiIframe").set("path","${web.contextPath}/avicit/ocm/kpimanager/ocmkpiwrite/view/OcmKpiWrite.d7?id="+id+"&sign="+sign+"&act=1&entryId="+entryId+"&executionId="+executionId+"&taskId="+taskId);
view.get("#dialogOperateKpi").show();
--------------------------
表字段的拼接显示数据
var YEAR_FROM =arg.data.get("YEAR_FROM");
var YEAR_TO = arg.data.get("YEAR_TO");
arg.dom.innerHTML = YEAR_FROM +"-"+ YEAR_TO;
----
页面参数接收
$isSign = "${request.getParameter('sign')}";
var flag="${param.flag}";//1公司级;2专业级
---去空格
overall_goals =overall_goals.replace(/(^\s*)|(\s*$)/g,"");
--
typeof(overall_goals) == "undefined"
--------全局js方法调用
$SendWarnMessage('dataSetOcmGraphCard',data_State);
dorado.MessageBox.alert("状态为【"+$WarnMessage+"】的数据不允许变更!");
return;
-
var dsMain = this.get("#dataSetOcmGraphCard").getData("#");
var MainCard_state=dsMain.get("DATA_STAT");
if(MainCard_state>=5&&MainCard_state!=16){//首先满足公司级state>=5且不等于16
if(data_State==0){//在满足公司级前提下,只允许编辑专业级的草稿
}else{
$SendWarnMessage('dataSetProfession',data_State);
dorado.MessageBox.alert("状态为【"+$WarnMessage+"】的数据不允许变更!");
return;
}
}else{
$SendWarnMessage('dataSetOcmGraphCard',MainCard_state);
dorado.MessageBox.alert("状态为【"+$WarnMessage+"】的数据不允许变更!");
return;
}
----------------------文字链接--------------------
arg.dom.innerHTML="浏览"
----------
readWordTemplet
readAttachTemplet
editWordTemplet
editAttachTemplet
updateWordTemplet
updateAttachTemplet
wordTempletDetailManage
attachTempletDetailManage
attachTempletIFrame
dialogAttachTemplet
dataGridSysAttachTemplet
dialogEditForm
dataSetMainSubEditForm
dataSetOcmStrategicPlanAddForm
dataSetOcmStrategicPlan
dataTypeSysAttachTemplet
dataTypeSysAttachTempletDetail
----------------------------
dataSetSysAttachTemplet
dataSetSysAttachTempletDetail
dataSetSysAttachTempletQuery
dataSetSysAttachTempletDetailQuery
dialogFileUpload
dialogSysAttachTempletAdd
avicit.ocm.ocmstraplanmain.domain.SysAttachment
avicit.ocm.ocmstraplanmain.domain.SysAttachTempletDetail
sys_att什么表
sysWordTempletAction#getSysWordTempletListByPage
sysAttachTempletAction#getSysAttachTempletListByPage
sysAttachTempletDetailAction#getSysAttachTempletDetailListByPage
SysAttachTempletServiceImpl
buttonAddSysAttachTemplet
updateActionSaveSysAttachTemplet
dataSetSysAttachment
ATTACH_NAME VARCHAR2(200) N
PARENT_TABLE_ID VARCHAR2(30) Y
PARENT_REGISTER_ID VARCHAR2(32) N
ATTACH_BLOB BLOB Y
ATTACH_TYPE VARCHAR2(20) Y
ATTACH_SIZE NUMBER(20) Y
${web.contextPath}/avicit/platform6/modules/system/sysfileupload/view/sysfileupload.d7
uploadDialog
uploadFileIFrame
http://localhost:8080/1/avicit/ocm/ocmstraplanmain/view/SysAttachment.d7?
id=8a58bca33f756dd9013f756f4aee000a
&BusinessTableName=OCM_STRA_PLAN_MAIN
fileuploadBusinessId
fileuploadBusinessTableName
dataSetSysAttachment
:P_PARENT_REGISTER_ID
var ds = view.get("#dataSetSysAttachment");
ds.set("parameter",{
P_PARENT_REGISTER_ID: '${param.id}'
}).flushAsync();
-------设置默认值
view.get("#dataSetOcmGraphCard").getData("#").set("YEAR_FROM",2013);
view.get("#dataset").getData("#").set("字段",值);
------------处理日期格式-----
var data=new Date();
var year=data.getFullYear();
view.get("#dataSetOcmGraphCard").getData("#").set("YEAR_FROM",year-5);
view.get("#dataSetOcmGraphCard").getData("#").set("YEAR_TO",year);
var month=data.getMonth()+1;
var day=data.getDay();
view.get("#dataSetOcmGraphCard").getData("#").set("REVIEW_DATE",data.getFullYear()+"-"+month+"-"+day);
---URL
${request.getContextPath()}/dorado/uploader/fileupload
---
return (SysFileUpload)getSession().get(SysFileUpload.class,id);
/*
* 清空
*/
$clearUploadQueue = function(){
var uploadAction = view.get('#batchUpload');
view.get("#dataSetFiles").get("data").each(function(entity){
uploadAction.removeFile(entity.get('id'));
});
view.get("#dataSetFiles").clear();
}
----------------------------
平台上传组件的路径
${web.contextPath}/avicit/platform6/modules/system/sysfileupload/view/sysfileupload.d7
----------判断WORD
var ds= view.get("#dataSetSysAttachment").getData("#");
var docType=ds.get("attachName");
docIndex=docType.indexOf(".");
docType=docType.substring(docIndex+1);
if(docType=="doc"||docType=="docx"){
return docType
}else{
return;
}
--------------dataSetFiles------------
/**
var dataset = view.id("dataSetOcmStrategicPlanAddForm");
dataset.insert();
//每次进入添加页面情况dataset值
view.get("#dataSetMainSubAddForm").clear();
var dialog = view.id("dialogAddForm");
dialog.show();
**/
view.get("#addOcmStrategicframe").set("path","${web.contextPath}/avicit/ocm/ocmstraplanmain/view/OcmStraPlanMainAdd.d7");
view.get("#dialogAddStrategic").set('caption','添加战略规划').show();
-----------------------------------------
-
//修改dataset中数据的状态
var ds = view.get("#dataSetTrainProjectDingr").getData("#");
ds.setState(dorado.Entity.STATE_NEW);
--------------------------------
var id = view.id("dataSetOcmStrategicPlanEditForm").getData("#.ID");
var name = view.id("dataSetOcmStrategicPlanEditForm").getData("#.STRATEGIC_PLAN_NAME");
--------------------------------------
/************显示浏览附件的表格列********************/
window.showAttachColumn = function(){
var addMainData= view.get("#AddMainData").getColumn("attachFileMain");
if(typeof(AddMainData)!="undefined"){
obj.set("visible",true);
}
var addSubData view.get("#AddSubData").getColumn("attachFileSub");
if(typeof(addSubData)!="undefined"){
addSubData.set("visible",true);
}
}
/********************************/
//update chens
String findSqlmain = "select id from OCM_STRA_PLAN_MAIN where ocm_strategic_plan_id= '"+id;
List listmain = hibernateDao.findBySQL(findSqlmain);
if(listmain != null && listmain.size()>0){
for (int i =0; i
}
}
-----------------流程详细页关闭按钮-----
if(parent.refreshDetail==null){
parent.window.location="${web.contextPath}/avicit/platform6/modules/system/sysdashboard/index.jsp";
return;
}
parent.refreshDetail()
---------------dropdown的items属性--property属性id-
${dorado.getDataProvider("sysRoleAction#getSysRoleList").getResult()}
onclose()事件中
var value = arg.selectedValue;
self._items.each(function(obj){
if(value == obj.id){
//arg.selectedValue = obj.roleName;
}
});
------------------------
eMail 效验
// E-mail值检测
$isMailAddress = function (name){
if(name=='' || typeof(name) == 'undefined' || name == null)return true;
i = name.indexOf("@");
j = name.lastIndexOf("@");
if(i == -1)
return false;
if(i != j)
return false;
if(i == name.length)
return false;
return true;
}
=-----form表单重新赋值
view.get("#dataFormAddKPI").get("entity").set("WEIGHT", weight);;
view.set("#dataFormAddKPI.entity");
--------Tab标签的显影
var formcodepara="${param.formcodepara}";
if(formcodepara=='A'){
view.get("#tabControl2").getTab("actProShow").set("visible",true);
}else{
view.get("#tabControl2").getTab("actProShow").set("visible",false);
}
---------------------------------------------------------
--------网络摘抄,待验证---在一个view中通过js代码使得另一个view的tabControl动态创建tab
其中---两个view
其中一个view的tabControl里面包含一个IFrameTab,IFrameTab内包含另一个view;子view中的
dataGrid的一个dataColumn渲染了一个超链接,要实现点击链接,在父页面的TabControl中动态的创建
一个新的IFrameTab
------实现过程
在OnCellRender()里写如下代码:
$(arg.dom).empty.xCreate({
tagName:'A',
href:'#',
content:'Click Me'
})
$(arg.dom).off('click','A','**').on('click','A',function(){
anotherView.get("tabcontrolId").addTab(new dorado.widget.tab.IFrameTab({name:'',caption:'',path:''}))
})
---------------------------------------------------------------------------
///获得中文字符长度begin //////////
String.prototype.getBytes = function(){
var cArr = this.match(/[^\x00-\xff]/ig);
return this.length + (cArr == null ? 0 : cArr.length);
}
///获得中文字符长度 end//////////
///校验字段的长度 begin//////////
lengthValidate = function(fields, describe, length){
var flag = true;
var data = view.get("#dataSetOcmKpiWrite.data:#");
var field = data.get(fields);
if(field != null){
if(field.getBytes() > length){
dorado.MessageBox.alert("【" + describe + "】文本内容过多,长度应小于" + length + "个字符!");
flag = false;
}
}
return flag;
}
///校验字段的长度 end//////////
///校验名称长度 begin 2013-10-18 chens/////////
//在dataType里边这样写
var name = arg.entity.get("PLAN_NAME");
if(name != null){
if(name.getBytes() > 180){
dorado.MessageBox.alert("【总规划名称】文本内容过多,长度应小于180个字符!");
return;
}
}
///校验名称长度 end/////////
---------------------------------------------------------------------------------------
var type = arg.data.get("TYPE");
var change = arg.data.get("CHANGE_STATE");
if(type != 3){
if(change == "A"){//绿色
arg.dom.style.background = "#37FF37" //"#37B44A"
}else if(change == "U"){//蓝色
arg.dom.style.background = "#C1EFEF"//"#00BFF3"
}else if(change == "D"){//红色
arg.dom.style.background = "#FDDFED"//"#EE1D24"
}else{
arg.dom.style.background = ""
}
}else{
arg.dom.style.background = ""
}
arg.processDefault = true;
-----------------------------------------------------
遍历树结构的表
SELECT *
FROM ocm_kpi_write_act_v
WHERE ocm_graph_card_id = '8a58bc943f9d7e35013f9d7fb2dc0003'
CONNECT BY PRIOR ID = parent_id
START WITH parent_id = '-1';
select *
from ocm_kpi_write_act_vs m
where m.OCM_GRAPH_CARD_ID = '8a58bc943f9d7e35013f9d7fb2dc0003';
------------------------------------------------------------------
SELECT *
FROM OCM_KPI_WRITE_V
WHERE ocm_graph_card_id='8a58bc883f884a4d013f88666ad90006'
CONNECT BY PRIOR ID = parent_id
START WITH parent_id ='-1'
--8a58bc943f9d7e35013f9d7fb2dc0003
select *
from ocm_kpi_write_vs t
where t.OCM_GRAPH_CARD_ID ='8a58bc943f9d7e35013f9d7fb2dc0003';
OCM_KPI_WRITE_V
OCM_KPI_WRITE_VS
----------------------------------------------
-----------dataType属性beforeDataChange------判断开始日期小于结束日期
switch(arg.property){
case "ACT_START_DATE" :
var endDate = arg.entity.get("ACT_END_DATE")
var startDate = arg.newValue;
var ds = view.id("dataSetOcmActPlan").getData("#");
if(startDate>endDate){
dorado.MessageBox.alert("字段【开始时间】不能大于字段【结束时间】");
arg.entity.set("ACT_END_DATE",arg.newValue)
}
break;
case "ACT_END_DATE" :
var startDate = arg.entity.get("ACT_END_DATE")
var endDate = arg.newValue;
var ds = view.id("dataSetOcmActPlan").getData("#");
if(startDate>endDate){
dorado.MessageBox.alert("字段【结束时间】不能小于字段【开始时间】");
arg.entity.set("ACT_START_DATE",arg.newValue)
}
break;
}
------------------------------------------------------------------------------------
dataTree的宽窄属性:position:200;
--------------从session中获取当前登录人的部门ID-------------------------------------------------------------------
public String getSessionDeptId(){
return SessionHelper.getCurrentDeptId();
}
String userId = SessionHelper.getLoginSysUserId();
String ip = SessionHelper.getClientIp();
----------------------------------------
部门ID转NAME---:要注意名字的统一
@Transient
public String getHrDeptName() {
SysDeptLoader sdLoader = SpringFactory.getBean("SysDeptLoader");
String hrDeptName = sdLoader.getSysDeptNameBySysDeptId(this.getHrDeptId(), "zh_CN");
return hrDeptName;
}
--------------------------------
POJO首页返回流程状态
---
@Autowired
@JdbcDaor
private IJdbcDao jdbcDao;
@Autowired
CommonHibernateDao commonHibernateDao;
@DataProvider
public void getDataWithBpmEntryV(Criteria criteria, Object parameter, Page page) {
jdbcDao.page("CompositeOcmGraphCard", criteria, parameter, page);
Collection
for (Record r: records){
String activityNames=new BpmEntity().getEntityActivityNamesByFormId(commonHibernateDao,r.getString("ID").toString());
/*//String activityNames = "测试综合图卡";
bpmToolService.getActivityNamesByFormId(r.getString("ID").toString()) ;
//String state = "已经完成";
bpmToolService.getProcessStateByFormId(r.getString("ID").toString()) ;*/
String state = new BpmEntity().getEntityStateByFromId(commonHibernateDao,r.getString("ID").toString());
//流程实例ID
String entryId = new BpmEntity().getEntityIdByFromId(commonHibernateDao, r.getString("ID").toString());
String executionId = new BpmEntity().getExecutionId(commonHibernateDao, r.getString("ID").toString());
String taskId = new BpmEntity().getTaskId(commonHibernateDao, r.getString("ID").toString());
r.put("ATTRIBUTE_10", entryId);
r.put("ACTIVITY_NAMES", activityNames);
r.put("ACTIVITY_STATE", state);
r.put("ATTRIBUTE_09", executionId);
r.put("ATTRIBUTE_08", taskId);
}
}
---------------------------------------------------------------------
var data = view.get("#dataSetAddForm.data:#");
--------------------------------
dataTree树上高亮显示
---------------
var ocmKpiWriteId =view.get('#dataSetOcmActPlan').getData('#').get('ocmKpiWriteId');
var firstNode =view.get("#dataTree").get('firstNode');
queryNode(firstNode,true);
return true;
------------------树节点上取值-----
var currentEntity = this.id("treeGrid").get("currentEntity");
if (currentEntity) {
//根节点和战略角度节点不能被删除
if (currentEntity.get("PARENT_ID") !=-1 && currentEntity.get("TYPE") !="3" ) {
---
//递归查找树上对应节点 mac2013-7-10
function queryNode(node,sign){
if(sign){
var nodes=node.get('nodes');
nodes.each(function(obj){
var OCM_KPI_WRITE_ID=obj.get('data').get('OCM_KPI_WRITE_ID');
//alert(obj.get('data').get('NAME')+"OCM_KPI_WRITE_ID---"+OCM_KPI_WRITE_ID+"---"+ocmKpiWriteId);
if(obj.get('data').get('OCM_KPI_WRITE_ID')==ocmKpiWriteId){
//alert(obj.get('data').get('NAME')+'!!!!!');
obj.highlight();
return false;
}else{
var sd=queryNode(obj,true);
}
});
}else{
//alert(1);
return false;
}
}
----------------------------------------------------------
table行高亮显示
--
var change = arg.data.get("CHANGE_STATE");
if (change == "A") {//绿色
arg.dom.style.background = "#fff100" //"#37B44A"
}else if (change == "U") {//蓝色
arg.dom.style.background = "#00FF00"//"#00BFF3"
}else if (change == "D") {//红色
arg.dom.style.background = "#EE1D24"
}else {
arg.dom.style.background = ""
}
arg.processDefault = true;
----------------操作,详细链接--------------------------------------
var id = arg.data.get("id");
jQuery(arg.dom).empty();
jQuery(arg.dom).xCreate({
tagName: "A",
href: "#",
content: "详细",
style: "font-size:13px",
onclick: function(){
view.get("#detailIframe").set("path","${web.contextPath}/avicit/ocm/kpimanager/ocmactplan/view/actsubproject/OcmActSubProjectDetail.d7?isFlow=true&id=" + id);
view.get("#dialogDetail").show();
}});
------------------------------------------------
var button1 = $DomUtils.xCreate({
tagName: "button",
id:"button1",
content: "Click Me",// 定义按钮的标题
onclick: function(){
// 定义onclick事件
alert("Button clicked.");
}},{
tagName: "button",
content: "Click You",// 定义按钮的标题
onclick: function(){
// 定义onclick事件
}}
);
-------------------------------------------
//找到dataTreeGrid的property列绑定onGetCellEditor监听事件
view.get("#dataTreeGrid1").findColumns(property)[0].set({
trigger: view.get("#recommendDropdown"), //绑定下拉框
onGetCellEditor :function(self, arg){
//获取ajax对象
var ajaxGetListAction = view.get("#ajaxGetDropDownItem");
//设置ajax请求参数
ajaxGetListAction.set("parameter",param);
//执行ajaxAction请求获取下拉框值
ajaxGetListAction.execute(function(result){
view.get("#recommendDropdown").set("items",result);
});
}
});
----------------------------
onGetCellEditor :function(self, arg){
arg.editor.set("trigger",view.get("#recommendDropdown"))
}
-----------------
---------------------------table设置某一列的只读---------
view.get("#MainData").findColumns("YEAR_FROM")[0].set({
// trigger: , //绑定下拉框
onRenderCell :function(self, arg){
var v= arg.data.get("YEAR_FROM");
if(v=='2012'){
arg.cellEditor.createEditorControl();//获取对应的Editor对象
// arg.editor.set("readOnly",true);
}else{
// arg.editor.set("readOnly",false);
}
}
});
--------------------------------------------
jQuery(arg.dom).empty();
jQuery(arg.dom).xCreate({
tagName: "A",
href:"#",
content:arg.data.get("YEAR_FROM"),
style:"font-size:12px;color:red"
});
----------------------------------
---js替换访问路径------------------
$ReportRoot="rqreport/reportJsp/showReport.jsp?raq=/subjectOcmCardReport.raq&cardId=";
var rootPath='${web.contextPath}';
var ServerNAME=rootPath.substring(1);
localPath=rootPath.replace(ServerNAME,$ReportRoot);
-------------------------------------------
----------------------------------------
dynaRowHeight : boolean from AbstractGrid[WriteBeforeReady]
是否支持动态行高的功能。
----------------------------------------------
stretchcolumnsmode
表格列的宽度调整模式
---------------
--dataTreeGrid的Column的属性onRenderCell事件
var context = {};
var status = arg.data.get("planType");
var png="";
if(status == '晴天'){
png = "qing";
}else if(status == '阴天'){
png = "yin";
} else if(status == '大雨'){
png = "yu";
} else if(status == '多云'){
png = "duoyun";
} else{
arg.dom.innerHtml =""+status+"";
}
arg.dom.innerHTML=""+status;
dorado.TipManager.initTip(arg.dom.parentNode, {
content : {
tagName : "IMG",
src : $url("../../../../images/"+png+".png"),
style : "width: 128px; height: 128px; margin: 8px"
},
arrowDirection : "top",
arrowAlign : "left"
});
------------------------------------
table判断当前数据是否存在
var table = view.get("#MainDataprofession");
if(null!=table.getCurrentItem()){
-------------------------------------
view.get("#menuOrg").show({
position:{
left:arg.event.pageX,
top:arg.event.pageY
}
});
-------------------------------
平台选人页
[{loginName:CREATED_BY},{name:CREATED_BY_NAME}]
selectUser_Trigger
---------------------、
树节点onRenderNode()事件
var selected = arg.node.get("data.searchSelectedFlag");
arg.dom.style.fontWeight = selected ? "bold" : "";
arg.dom.style.background = selected ? "#3399ff" : "";
arg.dom.style.padding = selected ? "0 4px" : "";
arg.dom.style.color = selected ? "white" : "";
arg.processDefault = true;
-------------------------------------------------
El表达式
两种EL表达式
–静态EL表达式:${expression} ,在创建目标对象癿过程中一次性癿求值。
–劢态EL表达式:
{this}或$${this.foo}
–此种隐式变量通常只用在DataType癿Reference属性中。
this表示当前正在处理癿数据实体对象,即系统正在尝试获取该数据实体对象癿Reference属性癿值。
–此种EL表达式癿实际求值范围是在Client端癿JavaScript环境中
------------------------------------------------------------------
------------布局
Dorado7目前提供癿布局管理器:
–DockLayout 停靠式布局
–AnchorLayout 锚定式布局
–FormLayout 表单时布局
–HBoxLayout 水平箱式布局
–VBoxLayout 垂直箱式布局
–NativeLayout (其实什么都丌做癿布局)
-----------------------------------------------
----添加事件
一个事件下可添加多个监听函数,可使用下面癿两种方法。
button1.set("onClick", function(self) {
// 此方法只能定义一个监听函数
});
戒
button1.addListener("onClick", function(self) {
//此方法可以为一个事件添加多个监听函数
});
?Dorado7中所有癿事件都只支持self和arg返两个事件参数。
–self总是激发事件癿对象自身。
–arg癿类型不具体癿事件类型有关,很多情况下是一个JSON对象,其中可能包含有非常丰富癿传入信息。
-----------------------------------------
---processDefault----
很多beforeXXX事件癿arg参数中都支持一个名为processDefault癿可写属性,用亍通知系统是否要执行该事件所代表癿后续操作。
employeeDataType.addListener("beforeRemove", function(self, arg) {
if (arg.entity.get("married")) {
dorado.MessageBox.alert("已婚癿员工丌能被初除!");
arg.processDefault = false;
}
});
?抛出一个异常,同样可以达刡类似癿目癿。
employeeDataType.addListener("beforeRemove", function(self, arg) {
if (arg.entity.get("married")) {
throw new dorado.Exception("已婚癿员工丌能被初除!");
}
});
-------------------------------------
---手动创建一个button按钮拥戴了特殊的$type类型
例如下面癿代码也可以用来创建一个Button。
{
$type: "Button",
caption: "Say Hello",
onClick: function(self, arg) {
dorado.MessageBox.alert("Hello!");
}
}
------------------------------
获取控件推荐的方法
–this.get("#buttonOK") 今后推荐癿方法,原因是当你需要迕一步操作buttonOK时会非常方便。
例如this.get("#buttonOK.caption")可以直接获得Button癿caption属性。
-------------------------------
根据标签获得一批对象癿方法包括:
this.get("^foo") 今后推荐癿方法。例如:this.set("^foo.disabled", true)
this.tag("foo") 今后丌再推荐。
------------------------------
View癿get和set中更多使用技巧
–this.get("title") - 读取View自身癿属性
–this.get("#buttonOK")
–this.get("^foo")
–this.get("@DataTypeProduct") - 根据名称获得某个DataType
----------------------------------------
?$url() - 用亍转换URL
–">images/icon.gif"将转换为"/appContextPath/images/icon.gif"
–"skin>widget.css"将转换为Dorado当前当前皮肤路徂下癿widget.css癿URL。
因为skin是预设癿URL前缀代表当前皮肤癿根路径
--------------------------------------
?$DomUtils.xCreate() - 根据以JSON形式定义癿组件癿模板信息快速癿创建DOM元素
$DomUtils.xCreate({
tagName: "button",
content: "Click Me",// 定义按钮癿标题
style: {// 定义按钮癿style
border: "1px black solid",
backgroundColor: "white"
},
onclick: function() {// 定义onclick事件
alert("Button clicked.");
}
});
-----------------------------------
dorado遍历循环数组list
数组.each() - Dorado7扩展了标准癿Array使乊可支持each迭代,
除Array之外Dorado7还提供EntityList、KeyedList等集合特性癿对象也支持each迭代。
var s = '';
['A', 'B', 'C'].each(function(item) {
s += item;
});
// 最终绌果为s == "ABC"
--------------------
刜步接触一系列对象
–DataSet - 数据集
–DataType - 数据类型(通常用亍描述以数据实体及其中各个属性)
–DataProvider - 用亍为Dorado提供数据(即将业务逡辑层中癿数据寻入刡Dorado中)
–DataResolver - 不DataProvider癿作用相反,用亍将Dorado中癿数据交迓给业务逡辑层。
--------------------------------------------
DataPath癿一些示例(1)
null(即空) - 相当亍直接迒回被查询癿数据。
- 同上。
[#current] -表示顶层集合中癿当前Department。
# - 同上。
[#dirty] - 表示顶层集合中所有在客户端被改变过癿(包含被初除癿)Department。
#.employees - 表示顶层集合中当前Department中所有癿Employee。
#.#employees - 表示顶层集合中当前Department中癿当前Employee。
.departments(R) - 表示除顶层Department外所有其它Department癿集合。
#departments(R) - 表示各层当前Department癿集合。
#departments(leaf) - 表示最末端癿当前Department。即通过丌断癿尝试获取当前Department中癿当前Department,直刡最末端那个Department。
departments(R).employees[@.get("salary")>5000 && @.get("sex")=="male"] - 表示所有Department中癿薪水高亍5000癿男性Employee。
departments(R).employees.id - 表示迒回所有Employee对象癿id属性值癿集合。
----------取值--------------------------------------
DataSet.getData和DataSet.queryData
–getData默认只迒回DataPath命中癿第一笔数据,可能是Entity,也可能是EntityList。
–queryData返回DataPath完整的执行结果,且默认只返回Entity(只在使用#等确定只可能有最多一个命中数据实体癿DataPath时)或Entity癿数组。
-----------------------------------------------
Trigger表示文本编辑框右侧癿快捷按钮
DropDown是Trigger癿一种特例,特指各种下拉框
TabControl比较常用的属性包括:
? AwaysShowButtons 显示导航按钮
? CurrentTab 当前默认的标签页
? ShowMenuButton 显示菜单按钮
? TabMinWidth 标签页签的最小宽度
? TabPlacment 标签页签的显示位置
其它属性可以通过Client API查询。
------------------------
----
在树节点的OnDataRowClick中编写代码打开tab标签页
我们用IframeTab打开tabControl;
// 定义Tab变量
var tab = {};
// self 代表事件所属的控件,此处指 Tree对象
// self.get("currentNode")表示获取当前被点击的节点。
with (self.get("currentNode")) {
// 制定当前的tab为IFrameTab
tab.$type = "IFrame";
// 定义新Tab的标签
tab.caption = get("label");
// 定义Tab的Path
// get("userData")表示获取当前节点的UserData属性,
// 也就是刚才设定的 sample.chapter01.HelloWorld.d
tab.path = get("userData");
tab.name = get("label");
tab.closeable = true;
}
// 如果当前节点有指定的Path则打开新的tab
if (tab.path) {
with (this.get("#tabControl")) {
// 根据name查找是否已经打开过当前的Tab。
// 如果没有打开过,则需要添加一个新的Tab
var currentTab = getTab(tab.name);
if(currentTab){
tab = currentTab;
}else{
// 获取ID为tabControl的对象,并添加一个新的Tab
// 设定ID为tabControl的对象的当前Tab为新创建的Tab
tab = addTab(tab);
}
// 设定当前的Tab为制定的tab
set("currentTab", tab);
}
}
------------------------------------
在action的onSuccess事件中
self.get("returnValue")的含义就是获得ajax调用返回的结果;
例子:
// 获取用户在editor中的输入值
var value = this.get("#editor1.value");
// 把输入的值作为参数传递给action2并触发Ajax2的执行
// 当ajax2执行成功后会触发回调函数方法,在这里就是function(result){..}
// 执行结果作为参数传递给方法。这里的执行结果为result对象
this.get("#action2").set("parameter",value).execute(function(result){
dorado.MessageBox.alert(result);
})
----------------
在button1的onclick事件中编写的代码:
// 获取AjaxAction对象
var action = this.get("#aciton1");
// 调用Dorado提供的prompt方法
dorado.MessageBox.prompt("Please input two numbers here", {
// 默认的值
defaultText: "3,5",
// 当用户提交输入的数值时触发的回调方法,参数为输入的值
callback: function(text){
var nums = text.split(",");
// 将参数拼装成JSON形式
var parameter = {
num1: nums[0],
num2: nums[1]
};
// 调用AjaxAction
action.set("parameter", parameter).execute(function(result){
dorado.MessageBox.alert(nums[0] + " * " + nums[1] + " = " + result);
});
}
});
--------------------=======================================================
ajax返回多个参数例子
后台方法:
@Expose
public Properties getSystemInfo() {
Properties info = new Properties();
info.setProperty("product", DoradoAbout.getProductTitle());
info.setProperty("vendor", DoradoAbout.getVendor());
info.setProperty("version", DoradoAbout.getVersion());
return info;
}
--
在action的onSuccess事件中编写代码:
var info = self.get("returnValue");
dorado.MessageBox.alert("product :" + info.product + "\n" +
"vendor :" +
info.vendor +
"\n" +
"version : " +
info.version);
------------------------------------------------------------------
Listener:这样配置
listener :spring:dynaView1#beforeButton2Init(类#方法名)类注解@Component
Caption :测试按钮
id :button2
-------
if(str.substr(0,4)!="010-" || str.substr(4).length!=8 ||
isNaN(parseFloat(str.substr(4))))
alert("无效的电话号码!");
ocm_commom_if_p.Get_DeptName_ByIds(ISSUE_RANGE) AS ISSUE_RANGE_NAME,
pt6.get_session_info.Get_User_Id NAME,
-----------------
jsp获取根路径
<%@page import="avicit.platform6.commons.utils.ViewUtil"%>
<%
/* String path = request.getContextPath();
out.println(path); */
out.print(ViewUtil.getRequestPath(request)+"platform/ocm/OcmKpiWriteChangeAction/updateZlMapXml.action");
%>
---
路由设条件
流程expr脚本写法
#{流程变量=="1"}
-------------------
数据库里边更改流程按钮的顺序
bpm_button流程按钮
由字段button_order控制
getProcessTaskParameter(formId);
---
||||||||||||||||||||||||||||||||||||||||||||||
流程引擎入口
processEngine
---
组织机构适配器
OrganAdapter比如取所有的用户,或者通过用户id取对象;
|||||||||||||||||||||||||||||||||||||||||||
流程发布主表 bpm_deployment
流程发布子表 bpm_deployprop
流程大字段 表:bpm_lob
流程表单权限配置表: bpm_ext_form_securior
bpm_ext_task_attribute t where t.pd_id='';流程定义id可以把废的流程从表里删掉
bpm_form 流程表单
bpm_hist_procinst t 流程实例表
bpm_hist_task 流程代办表
---
bpm_track 流程跟踪表 流程实例id:hprocl_ select * from bpm_track t where t.hprocl_='20143233';
---------------------
如果只是单线流程
只有一个流程实例id一个executeId;
--------------------
如果有分支的话,有一个流程实例id,多个executeId;
------------------------
保存表单
固定js写法
window.saveFormData = function(processInstanceId,executionId){}
------------------------------------
dataType的onDataChange事件里边
switch(arg.property){
case "ISSUE_RANGE":
var id = arg.newValue;
if($dialogFlag =="PubEdit"){
//通过手写回传值
view.id($subDataName).getCurrentItem().set("issueRange",id)
}else{
//通过手写回传值
view.id($subDataName).getCurrentItem().set("ISSUE_RANGE",id)
}
break;
case "ISSUE_RANGE_NAME":
var deptName = arg.newValue;
if($dialogFlag =="PubEdit"){
//通过手写回传值
view.id($subDataName).getCurrentItem().set("issueRangeName",deptName)
}else{
//通过手写回传值
view.id($subDataName).getCurrentItem().set("ISSUE_RANGE_NAME",deptName)
}
break;
}
-----------------
js处理日期
var date = new Date();
2 date.formatDate("Y-m-d"); // 返回类似"2000-09-25"的字符串
3 date.formatDate("H:i:s"); // 返回类似"23:10:30"的字符串
4 date.formatDate("Y年m月d日 H点i分s秒"); // 返回类似"2000年09月25日 23点10分30秒"的字符串
var dateFrom =review_Date.formatDate("Y-m-d 00:00:00");
var dateTo =review_Date.formatDate("Y-m-d 23:59:59");
dbm文件的日期格式必须是TIMESTAMP-DateTime否则查不出来
parameter.set("P_REVIEW_DATE_From",dateFrom);
parameter.set("P_REVIEW_DATE_To",dateTo);
-----------------------
流程详细页,启动按钮打开详细页方法
top.addTab("人生若只如初见",encodeURI("${web.contextPath}/"+taskUrl+""),"dorado/client/skins/~current/common/icons.gif","taskTodo"," -0px -120px");
替换//parent.window.location.replace(getPath()+"/"+taskUrl);
----------------------------------------------
现在生产的模块实现类里边会报红
1SysLogUtil
import avicit.platform6.modules.system.syslog.service.SysLogUtil;
把上面的替换成下面的这个
import avicit.platform6.core.api.system.syslog.service.SysLogUtil;
-------------------------
/**
* Date转String
* @param {Object} date
*/
date2Str = function(date){
if (date != null) {
var newDate = new Date();
newDate.setTime(date);
var year = newDate.getFullYear();
var month = newDate.getMonth() < 9 ? "0" + (newDate.getMonth() + 1) : (newDate.getMonth() + 1);
var day = newDate.getDate() < 9 ? "0" + newDate.getDate() : newDate.getDate();
var dateStr = year + "-" + month + "-" + day;
return dateStr;
}else{
return "";
}
}
---------------------------------------
/**
* 获取当前登录用户所在部门id以及用户id
*/
@Expose
public String getCurrentDeptId(){
String name = SessionHelper.getLoginSysUser().getName();
String id = SessionHelper.getLoginSysUser().getId();
return SessionHelper.getCurrentDeptId()+","+SessionHelper.getCurrentDeptTl().getDeptName();
}
-----dorodo获取当前登陆用户id当前登录人id
var currentUser = '${session.getAttribute('userId')}';
----=dorado获取部门id
var currentDeptId = '${session.getAttribute('CURRENT_DEPT').getId()}';
--------------------------getSecretLevel
var currentUser = '${session.getAttribute('CURRENT_LOGINUSER').getId()}';
var currentUser = '${session.getAttribute('CURRENT_LOGINUSER').getSecretLevel()}';
//$deptId='${session.getAttribute('CURRENT_DEPT').getId()}';
//$secretLevel='${session.getAttribute('CURRENT_LOGINUSER').getSecretLevel()}';
---------------------------------------------------------------------------
一:在数据的添加时一般注意的方法
在主从表中的添加方法中,在datapilot中的onSubControlAction(self.arg)中的代码是:
var code = arg.code;
switch(code){
case "+":
//得到主表的数据集对象
var dataset = this.get("#dataSetMainSubAddForm");
//得到主表的数据集
var ds = dataset.getData("#");
//根据主表的数据集得到其中的那个reference对应的数据集
var subdataset = ds.get("ocmStraPlanMainChild");
//根据得到的数据集向其中插入一条对象,注意的是:这里的deptId不是数据库中的字段,而是实体类的属性
subdataset.insert({deptId:currentDept.get("id")});
//防止系统自动的添加一行
arg.processDefault = false;
break;
}
-------------------------------------------------
http://blog.csdn.net/q326527970/article/details/6966317
http://blog.csdn.net/q326527970/article/category/928276
http://wiki.bsdn.org/pages/viewpage.action?pageId=9176117
http://wiki.bsdn.org/pages/viewpage.action?pageId=3670442
var dsBranch = this.id("dsBranch");var branch = dsBranch.getData("#");//获取当前的分公司实体对象var dept = dsBranch.getData("#.#.dept");//获取当前分公司的当前部门实体对象var employee = dsBranch.getData("#.#dept.#employee");//获取当前分公司的当前部门的当前员工实体对象
------------------------------
var parameter = view.get("#queryForm.entity");
var actCode = parameter.get("actCode");
---------------table 列上的onGetCellEditor事件置空列值
arg.data.set("ISSUE_RANGE_NAME",'')
arg.data.set("ISSUE_RANGE",'')
--------------table列上onRenderCell 上语法dom对象
arg.dom.innerHTML="";
------------查询处理日期
var dateFrom = view.get("#dataSetQuery").getData("#").get("P_CHECK_DATE_FROM");
var dateTo = view.get("#dataSetQuery").getData("#").get("P_CHECK_DATE_TO");
//将查询区审核开始时间设置为当天最小时间--审核结束时间设置为最大时间
if(typeof(dateFrom)!='undefined'){
dateFrom = dateFrom.formatDate("Y-m-d 00:00:00")
view.get("#dataSetQuery").getData("#").set("P_CHECK_DATE_FROM",dateFrom)
}
if(typeof(dateTo)!='undefined'){
dateTo = dateTo.formatDate("Y-m-d 23:59:59")
view.get("#dataSetQuery").getData("#").set("P_CHECK_DATE_TO",dateTo)
}
var parameter = view.get("#queryForm.entity");
view.get("#dataSetMcjBusinessInfo").set("parameter",parameter).flushAsync();
--------------------------------
form中的Link
href:javascript:window.showMainFileUpload("QUALITY_MANAGE_FILE")
------------------------------
///控制列表只能单选 begin 2013-07-07 DingRui/
var dataGrid = view.get("#MainData");
var selections = dataGrid.get("selection");
if (selections.length == 0) {
dorado.MessageBox.alert("请选择记录");
return "false";
}
if (selections.length > 1) {
dorado.MessageBox.alert("只允许选择一条数据记录!");
return "false";
}
///控制列表只能单选 end/
parseInt($secretLevel);
planDate.substring(0,4)
var date = new Date();
var Y=date.getFullYear();
var M=(date.getMonth())+1;
var D=date.getDate();
----------------table 行背景颜色-----------------
//反馈时间
var factFinishDate = arg.data.get("FACT_FINISH_DATE");
//里程碑时间
var planDate = arg.data.get("PLAN_DATE");
//当前系统时间
var date = new Date();
var Y=date.getFullYear();
var M=(date.getMonth())+1;
var D=date.getDate();
//里程碑年\月\日
planDateY = planDate.formatDate("Y-m-d").substring(0,4);//2012-12-09
planDateM = planDate.formatDate("Y-m-d").substring(5,7);
planDateD = planDate.formatDate("Y-m-d").substring(8,10);
//反馈时间
var factFinishDate = arg.data.get("FACT_FINISH_DATE");
//里程碑时间
var planDate = arg.data.get("PLAN_DATE");
//当前系统时间
var date = new Date();
var date1= date.formatDate("Y-m-d");
var date2 = date1.replace(/-/g,"/");
var toDate = new Date(date2);
var planDate1= planDate.formatDate("Y-m-d");
var planDate2= planDate1.replace(/-/g,"/");
var toPlan = new Date(planDate2);
if(factFinishDate != null && factFinishDate !=""){
var factFinishDate1= factFinishDate.formatDate("Y-m-d");
var finishDate2= factFinishDate1.replace(/-/g,"/");
var toFinish= new Date(finishDate2);
if(toFinish.getTime()>toPlan.getTime()){
arg.dom.style.background = "#FFFF00";//黄色
}else{
arg.dom.style.background = "#00B050";//绿色
}
}else{
if(toDate.getTime()>toPlan.getTime()){
arg.dom.style.background = "#FF0000";//红色
}else{
arg.dom.style.background = "#000798";//蓝色
}
}
//alert(toFinish.getTime());
--------------------------------------------------------------------------
/**
* 随机生成32位字符串
*/
$getRandomString = function(){
len = 32;
var $chars = '0123456789abcdefhijkmnprstwxyz'; // 默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1
var maxPos = $chars.length;
var pwd = '';
for (i = 0; i < len; i++) {
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
}
return pwd;
}
----------------------------------
//在保存按钮的事件里边调用检验中文长度的校验
///获得中文字符长度 begin 2013-07-01 DingRui//////////
String.prototype.getBytes = function(){
var cArr = this.match(/[^\x00-\xff]/ig);
return this.length + (cArr == null ? 0 : cArr.length);
}
///获得中文字符长度 end//////////
///校验字段的长度 begin 2013-07-01 DingRui//////////
//在dataType的字段上,添加自定义效验,
lengthValidate = function(fields, describe, length){
var flag = true;
var data = view.get("#dataSetOcmKpiWrite.data:#");
var field = data.get(fields);
if(field != null){
if(field.getBytes() > length){
dorado.MessageBox.alert("【" + describe + "】文本内容过多,长度应小于" + length + "个字符!");
flag = false;
}
}
return flag;
}
///校验字段的长度 end//////
例子:if(describe != null){
if(describe.getBytes() > 1000){
dorado.MessageBox.alert("【描述】文本内容过多,长度应小于1000个字符!");
return;
}
}
////金额格式 displayFormat:#,##0.00
///////////////////////////
var adata = arg.data;
var id = adata.get("ID");
var data = view.get("#dataSetFeedBack.data").first();
var count = 0;
while(data!=null){
var fid = data.get("MCJ_PRODUCT_INFO_ID");
if(fid==id){
count++;
}
data = view.get("#dataSetFeedBack.data").next();
}
if(count>0){
var javaScript ="javascript:showFeedInfo('"+arg.data.get("ID")+"','"+arg.data.get("PRODUCT_NAME")+"')" ;
arg.dom.innerHTML="编辑"
}else{
var javaScript ="javascript:showFeedInfo('"+arg.data.get("ID")+"','"+arg.data.get("PRODUCT_NAME")+"')" ;
arg.dom.innerHTML="填写"
}
-----------------------------------------------------------------
view 的onCreate事件中调用后台
$importDocByArmyDemand= function(){
//获取查询区数据
var data = view.get("#dataSetQuery").getData("#");
var unitName = typeof(data.get("P_UNIT_NAME")) == 'undefined' ? "" : data.get("P_UNIT_NAME") ;
var manageDept = typeof(data.get("P_MANAGE_DEPT")) == 'undefined'? "" : data.get("P_MANAGE_DEPT") ;
var hrDeptName = typeof(data.get("P_HR_DEPT_NAME")) == 'undefined' ? "" : data.get("P_HR_DEPT_NAME") ;
var unitType = typeof(data.get("P_UNIT_TYPE")) == 'undefined'? "" : data.get("P_UNIT_TYPE") ;
var provinceCode = typeof(data.get("P_PROVINCE_CODE")) == 'undefined'? "" : data.get("P_PROVINCE_CODE") ;
var dataParas = "unitName="+unitName+"&manageDept="+manageDept+"&hrDeptName="+hrDeptName+ "&unitType="+unitType+"&provinceCode="+provinceCode;
dorado.MessageBox.confirm('确认生成军用单位名录编制?',function(){
var urls = '${web.contextPath}/platform/mcj/mcjarmyinfoword/mcjArmyInfoExpWord?'+ encodeURI(dataParas);
window.open(urls,"_self");
});
}
------------------------------------------------------------------------------
---view全选然后将对象放入数组中
!function(){
var uploadAction = view.get('#uaUpload2');
var selections = view.get('#dgFiles.selection');
if(!selections || selections.length == 0){
return;
}
if(!selections.length){
selections = [selections];
}
var selectionCopy = [];
for (var i = 0; i < selections.length; i++) {
selectionCopy.push(selections[i]);
}
for(var i=0;i
if(entity){
uploadAction.removeFile(entity.get('id'));
entity.remove();
}
}
};
----------------------------------------------
获取dataset对应的查询form表单的值
var entityList = this.id("dataSetOmsMonthReportGrid").queryData ();
--------------------------------------------
dataTyp中只有id的时候,还有一种方式显示name页不用写视图
引入一个虚拟字段.reference,设置属性:dataProvider:类#方法
parameter:$${this.BUSINESS_TYPE}
-0-------------------------
给文本框赋值
this.get("#TextEditor_Id").doSetText("我的全部");
取值
this.get("#TextEditor_Id.value")
---------------------
------------------------===
文本框的Map属性加通用代码,trigger属性设置属性
给文本框加一个下拉列表,在属性上绑定trigger/然后在TextEditor的属性onAttributeChange中写入下面代码
实现树动态扩展层次。(dataTreeGrid控件的层次扩展)
var treeGird = this.id("weaveOmsPlanOperateTreeGrid");
switch (this.get("#treeExpendText.value")) {
case "1":
treeGird.get("bindingConfigs")[0].expandLevel = 1;
this.id("dataSetOmsPlanOperateGridV").flush();
break;
case "2":
treeGird.get("bindingConfigs")[0].expandLevel = 2;
this.id("dataSetOmsPlanOperateGridV").flush();
break;
case "3":
treeGird.get("bindingConfigs")[0].expandLevel = 3;
this.id("dataSetOmsPlanOperateGridV").flush();
break;
case "4":
treeGird.get("bindingConfigs")[0].expandLevel = 4;
this.id("dataSetOmsPlanOperateGridV").flush();
break;
case "5":
treeGird.get("bindingConfigs")[0].expandLevel = 5;
this.id("dataSetOmsPlanOperateGridV").flush();
break;
}
------------------------------------------------------------
给树节点添加图表
在dataTreeGrid的属性onRenderNode事件里边写下面代码
var node = arg.node,data = node.get("data");
if (data.get("planType") == '1') {
$(arg.dom).empty().xCreate([{
tagName: "IMG",
src: $url(">images/wbs.gif"),
style: "left: 4px;top: 4px"
},{
tagName: "SPAN",
contentText: node.get("label")
}]);
}
if (data.get("planType") == '2') {
$(arg.dom).empty().xCreate([{
tagName: "IMG",
src: $url(">images/task.gif"),
style: "left: 4px;top: 4px"
},{
tagName: "SPAN",
contentText: node.get("label")
}]);
}
if (data.get("planType") == 'PRO') {
$(arg.dom).empty().xCreate([{
tagName: "IMG",
src: $url(">images/pro.gif"),
style: "left: 4px;top: 4px"
},{
tagName: "SPAN",
contentText: node.get("label")
}]);
}
-----------------------------------------------
当前树,判断满足逻辑条件后的节点显示显影
///////////
var treeGrid = this.id("weaveOmsPlanOperateTreeGrid");
//获去项目信息节点实例
var firstNode = treeGrid.get("firstNode");
var firstEntity = firstNode.get("data");
var fbUserId = firstEntity.get("puid");//项目信息节点发布范围人员userIds
var projPrincipal = firstEntity.get("projPrincipal"); //项目信息节点项目主管
var hrDeptId = arg.data.get("hrDeptId");//当前树节点部门id
if(arg.data.get("planName")!=undefined){
//当前节点不为根节点时
if(arg.data.get("id")!=firstEntity.get("id")){
//当前用户 不为 项目信息项目主管
if(projPrincipal!=$currentUserId){
//当前登录人部门与经营计划节点责任部门不一致时
if($currentDeptId!=hrDeptId){
//当前登录人不在项目信息节点的发布范围内
fbUserId=","+fbUserId+",";
var curUserId = ","+$currentUserId+",";
if(fbUserId.indexOf(curUserId)==-1){
var currentNodes = 0;
var currentParents = 0;
var childCommand = view.get("#selectActionChildIsYz");
childCommand.set("parameter",{nodeId:arg.data.get("id")}).execute(function(result){
currentNodes = result;
});
var selectParentNodesMatchHrDeptId = view.get("#selectParentNodesMatchHrDeptId");
selectParentNodesMatchHrDeptId.set("parameter",{id:arg.data.get("id"),hrDeptId:hrDeptId}).execute(function(result){
currentParents = result ;
});
//alert("currentNodes="+currentNodes+"currentParents="+currentParents);
if(currentNodes !=1 && (currentParents==0 || currentParents==null)){
//删除当前节点
arg.node.remove();
}
}
}
}
}
}
-----------------------------------------------------------------------------------------------
根据条件动态的给树节点显示复选框,树的onDataNodeCreate事件中
if (arg.data.get("planStatus")=="1" && arg.data.get("planStatus")!="9"){
arg.node.set("checkable",true);
}
if (arg.data.get("planStatus")=="9" && arg.data.get("parentId")=='ROOT' && arg.data.get("planType")=='PRO'){
var action = view.get("#issueCountAction");
var id = arg.data.get("id");
action.set('parameter',{'id':id}).execute(function(result){
if (result !=1 ){
arg.node.set("checkable",true);
}
})
}
----------------------------------------
在dataTreeGrid的事件onNodeCheckedChange
var treeGrid = view.get("#omsPlanOperateTreeGridSendAuditing");
var currentNode = treeGrid.get("currentNode");
//当前数据的父节点
var checkable = currentNode.get("checkable");
if (checkable==true){
if (currentNode.get("checked")==true){
$checkchild(currentNode);
}else{
$uncheckchild(currentNode);
}
}
/**
* 选中所有的子节点
* @param {Object} treeGrid
*/
$checkchild = function(currentNode){
// 判断是否存在复选框
currentNode.set("checked",true);
var hasChildIs = currentNode.get("hasChild")
if (hasChildIs==true) {
currentNode.expand();
var nodes = currentNode.get("nodes");
var curNode;
if (nodes != null) {
var iter = nodes.iterator();
while (iter.hasNext()) {
curNode = iter.next();
var checkable = curNode.get("checkable");
if (checkable==true){
curNode.set("checked",true);
}
$checkchild(curNode);
}
}
}
}
---
/**
* 不选中所有的子节点
* @param {Object} treeGrid
*/
$uncheckchild = function(currentNode){
// 判断是否存在复选框
currentNode.set("checked",false);
var hasChildIs = currentNode.get("hasChild")
if (hasChildIs==true) {
currentNode.expand();
var nodes = currentNode.get("nodes");
var curNode;
if (nodes != null) {
var iter = nodes.iterator();
while (iter.hasNext()) {
curNode = iter.next();
var checkable = curNode.get("checkable");
if (checkable==true){
curNode.set("checked",false);
}
$uncheckchild(curNode);
}
}
}
}