luyihuaa5201 发表于 2008-3-27 10:23

在线等!~

为什么我做的if判断的时候  ,第一次满足条件不进入执行,非要第二次满足时才执行呀??

lmhllr 发表于 2008-3-27 11:03

请贴代码,谢谢!

luyihuaa5201 发表于 2008-3-27 11:09

//功能:处理每一个sheet
function uf_processOneSheet(p_app,p_sheet,p_index,p_group)
{
    var ls_objRows = p_sheet.getRows();
   
    uf_GetAllgroups(p_group);
    var ls_objectDefs = new Array();
    for(var c = 0 ;  c < l_gps.length ; c ++)
    {
        var ss = l_gps[c].ObjDefListFilter(Constants.OT_RISK);
        ls_objectDefs = ls_objectDefs.concat(ss);
    }
    var p_objectDefs = new Array();
   
    for(var e = 0 ; e < ls_objRows.length ; e++ )
    {
        var num1 = 0 ;
        var ls_objID = p_sheet.cell(e,2).getStringCellValue();
        if(ls_objID != "")
        {
            for(var d = 0 ;  d < ls_objectDefs.length ; d ++)
            {
                var ls_objectDefValue = ls_objectDefs[d].Attribute(Constants.AT_NAME,gn_loc).getValue();
                var ls_objectDefDesc =  ls_objectDefs[d].Attribute(Constants.AT_DESC,gn_loc).getValue() ;
                if(ls_objectDefValue.equals(ls_objID))
                {
                    p_objectDefs[p_objectDefs.length] = ls_objectDefs[d] ;
                    var lo_objDefValue = ls_objectDefs[d].Attribute(Constants.AT_NAME,gn_loc).getValue()
                    var lo_objDef = uf_getObjDefbyAttr(lo_objDefValue);
                    var lo_controlObjDef = uf_objFindModels(ls_objectDefs[d]);
                    
                    if (lo_objDef != null)
                    {
                        //写入到lo_objDef对象特性中
                        uf_writeObjAttr(lo_objDef,p_sheet,e,lo_controlObjDef);
                    }
                    else
                    {
                        //没有找到相应的岗位对象,将提示信息写入到日志文件中
                        var ls_info = "没有找到相应ID的岗位:" + ls_objID;
                        gs_InfoList[gs_InfoList.length] = ls_info;
                    }
                    num1++ ;
                }
                if(ls_objectDefDesc.equals(ls_objID))
                {
                    p_objectDefs[p_objectDefs.length] = ls_objectDefs[d] ;
                     var lo_objDefValue = ls_objectDefs[d].Attribute(Constants.AT_NAME,gn_loc).getValue()
                    var lo_objDef = uf_getObjDefbyAttr(lo_objDefValue);
                     var lo_controlObjDef = uf_objFindModels(ls_objectDefs[d]);
                  
                    if (lo_objDef != null)
                    {
                        //写入到lo_objDef对象特性中
                        uf_writeObjAttr(lo_objDef,p_sheet,e,lo_controlObjDef);
                    }
                    else
                    {
                        //没有找到相应的岗位对象,将提示信息写入到日志文件中
                        var ls_info = "没有找到相应ID的岗位:" + ls_objID;
                        gs_InfoList[gs_InfoList.length] = ls_info;
                    }
                  
                    num1++ ;
                }
            }
        }
        if(num1 = 0 )
        {
           gs_InfoList[gs_InfoList.length] = "在当前目录下找不到" +ls_objID;
            //标识符没有维护,将提示信息写入到日志文件中
        var ls_info = "没有在Excel文件中维护ID:" + p_app.getSheetName(p_index);
        gs_InfoList[gs_InfoList.length] = ls_info;
        }
    }
   
}


就是比较ls_objectDefDesc.equals(ls_objID))  和ls_objectDefValue.equals(ls_objID))  第一次满足都为false  第二次才为true    不是我不贴全部代码是 只是我做的这个东西你们很少碰到  谢谢 耐心!!

渚薰 发表于 2008-3-28 09:17

你的第一次,第二次,指什么?
满足又指什么?

页: [1]

编程论坛