카테고리 없음

[xp]자식창에서 부모폼 참조방법

상문이 2012. 11. 27. 14:15

showModeless 에서 parent의 object 참조를 하고 싶습니다.


var rtn;
var newChild;
var MyFrame = this.getOwnerFrame();

newChild = gfn_NewChildFrame(sID, sURL, sArg, nLeft, nTop, nWidth, nHeight, sStyle, sProp);
newChild.style.border = "1px solid blue";
newChild.showtitlebar = false;
return newChild.showModeless(sID, MyFrame, sArg);

위와 같이 함수를 만들고...

showModeless 로 뛰운 팝업화면에서

var objList = parent.components;
for(var i=0;i<objList.length;i++)
{
var sObjType = objList[i]+"";
if( sObjType == "[object Dataset]" )
{
var nRow = dsDataset.addRow();
dsDataset.setColumn(nRow, "CODE", objList[i].name);
dsDataset.setColumn(nRow, "VALUE", objList[i].name);
}
}

이런식으로 부모참에 있는 Dataset의 목록을 빼내오고싶은데..
ShowDebug.xfdl][line:31] length'은(는) null이거나 객체가 필요합니다. 이런식으로 오류가 납니다.

예전에 마이플랫폼에서는 parent 를 쓰면 잘 먹었는데.. XPlatform 에서는 왜 그런지 모르겠습니다.

그리고 아래와 같이 String 으로 parent 의 Dataset Object 를 획득하려고 합니다.

var targetDataset = parent.all[edtDataset.text];
txtDebug.text = targetDataset.saveXML();

이렇게 하면 부모창의 dataset을 참조 할수있는지 문의드립니다.

마이플랫폼 기준으로 사용하다 이번에 처음으로 XPlatform으로 가면서 생각처럼 안돌아가서 질문을 많이 드를것 같습니다. ^^

그럼 수고하세요

 


 
 
 
 
원인     
 
 
 
 
 
처리내용     
 
 
안녕하세요. 투비소프트 고객지원부 입니다.

팝업창에서 부모창에 접근하는 경우는 parent가 아닌 opener을 이용하여 접근 하실 수 있습니다.

아래와 같이 사용합니다.

var objList = opener.all; //components객체는 invisible objects는 못 가져오므로 all 을 이용하여 가져옵니다.

for(var i=0;i<objList.length;i++)
{
var sObjType = objList[i]+"";
if( sObjType == "[object Dataset]" )
{
var nRow = dsDataset.addRow();
dsDataset.setColumn(nRow, "CODE", objList[i].name);
dsDataset.setColumn(nRow, "VALUE", objList[i].name);
}
}

var targetDataset = opener.all["Ds01"]; //opener.all로 데이터셋을 가져옵니다.


수고하세요.