이젠 combo나 listbox 선택했을 때, 데이터도 db에서 가져오는 것을 연동해 볼 것임.
이게 무슨 뜻이냐면,
기존에는 XML 정의(innerdataset)에서 작성된 데이터만 표시되었다면,
onload에서transaction을 호출 한 후에는 서버에서 데이터를 가져온다는 것
주로 어클리케이션 전반에서 사용되는 정적인 데이터를 의미한다. 일반적으로 자주 변경되지 않기 때문에 사용자가 직접 수정하거나 입력하지 않고 주어진 옵션에서 선택하도록 유도하는, 읽기 전용으로 사용되는 데이터이다. 주로 키-값 구조로 되어있다.
예) 성별 목록
GENDER_CD : 성별코드GENDER_NAME : 성별 이름[
{ "GENDER_CD": "M", "GENDER_NAME": "Male" },
{ "GENDER_CD": "W", "GENDER_NAME": "Female" },
{ "GENDER_CD": "E", "GENDER_NAME": "Other" }
]
transaction()을 사용해 서버에서 데이터 가져옴주로 form이 로딩시 호출하는 방식을 사용함.
폼 선택>
빈영역 선택
프로퍼티> event > onload 선택
Script에 다음과 같이 이벤트 함수에 transaction함수 추가
//onlead ::
this.Form_Emp_exe_onload = function(obj:nexacro.Form,e:nexacro.LoadEventInfo)
{
this.transaction(
"strCode",
"SvcURL::select_code.jsp",
"", //client -> server 저장 (server ds = client ds)
"ds_dept=out_dept ds_pos=out_pos", //server -> client 조회 (client ds = server ds) :여러개의 ds받을 수 ㅇㅇ
"arg1=1 arg2=2", //조회 조건 parameter , 변수와 변수 구분은 ""(space)
"fn_callBack" //코드성 데이터는 별도의 콜백함수 처리할 필요 x
);
};
<Dataset id="ds_dept">
<ColumnInfo>
<Column id="DEPT_CD" type="STRING" size="32"/>
<Column id="DEPT_NAME" type="STRING" size="32"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="DEPT_CD">01</Col>
<Col id="DEPT_NAME">Accounting Team</Col>
</Row>
<Row>
<Col id="DEPT_CD">02</Col>
<Col id="DEPT_NAME">HR Team</Col>
</Row>
<Row>
<Col id="DEPT_CD">03</Col>
<Col id="DEPT_NAME">Sales Team</Col>
</Row>
<Row>
<Col id="DEPT_CD">04</Col>
<Col id="DEPT_NAME">Design Team</Col>
</Row>
<Row>
<Col id="DEPT_CD">05</Col>
<Col id="DEPT_NAME">Education Team</Col>
</Row>
</Rows>
</Dataset>
<Dataset id="ds_pos">
<ColumnInfo>
<Column id="POS_CD" type="string" size="32"/>
<Column id="POS_NAME" type="string" size="32"/>
</ColumnInfo>
<Rows>
<Row>
<Col id="POS_CD">04</Col>
<Col id="POS_NAME">Officer</Col>
</Row>
<Row>
<Col id="POS_CD">03</Col>
<Col id="POS_NAME">Assistant Manager</Col>
</Row>
<Row>
<Col id="POS_CD">02</Col>
<Col id="POS_NAME">Division Manager</Col>
</Row>
<Row>
<Col id="POS_CD">01</Col>
<Col id="POS_NAME">Chairman</Col>
</Row>
</Rows>
</Dataset>


참고로 지금 뜨는 데이터는 테스트데이터로,
데이터셋 더블클릭 > Dataset Editor에서 확인 가능임
이 테스트 데이터는 개발이 끝나면 지워줘야한다!!!
이제는 transaction을 실행해서 서버에서 ds_pos ds_dept 데이터를 업데이트 했기 때문에 새로운 데이터로 교체됨 (test data 아닌 실제 DB에서 가져온 데이터)


넥사크로에서 디버깅할 때 많이 쓰는
alert() 와 trace()는 this. 생략 가능 (정석은 scope를 붙여주는 것이긴 함)