본문 바로가기
IT/nexacro

넥사크로 현재 화면에서 사용 중인 데이터셋 목록 가져오기

by heavenLake 2022. 7. 20.
반응형

넥사크로 개발하다면도 현재 화면에서 개발중인 데이터셋들에 실제 값이

궁금할 때가 있다.

매번 trace할수는 없기 때문에 

이 팝업을 사용하면 싶게 알수 있다.

 

 

사용법은 단순하게 사용하고 싶은 화면에서 이화면을 호출해주면 되는데.

공통으로 단축키를 만들어 넣어도 되고.

아니면 화면에서 직접 호출해서 써도 된다.

ex>

application.open("callVd","위치::vd.xfdl",this,"", "showtitlebar=true resizable=true border=1",50,50,1024,800);

 

 

참고로 알아둬야할 사항은 위에 edtWorkDiv가 중요한데.

보통 main Frame안에 Left, Top, Work Frame(명칭다를수 있음)을 만들고 메뉴를 누르면 Wokr Frame 안에
해당화면을 띄워주는데, 화면을 바로 띄워주기보다는 특정 WorkFrame.xfdl(명칭은 다를수 있다.)화면을 만들고 그안에 DIV 안에 호출된 화면을 띄워주는 경우가 다반수다.(그래야 공통으로 화면제어가 편하기 때문)
그래서 여기 edtWorkDiv안에는 그 DIV의 ID를 적어줘야한다.
(이 팝업이 열릴때 실제로 그 화면에서 열린거 같지만 실제로는 WorkFrame.xfdl에서 열린거기 때문이다.)


하지만 실제로 WorkFrame.xfdl역활을 화면이 없다면 그냥 this.opener로 명시하면 된다.

 

vd (1).zip
0.00MB


this.edtTest_onkeydown = function(obj:Edit, e:nexacro.KeyEventInfo)
{
	if( e.keycode != 13 ) return;
	
	var sDivWork = this.edtWorkDiv.value+".";	
	
	//this.components.length
	//trace(this.opener.titletext);
	//trace(this.opener.components.length);
	
	var obj = new Object(sDivWork + nexacro.trim(this.edtTest.text));
	
	//alert(sDivWork + nexacro.trim(this.edtTest.text));
	//alert( eval(sDivWork + nexacro.trim(this.edtTest.text)) );
	
	this.grdDs.set_binddataset(eval(sDivWork + nexacro.trim(this.edtTest.text)));
	//this.grdDs.set_binddataset(this.opener.div_work.ds);
	
	this.grdDs.set_enableredraw(false);
	this.grdDs.createFormat();	//그리드에서 현재 바인딩된 데이터셋의 데이터 열 정보로 새로운 포맷을 생성하는 메소드입니다
	
	var nCnt = this.grdDs.getCellCount("Head");
	
	for(var i=0;i<nCnt;i++)
	{
		this.grdDs.setCellProperty( "Body", i, "edittype", "normal");
	}
 	
	this.grdDs.set_enableredraw(true);
	 
	//this.grdDs.setRealRowSize(0,18);
}

 

this.vd_onload = function(obj:Form, e:nexacro.LoadEventInfo)
{
	var arr = this.opener.div_work.all; 
	for (var i = 0 ; i < arr.length ;i++) 
	{ 
		if(arr[i] == "[object Dataset]") 
		{
			this.dsList.setColumn(this.dsList.addRow(),"nm",arr[i].id);
		}
	}
	 
}

this.grdList_oncelldblclick = function(obj:Grid, e:nexacro.GridClickEventInfo)
{
	var k = this.dsList.getColumn(obj.currentrow,"nm");
	this.edtTest.set_value(k);
	
	var b = new nexacro.KeyEventInfo();
		b.keycode = 13; 
	
	this.edtTest_onkeydown(this.edtTest, b);
}



this.chk_autofit_onchanged = function(obj:CheckBox, e:nexacro.CheckBoxChangeEventInfo) {
	this.grdDs.set_autofittype( (obj.value ? "col":"none") );
}

 

반응형

댓글