카테고리 없음

Mi> Object 의 Parent 찾기

상문이 2012. 12. 11. 12:56

//trace('## 1 == > '+div_rtdgIf.grd_rtdgIf.getForm());
//trace('## 2 == > '+div_rtdgIf.grd_rtdgIf.getForm().getForm());
//trace('## 3 == > '+div_rtdgIf.grd_rtdgIf.getForm().getForm().getForm());
//trace('## 4 == > '+div_rtdgIf.grd_rtdgIf.getForm().getForm().getForm().getForm());
fn_getObjectPath(div_rtdgIf.grd_rtdgIf);

// 상위 객체(Form) 찾기
function fn_getObjectPath(obj)
{
 if( substr(obj.getForm().Id,0,3) == 'div' )
 {
  trace('div 인가');
  path = '';
  fn_getDivComponentId(obj,'');   
 } else if( substr(obj.getForm().getForm().Id,0,3) == 'Tab' )
 {
  trace('tab 인가');
  path = '';
  fn_getTabComponentId(obj,'');
 }
 
}

// Division 찾기
var path = '';
var pathRtnStr = '';
function fn_getDivComponentId(arg0,arg1)
{
 //trace("### arg0 == > "+arg0+" ### arg1 == > "+arg1);
 var pathArr = array();
 
 if( object(arg1).Id == 'form' || object(arg1).getForm() == 'global' )
 {
  return pathRtnStr;
  
 } else {
  
  if( gfn_IsEmpty(arg1) != true )
  {
   path = arg1+'.'+path; // Div ID
   pathArr = split(path,'.');
  
   //trace(arg0);
   //trace(arg1);
   //trace(object(arg1).getForm());
   for( var i=0; i<pathArr.length; i++ )
   {
    if( i == 0 )
    {
     path = pathArr[i];
     //trace(path);
   
    } else {
     path += '.'+pathArr[i];
     //trace(path);   
    }
   }
   path += '.'+arg0.Id;
   //trace(path);
   pathRtnStr = path;   
  }
  
  if( substr(arg0.getForm().Id,0,3) == 'div' )
  {
   if( gfn_IsEmpty(arg1) != true )
   {
    fn_getDivComponentId(arg0,object(arg1).getForm().Id);
   } else {
    fn_getDivComponentId(arg0,arg0.getForm().Id);
   }
      
  } else if( substr(arg0.getForm().getForm().Id,0,3) == 'Tab' )
  {
   if( gfn_IsEmpty(arg1) != true )
   {
    fn_getTabComponentId(arg0,object(arg1).getForm().Id);
   } else {
    fn_getTabComponentId(arg0,arg0.getForm().Id);
   }
   
  }

 }
 
}

// Tab 찾기
function fn_getTabComponentId(arg0,arg1)
{
 var pathArr = array();
 
 //tab 내 tabpage 갯수만큼 for 문 돌리기
 var sIdiv = null ;
 var tabPath = path;
 //tab카운트가 있을경우
 if( arg0.TabCount > 0 )
 {
  for ( var t = 0 ; t < arg0.TabCount ; t++ )
  {
   sIdiv = arg0.GetItem(t);
   // tabpage  maskEdit, Edit 아이디 가져오기
   if( gfn_IsEmpty(arg1) != true )
   {
    path = tabPath + '.' + sIdiv.Id; // 탭 page ID
   } else {
    path = tabPath + '.' + sIdiv.Id; // 탭 page ID
   }
  }
   
 }

 if( object(arg1).Id == 'form' || object(arg1).getForm() == 'global' )
 {
  return pathRtnStr;
  
 } else {
  
  if( gfn_IsEmpty(arg1) != true )
  {
   path = arg1+'.'+path; // Div ID
   pathArr = split(path,'.');
  
   //trace(arg0);
   //trace(arg1);
   //trace(object(arg1).getForm());
   for( var i=0; i<pathArr.length; i++ )
   {
    if( i == 0 )
    {
     path = pathArr[i];
     //trace(path);
   
    } else {
     path += '.'+pathArr[i];
     //trace(path);   
    }
   }
   path += '.'+arg0.Id;
   //trace(path);
   pathRtnStr = path;  
  }
  
  if( substr(arg0.getForm().Id,0,3) == 'div' )
  {
   if( gfn_IsEmpty(arg1) != true )
   {
    fn_getDivComponentId(arg0,object(arg1).getForm().Id); 
   } else {
    fn_getDivComponentId(arg0,arg0.getForm().Id); 
   }
     
  } else if( substr(arg0.getForm().getForm().Id,0,3) == 'Tab' )
  {
   if( gfn_IsEmpty(arg1) != true )
   {
    fn_getTabComponentId(arg0,object(arg1).getForm().Id);
   } else {
    fn_getTabComponentId(arg0,arg0.getForm().Id);
   }
   
  }

 }
 
}