1. 表单功能及事件

1.1. 功能

1.1.1. 弹窗

1.1.2. popwin

例如:明细表中弹窗显示业务单(其中242为要展示的目标业务ID,ord2_sqordid为明细中存储的目标业务实例ID)

方法一:td书信中配置

onclick="popwin(70%,50%,/order/biz.htm?crmid=242&ordid={ord2_ordid},项目合同)"

方法二:td书信中配置(相对第一种更简短) onclick="popwin1order(242,{ord2_sqordid},项目合同)"

1.1.3. dialog

dialog(_w_w, _w_h, url, title, _lfun, _rfun, _cfun)

  1. 调用弹窗
dialog("+700", "+480", "/uri?nocache=0&mydpid=" + dpid + "&dptitle=" + tohex(dptitle), "标题栏" ,
function(winid){//弹窗页面onload时执行 winid形如:_w1w2_, 
  $("#ebswin_"+winid+"_frame") = 弹窗页面window content对象
},function(){//返回结果回调

},function(winid,closefunction){//close window callback, winid形如:_w1w2_,默认点击 叉 关闭时,closefunction = true
  $("#ebswin_"+winid+"_frame") = 弹窗页面window content对象
});
  1. 弹窗页面逻辑

    1.设置底部按钮

    setdialogbuttons(buttons, height, alignStyle, backcolor, topline, promptinfo)

setdialogbuttons(["新增","完成","close"],null,"center") ;

​ 2. 设置点击按钮的处理逻辑

function dialogbuttonclick(buttonindex)
{

    if (buttonindex == 0) {
        add(1);
    }
    if (buttonindex==1) 
    {
        save(2) ;
    } 
}
  3. 直接返回结果,由dialog函数的回调事件处理
//返回并关闭窗口
dialogreturn(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15) 
//返回不关闭窗口
dialogreturnnoclose(r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13, r14, r15) 

1.1.4. 临时主表数据存储

/*立即保存业务单主表数据*/
function immediate_save_order(){
    var error1 ="";
    myapply("",true,"order_"+crmid+"_modify",{ordid:ordid,jbid:jbid,prevfield:"ord_"},null,
    function(iseof,data1,dsname1)
    {
        if (!iseof && $flds[0]=='operation' && ($f[0]=='error' || $f[0]=='abort')) 
        {
            error1 = isnull($f[1],"发现了错误") ;
        } 
        else if(dsname1=="error") 
        {
            error1 = data1 ;
            alert("数据保存出错:"+error1) ;
            return ;
        } else 
        if (!dsname1)
        {
            info("保存成功") ;
        } ;
    }) ;
}

1.2. 事件

表单事件指表单中,EBS系统提供的扩展事件,每个表单这些事件需要我们自己定义。当系统完成某些操作(如:表单加载完成)时,系统会调用
这些事件,由此完成部分系统不支持的非通用功能。

1.2.1. 通用事件

  • afterloaded,业务单加载完成后
/*
*可用对象:
*1.order: 记录主表的所有字段的对象,获取字段方式与json对象一致
*2.orderx:记录明细表x的所有记录的对象,其中每条明细,以order2[+ord2id]方式获取,具体其中字段内容,直接在上述结果的基础上以json
*方式获取即可。 欲获取明细表,其tag=2,取记录ord2_id=2的店铺编号字段:order2["_2"].ord2_dpbh或order2["_2"]["ord2_dpbh"]
*/
function afterloaded(){ 
/*这里写你的逻辑*/  
}
  • inputchange,输入框发生改变后
function inputchange(obj1){
    var name1 = $(obj1).getAttr("name","");
    if(name1 == "ord2_kssj"){
        if(browser.ismobile){
            var trvalue = $(obj1).parent("tr").getAttr("value","");
            var ks = $(obj1).myval();            
            $("tr[value='"+trvalue+"']").each(function(i,e){
                $("td[name='ord2_jssj']",e).myval(ks);
            })
        }else{
            var trobj = $(obj1).parent("tr");
            var ks = $("[name='ord2_kssj']",trobj).myval();
            var js = $("[name='ord2_jssj']",trobj);
            js.myval(ks);
        }        
    }
}
  • afterpick,弹窗或下拉选择后,可用变量待测试
/*
*result.name=当前对象名  .value=返回的ID  .text=返回的内容 
*/
function afterpick(obj1){

}

1.2.2. 主表事件

1.2.3. 明细事件

  • afternewdetailx,选择器选择数据到明细表后,x未明细表tag
/**
*可用对象:
*result={} ;
*result.object:调用选择器的对象;
*result.val=选择xml原始数据,用于dom操作;        
*result.display:显示,废弃参数,可忽略 ;    
*/
function afternewdetail2(){
    var t1s = result.val.getElementsByTagName("t1");
    for(var i=0 ;i<t1s.length;i++){
        var dpbh = t1s[i].getElementsByTagName("ord2_dpbh")[0].innerHTML;
        if(dpbh>''){
            var ord2id = t1s[i].getElementsByTagName("ord2_id")[0].innerHTML;    
            var tar = $("tbody[name=details_auto] tr[value='"+ord2id+"'] td[name='ord2_xcmdd']");
            tar.attr("editable","1").find("input").attr("readonly","true");
            tar.next().removeClass("clear");
        }
    }
}

results matching ""

    No results matching ""