zoukankan      html  css  js  c++  java
  • dorado7常用内容

    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<String, Object> 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<br>2<br>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];

  • 相关阅读:
    指针作为函数参数
    二级指针与多级指针
    指针数组与数组指针
    指针与数组
    指针引入
    Python中调用自然语言处理工具HanLP手记
    HanLP中的人名识别分析详解
    自然语言处理中的分词问题总结
    Hanlp实战HMM-Viterbi角色标注中国人名识别
    Hanlp中使用纯JAVA实现CRF分词
  • 原文地址:https://www.cnblogs.com/520future/p/8232625.html
Copyright © 2011-2022 走看看