반응형
0. 개요
Nexacro 17버전으로 개발을 진행하는 중에
Design 탭에 Dataset을 추가하지 않고 동적으로 Dataset을 만든 후
특정 조건에 맞는 Dataset에 접근하여 데이터를 불러오고 싶었다
1. 데이터셋 동적 생성
- 아래 소스는 Dataset을 생성하는 두가지 예제를 보여준다
- 첫번째는 빈 Dataset을 생성하고 두번째는 데이터셋의 id와 컬럼, 데이터를 추가하는 예제
//Dataset Object 생성 예제 1
this.dataset_test1 = new Dataset();
trace("\n" + this.dataset_test1.saveXML());
//Dataset Object 생성 예제 2 (id 포함)
this.dataset_test2 = new Dataset("dataset_test2");
//컬럼 추가
this.dataset_test2.addColumn("col1");
this.dataset_test2.addColumn("col2");
//데이터 추가
var currentRow = this.dataset_test2.addRow();
this.dataset_test2.setColumn(currentRow, "col1", "data1");
this.dataset_test2.setColumn(currentRow, "col2", "data2");
trace("\n" + this.dataset_test2.saveXML());
- 위 소스코드를 실행하면 trace 구문에 의해 아래와 같이 생성된 Dataset을 보여준다
- new Dataset();을 수행할때 인자의 여부에 따라 Dataset의 id가 결정된다
nexacro (3308)> UD 14:31:28:160
<Dataset id="">
<ColumnInfo />
<Rows>
</Rows>
</Dataset>
nexacro (3308)> UD 14:31:28:166
<Dataset id="dataset_test2">
<ColumnInfo>
<Column id="col1" type="STRING" size="256" />
<Column id="col2" type="STRING" size="256" />
</ColumnInfo>
<Rows>
<Row>
<Col id="col1">data1</Col>
<Col id="col2">data2</Col>
</Row>
</Rows>
</Dataset>
2. 데이터셋 동적 로드
- 데이터셋의 이름을 문자열로 입력받아 처리하고 싶다면 방법은 여러가지가 있다
- 일반적인 경우 아래와 같이 오브젝트명을 명시하여 Dataset을 제어한다
this.dataset_test1;
- 아래는 절대 사용하지 않길 바라는 예제 (eval을 사용하면 성능, 보안 등 안좋은 문제가 많고. 대체로 사용 할 수 있는 new Function 구문은 Nexacro 17에서 정상적으로 동작하지 않았다)
var dsName = "dataset_test1";
eval("this." + dsName);
- 아래는 위 eval을 사용한 예제보다 훨씬 기분이 좋아지는 예제
- xfdl 파일을 generated 하면 생겨나는 xfdl.js 파일에서 힌트를 얻어 사용해보니 정상적으로 동작했다
var dsName = "dataset_test1";
this[dsName];
근데 난 넥사크로 개발자가 아닌데 왜 ..
반응형
'개발 > Nexacro' 카테고리의 다른 글
[Nexacro 17] License Invalid Error 해결 방법 (Trial license) (0) | 2023.05.02 |
---|---|
[Nexacro 17] textarea, div등 높이 자동조절 (auto height) (0) | 2023.04.21 |
[Nexacro 17] Grid의 Row, Col 사이즈를 마우스로 조절하는 속성 (0) | 2023.04.20 |