当前位置: 首页 > 工具软件 > Dorado7 > 使用案例 >

dorado 刷新_dorado7常用内容

通骁
2023-12-01

1.dataset添加数据

this.get("#dsProduct").getData().insert();

或者this.get("#dsProduct").insert();

this.get("#dsProduct.data").insert();推荐使用

“#dsProduct.data”表示拿到数据对象

2.删除当前选择记录

var record = this.get("#dsProduct.data:#");

if (record) {

dorado.MessageBox.confirm("确认要删除当前记录吗?", function(){

record.remove();

});

}

else {

dorado.MessageBox.alert("当前没有数据可以删除!");

}

//获得当前dataset的字段,并赋值(dorado7升级包,特别注意)

var pkVipCustomer = view.get("#dsVipCustomer.data:#").get("PK_COO_CRM_VIPCUSTOMER");

view.get("#dsVipCustomerCoop").set("parameter",{

pkVipCustomer: pkVipCustomer,

org:"test"

});

//含有下级Reference

view.get("#dsPrCenter").getData("#").getData("#stmain");

view.get("#dsPrCenter").getData("#.#stmain");

3.dataset放弃当前操作数据

this.get("#dsProduct.data:#").cancel();

4.显示dialog对话框

this.id("dialogEdit").show();

this.get("#dialogEdit").show();

5.隐藏dialog对话框

this.get("#dialogEdit").hide();

6.参数查询,其中默认情况下Entity中存储数据的key值使用每一个AutoFormElement的name属性;如果使用了property属性,那么key将使用property属性设定的值

var entity = this.get("#autoForm1.entity");//保证json对象内部的参数与后台接受的parameter参数名相同

this.get("#dsProduct") .set("parameter",entity).flushAsync();

//获得AutoForm中的entity内容

var entity = this.id("recAutoForm").get("entity");

alert(entity.length+" "+entity.width);

7.获得当前实体对象数据的“产品名称”

dorado.MessageBox.alert(this.get("#dsProduct.data:#.productName"));

8.对实体对象属性设值

this.set("#dsProduct.data:#.productName","testValue");

9.通过json对象赋值,清除查询框内容

this.set("#autoForm1.entity", {

productName: null,

unitsInStock: null

});

//升级版本

view.get("#themeDetailForm.entity").set("REASON_MEMO","");//设定当前编辑框值为空

10.ListDropDown和AutoMappingDropDown的区别

ListDropDown ==》self.set("value",1);系统直接会将数值1赋给文本域

AutoMappingDropDown ==》self.set("value",1);系统会根据对应的文本域的属性mapValues绑定的Entity进行映射显示。

例如这里映射的Entity对象为1 男,0 女。在这里文本域会根据设置显示为“男”

11.通过点击菜单节点,获得当前节点对应dataset的entity对象对应的属性

var node = self. get("currentNode");

if(node.get("level")==3){

//获得当前节点对应的数据实体对象

var entity = self.get("currentNode.data");

//通过实体对象名称.属性获得指定的属性值

var id = entity.get("example.id");

//刷新对应的dataset

this.get("#dsExample").set("parameter",id).flushAsync();

}

12.TabControl中tab的切换

// 通过tab的name属性切换

view.get("#tabControl").set("currentTab","tab2");

// 通过tab的索引(index)属性切换

view.get("#tabControl").set("currentIndex",1);

//根据名字切换tab

var tab = self.get("currentTab").get("name");

if(tab!="tab4"){

view.id("tabControl").disableTab("tab4");

}

13.对AutoForm表单中的字段设定只读和是否显示

var element = view.get("#themeDetailForm").getElement("REASON_MEMO");

element.set("readOnly",false);

view.get("#procTopicHeaderForm").getElement("TOTAL_SCORE").set("visible",false);

14.对按钮的控制显示

view.get("#btnPrint").set("visible",true);

15.EntityList的遍历

var datas = this.id("dsHeader").getData("#.detail");

datas.each(function(entity){

alert(entity.get("RIGHT_MODE"));

alert(entity.get("RIGHT_ITEM"));

});

//获取当前选择的项

var datas = this.get("#dgProcZperright").get("selection");

var flag = false;

//遍历选择项,判断当前被遍历的数据是否包含已生成试卷的项

datas.each(function(entity){

var isCreatePaper = entity.get("IS_CREATE_PAPER");

//若有调整,若无执行生成过程

if(isCreatePaper=="1"){

flag = true;

return false;

}else{

flag;

}

});

//若有调整,若无执行生成过程

if(flag==true){

dorado.MessageBox.alert("当前选择项包含已生成试卷的项,请调整!");

}else{

}

//选择项是否选择(false代表未选中,true代表被选中)

view.id("sourceGrid").set("selection","false");

alert(view.id("sourceGrid").get("selection"));

//设定为单项选择项

view.get("#sourceGrid").set("selectionMode","singleRow");

//判断选择的项数量

var entity = view.id("sourceGrid").get("selection");

if(entity.length>1){

}

16.获取Reference对应的DataType中的字段

var entity = this.id("dsHeader").getData("#.#detail");

alert(entity.get("RIGHT_MODE"));

var entity = view.get("#dataSetGroup.data:#.#users");

alert(entity.get("username"));

17.dataset中数据传递set

//由于RIGHT_MODE字段的无法保存数据,使用了自定义字段MODE替代,传递后台保存数据

var entity = this.id("dsHeader").getData("#.#detail");

var right_mode = entity.get("RIGHT_MODE");

if(right_mode!=null){

entity.set("MODE",right_mode);

}

18.关闭下拉框

view.id("customDropDown").close(value);

19.获得dataset的当前记录常用的写法

var entity = view.get("#dataSetGroup.data:#.rp_confield_desc");

var entity = view.id("dataSetGroup").getData("#.rp_confield_desc");

var entity = view.get("#dataSetGroup.data:#");

var a = entity.get("rp_confield_desc");

var entity = view.get("#dataSetGroup.data:#").get("rp_confield_desc");

20.action的参数传递方式,以及获得返回值

var rightMode = "";

view.id("actGetPatter").set("parameter",{

"tableName" : tableName,

"fieldName" : fieldName

}).execute(function(result){

rightMode = result.RIGHT_MODE;

});

后台对应的方法

public Map getPatter(String tableName, String fieldName) {}

20.//iReport的下载和在线预览

bdf.JasperReports.prototype.showReport=function(jasperFile,parameters){}

bdf.JasperReports.prototype.downloadReport=function(jasperFile,type,parameters){}

21.通过业务的某个字段在刷新后再次定位到当前数据实体

var entity1 = view.get("#dataSetUser.data:#");

var entityList = view.get("#dataSetUser.data");

view.get("#dataSetUser").set("pageNo",2);

view.get("#dataSetUser").flushAsync();

//entityList.first();

entityList.each(function(entity){

if(entity1.get("username")==entity.get("username")){

entityList.setCurrent(entity);

}

});

22.view中定义公用的function

self.resetUserPhoto = function(){}

window.changeUserPhoto = function(img){}

window.self 功能:是对当前窗口自身的引用。它和window属性是等价的。语法:window.self。注:window、self、window.self是等价的。

window.top 功能:返回顶层窗口,即浏览器窗口。 语法:window.top 注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用。

window.parent 功能:返回父窗口。语法:window.parent 注:如果窗口本身是顶层窗口,parent属性返回的是对自身的引用。

23.动态创建按钮并关闭父页面的dialog

this.createButton = function(){

view.addChild(new dorado.widget.Button({

id: "saveButton",

caption: "中途提交",

action: "SavePersResult",

icon: "url(>skin>common/icons.gif) -20px 0px",

onClick: function(self,arg){

view.id("SavePersResult").execute();

//关闭父页面

window.parent.$id("dialogTopicDetail").objects[0].hide();

} }));

}

将控件添加到AufoForm中

this.createMidButton = function(){

view.id("form").addElement(new dorado.widget.Button({

id: "saveMidButton",

caption: "中途提交",

action: "SavePersResult",

icon: "url(>skin>common/icons.gif) -20px 0px",

onClick: function(self,arg){

view.id("SavePersResult").execute();

if (window.parent.$id("dsTopicList").objects[0].getData("#").get("IS_CREATE_PAPER") == "0") {

window.parent.$id("dsTopicList").objects[0].getData("#").set("IS_CREATE_PAPER","1");

window.parent.$id("updateAction1").objects[0].execute();

}

//关闭父页面

window.parent.$id("dialogTopicDetail").objects[0].hide();

} }));

}

24.修改TextEditor的文字样式以及边框颜色

在onRefreshDmo添加

$(self.getDom().firstChild).css("color","yellow");

var oHead = oHtml.firstChild;

var oBody = oHtml.lastChild;

var oHead = oHtml.childNodes.item(0);

view.set("#text.style",{

"border": "1px #FC3737 solid",

color: "red"

});

24.返回datagrid的rownumcolumn的序列号,其中rowmun的下表从0开始,所以取值的时候位index+1

var grid = view.id("dgPrStitem");

var entity = grid.getCurrentItem();

var row = grid.get("itemModel").getItemIndex(entity)+1;

alert(row);

24.datagrid数据行的上下移动

//datagrid中数据向下移动一行(向上移动的效果思路一致)

//思路:

//1. 首先获得当前移动的数据entity,并且将光标移到到下一行move(1);

//2. 其次记录移动后光标定位的数据eneity,并且将上一行的数据remove掉;

//3. 最后将原本的entity数据insert到光标定位到当前行的后面。

//这样整体上形成的效果就是数据向下移动

var grid = view.id("dgPrStitem");

var entity = view.id("dsPrStitem").getData("#");

var entityList = view.id("dsPrStitem").getData();

entityList.move(1);

entityList.remove(entity);

//获得当前数据的序列号,修改移动后数据的序列号

var currentity = view.id("dsPrStitem").getData("#");

var rown = grid.get("itemModel").getItemIndex(currentity)+1;

currentity.set("RANK_ORDER",rown);

//添加的数据,并修改序列号

entityList.insert(entity,"after",currentity);

var insertentity = view.id("dsPrStitem").getData("#");

var rowns = grid.get("itemModel").getItemIndex(insertentity)+1;

insertentity.set("RANK_ORDER",rowns);

insertentity.setState(dorado.Entity.STATE_MODIFIED);

view.id("actStItem").execute();

25.bdf对页面布局的保存和重置

保存界面

var componentProfile = new bdf.ComponentProfile.DataGrid();

componentProfile.saveGridSet(this,"gridMain");

重置界面

var componentProfile = new bdf.ComponentProfile.DataGrid();

componentProfile.resetGrid(this,"gridMain");

26.CheckBox换行问题

不考虑在默认支持此功能,给两个解决办法:

1. 使用exClassName

比如为CheckBox定义一个exClassName是d-checkbox-multiline,然后这么定义CSS:

.d-checkbox-multiline {

height: auto;

}

.d-checkbox-multiline .caption{

white-space: normal;

}

RadioButton类似。

2. 既然使用了HtmlContainer,就使用原生的Html中的CheckBox和RadioGroup。

27.datagrid列头换行问题

onRenderHeaderCell 事件中写

arg.dom.innerHTML="1
2
3";

28.自定义控件创建

var dom = jQuery(arg.dom);

dom.empty();

dom.xCreate({

tagName: "Button",

content: "打印",

onclick: function(){

alert(11);

}

});

29.鼠标指针移动到指定的对象上时发生

在控件的onCreateDom()中添加

arg.dom.onmouseover = function(){

//这里面处理

dorado.widget.NotifyTipManager.notify("鼠标移动到我上面时,会自动出现提示信息!");

}

30.鼠标移动到某个控件上让鼠标指针变成小手

添加style cursor:pointer

31.树节点的处理(递归树)

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

/**

* 获得所有的顶级节点

*/

//根节点,此节点时树状列表内部的顶层节点

var root = self.get("root");

var nodes = root.get("nodes");

//节点记录的变量

var labels = "", label = "", childLabels = "", rootLabel="", childNodes, childChecked, count = 0;

//遍历根节点

nodes.each(function(node){

var checked = node.get("checked");

//checked包含三种状态,选中(true)、半选中(null)、不选中(false)。当为true、null时表示选中

if(checked!=false){

count++; //父节点计数器

rootLabel = node.get("label"); //父节点

label = getChildNode(node); //子节点

if(childLabels){

childLabels="";

}

//拼接label字符串

labels += count+"."+rootLabel +": "+ label+"; ";

}

});

//将拼接的label赋值给label

view.id("label4").set("text",labels);

/**

* 处理递归子节点的函数

* @param {Object} node

*/

function getChildNode(node){

//判断当前选中节点是否展开,并是否包含被选中的子节点

if(node.get("expanded")==true){

childNodes = node.get("nodes");

childNodes.each(function(childNode){

childChecked = childNode.get("checked");

if(childChecked!=false){

if(childLabels){

childLabels += ","+childNode.get("label");

}else{

childLabels+=childNode.get("label");

}

//递归函数调用

getChildNode(childNode);

}

});

return childLabels;

}

}

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

32.DataGrid的DataColumn中定义CheckBox

1】设定DataType字段为boolean类型,对应的DataColumn自动为CheckBox;

2】设定DataColumn的renderer属性为dorado.widget.grid.CheckBoxCellRenderer

3】非Boolean类型CheckBox用法设置

/*

var CellRenderer = $extend(dorado.widget.grid.SubControlCellRenderer,{

createSubControl: function(arg){

//创建单元格内部的DOM元素

return new dorado.widget.CheckBox({

caption: "A类"

});

},

refreshSubControl: function(button,arg){

//当渲染单元格时触发,在这个事件中可以通过arg.data获取当前的实体对象

}});

self.set("renderer",new CellRenderer());//最后设置名称为operation的DataColumn的渲染器为自定义的CellRenderer

*/

/*

var CellRenderer = $extend(dorado.widget.grid.SubControlCellRenderer, {

createSubControl : function(arg) {

//创建单元格内部的DOM元素

if (arg.data.rowType){

//arg.data代表当前的实体对象,可根据实体对象的值动态的调整下列内容的创建

return null;

}

//创建CheckBox

return new dorado.widget.Container(

{ "children":[

{ "$type":"CheckBox", "caption":"A类", "onValue":"A",

"listener":{

"onValueChange":function(self,arg){

//alert(self.get("value"));

}

}

},

{ "$type":"CheckBox", "caption":"B类","onValue":"B",

"listener":{

"onValueChange":function(self,arg){

//alert(self.get("value"));

}

}

},

{ "$type":"CheckBox", "caption":"C类","onValue":"C",

"listener":{

"onValueChange":function(self,arg){

//alert(self.get("value"));

}

}

} ],

"layout":{ "$type":"HBox" }, "height":30

});

},

//当渲染单元格时触发,在这个事件中可以通过arg.data获取当前的实体对象

refreshSubControl : function(container, arg) {

var entity = arg.data;//获取当前行对应的Entity对象

var checkboxs = container.get("children");

checkboxs.each(

function (checkbox){

var caption = checkbox.get("caption");//获取caption

}

);

}

});

self.set("renderer", new CellRenderer());

arg.processDefault=true;

*/

33.Label内容加粗

style添加font-weight=bold

34.鼠标指针

//获得鼠标的位置

var clientX = arg.event.clientX;

var clientY = arg.event.clientY;

//指定画中机关在指定区域内显示,否则隐藏

if ((clientY > 20) && (clientX > 300)) {

view.id("floatPanel1").set("visible",true);

view.id("floatPanel2").set("visible",true);

view.id("floatPanel3").set("visible",true);

}else {

view.id("floatPanel1").set("visible",false);

view.id("floatPanel2").set("visible",false);

view.id("floatPanel3").set("visible",false);

}

35.调用dom事件(onrefreshDom)

arg.dom.onmousemove = function(){

view.id("floatPanel1").set("visible",true);

view.id("floatPanel2").set("visible",true);

view.id("floatPanel3").set("visible",true);

}

arg.dom.onmouseout = function(){

view.id("floatPanel1").set("visible",false);

view.id("floatPanel2").set("visible",false);

view.id("floatPanel3").set("visible",false);

}

36.IFrame的内置对象

var windows = view.id("iframe1").get("iFrameWindow");

var container = windows.$id("containerA").objects[0];

 类似资料: