PropertyEventMethod찾아보기
$p.data - 5.0_5.5283A.20250313.190345

데이터컬렉션을 제어하는 기능으로 데이터 객체 생성하기 또는 복수의 데이터 객체에서 데이터 꺼내오기/할당하기 등이 있음

Type

engine

Property Summary

Event Summary

Method Summary

create( dataCollectionInfo )
생성할 객체의 구조를 JSON 객체 또는 XML 형식의 문자열로 정의하여 DataList 또는 DataMap을 생성해 줌
get( type , dcOptions , returnOptions )
여러 개의 DataList 또는 DataMap의 데이터를 지정한 유형으로 반환
getAllDataCollection( type )
실행된 모든 화면의 데이터컬렉션 정보를 반환
getBroadcast( )
전체 데이터컬렉션의 Broadcast 기능의 활성화 여부를 반환
getInfo( idArray )
데이터컬렉션의 상세 정보(XML 에서 입력한 Attribute 값)를 조회하는 함수
remove( dataCollectionID )
입력한 dataCollectionID에 해당하는 데이터컬렉션을 삭제함 (DataList, DataMap, LinkedDataList, AliasDataList, AliasDataMap)
set( dataType , dataObject , idArray )
여러 개의 DataList 또는 DataMap에 데이터를 할당
setBroadcast( flag )
모든 화면의 전체 데이터컬렉션의 Broadcast 기능의 활성화 여부를 설정

Property Detail

Event Detail

Method Detail

create( dataCollectionInfo )
생성할 객체의 구조를 JSON 객체 또는 XML 형식의 문자열로 정의하여 DataList 또는 DataMap을 생성해 줌
Parameter
nametyperequireddescription
dataCollectionInfoJSON||StringYDataList 또는 DataMap의 구조를 정의한 JSON 객체 또는 XML 문자열
Sample
// 예시 1) DataList 생성 (JSON 객체) var jsnOptionDataList = { "id": "dlt_exam_json", "type": "dataList", "option": { "baseNode": "list", "repeatNode": "map" }, "columnInfo": [ { "id": "code", "name": "코드", "dataType": "text" }, { "id": "label", "name": "코드명", "dataType": "text" } ] }; $p.data.create(jsnOptionDataList); // 예시 2) DataMap 생성 (JSON 객체) var jsnOptionDataMap = { "id": "dma_exam_json", "type": "dataMap", "option": { "baseNode": "map" }, "keyInfo": [ { "id": "code", "name": "코드", "dataType": "text" }, { "id": "label", "name": "코드명", "dataType": "text" } ] }; $p.data.create(jsnOptionDataMap); // 예시 3) DataList 생성 (XML 문자열) var strDataList = '<w2:dataList id="dlt_exam_xml" baseNode="vector" repeatNode="item" valueNode=""> ' + '<w2:columnInfo>' + '<w2:column id="code" name="코드" dataType="text"></w2:column>' + '<w2:column id="label" name="코드명" dataType="text"></w2:column>' + '</w2:columnInfo>' + '</w2:dataList>'; $p.data.create(strDataList); // 예시 4) DataMap 생성 (XML 문자열) var strDataMap = '<w2:dataMap baseNode="map" id="dma_exam_xml">' + '<w2:keyInfo>' + '<w2:key id="code" name="코드" dataType="text"></w2:key>' + '<w2:key id="label" name="코드명" dataType="text"></w2:key>' + '</w2:keyInfo>' + '</w2:dataMap>'; $p.data.create(strDataMap);
get( type , dcOptions , returnOptions )
여러 개의 DataList 또는 DataMap의 데이터를 지정한 유형으로 반환
Parameter
nametyperequireddescription
typeStringY반환 받을 데이터 유형 [JSON, XML, ARRAY]
dcOptionsArrayY반환받을 DataList 또는 DataMap의 조건이 담긴 배열 (배열에 아이디 문자열 또는 반환 조건이 담긴 JSON 객체를 할당)
(JSON 객체를 정의한 예시) { "key" : <String:N> 아이디 대신 할당할 값 "action" : <String:N> [default : 'all', 'modified', 'inserted', 'deleted', 'updated', 'matched', 'unmatched'] 필터 유형 "matchedColumn" : <String:N> 'action'의 설정 값이 'matched' 또는 'unmatched'인 경우 대상 컬럼의 아이디 "matchedData" : <String:N> 'action'의 설정 값이 'matched' 또는 'unmatched'인 경우 비교할 데이터 "includeColumns" : <ARRAY:N> 컬럼 아이디가 담긴 배열 }
returnOptionsObjectN반환 받을 데이터의 추가 선택 사항
<Boolean:N> returnOptions.singleMode : [default: false, true] DataList 또는 DataMap의 아이디를 제외하고 데이터만으로 구성할지의 여부 반환 받을 데이터 객체가 1개인 경우에만 동작함 true 인 경우 DataList 또는 DataMap의 아이디를 포함하여 반환되고, false인 경우 아이디가 제외되고 오직 데이터만 반환
Return
typedescription
JSON||XML||Array데이터 객체
Sample
// (데이터컬렉션 소스 예시) // <w2:dataCollection baseNode="map"> // <w2:dataList id="dataList1" baseNode="list" repeatNode="map" saveRemovedData="true"> // <w2:columnInfo> // <w2:column id="code" name="코드" dataType="text"></w2:column> // <w2:column id="label" name="코드명" dataType="text"></w2:column> // </w2:columnInfo> // <w2:data use="true"> // <w2:row> // <code><![CDATA[C0001]]></code> // <label><![CDATA[TYPE1]]></label> // </w2:row> // <w2:row> // <code><![CDATA[C0002]]></code> // <label><![CDATA[TYPE2]]></label> // </w2:row> // </w2:data> // </w2:dataList> // <w2:dataMap id="dataMap1" baseNode="map" > // <w2:keyInfo> // <w2:key id="lang" name="언어코드" dataType="text"></w2:key> // <w2:key id="output" name="출력값" dataType="text"></w2:key> // </w2:keyInfo> // <w2:data use="true"> // <lang><![CDATA[lang01]]></lang> // <output><![CDATA[javascript]]></output> // </w2:data> // </w2:dataMap> // </w2: dataCollection > // 예시 1) 단건 - 두 번째 인자(dcOptions)에 반환 받을 DataList 또는 DataMap의 아이디만 지정한 경우 var jsnData = $p.data.get("JSON", ["dataMap1"]); // 반환 값 예시) // {"dataMap1":{"lang":"lang01","output":"javascript"}} // 예시 2) 다건 - 두 번째 인자(dcOptions)에 반환 받을 DataList 또는 DataMap의 아이디만 지정한 경우 var jsnData = $p.data.get("JSON", ["dataMap1", "dataList1"]); // 반환 값 예시) // { // "dataMap1": { "lang": "lang01", "output": "javascript" }, // "dataList1": [{ "code": "C0001", "label": "TYPE1", "rowStatus": "R" }, { "code": "C0002", "label": "TYPE2", "rowStatus": "R" }] // } // 예시 3) id 'dataMap1'를 'dma_exam1'로 변경하여 반환. 'id' : DataList 또는 DataMap의 아이디. 'key' : 반환될 데이터의 'id'를 지정한 값으로 변경 var jsnData = $p.data.get("JSON", [{ id: "dataMap1", key: "dma_exam1" }]); // 반환 값 예시) // {"dma_exam1":{"lang":"lang01","output":"javascript"}} // 예시 4) id를 제외하고 반환. 세 번째 인자(returnOptions)의 속성 "singleMode"를 true로 설정 var jsnData = $p.data.get("JSON", ["dataMap1"], { "singleMode": true }); // 반환 값 예시) // {"lang":"lang01","output":"javascript"} // 예시 5) 다건 - 배열유형 var jsnData = $p.data.get("ARRAY", ["dataMap1", "dataList1"]); // 반환 값 예시) // { // "dataMap1": { "lang": "lang01", "output": "javascript" }, // "dataList1": { // "columnInfo": ["code", "label"], // "data": ["C0001", "TYPE1", "C0002", "TYPE2"] // } // } // 예시 6) 다건 - XML 유형 var xmlData = $p.data.get("XML", ["dataMap1", "dataList1"]); // 반환 값 예시) // <map> // <map id="dataMap1"> // <lang>lang01</lang> // <output>javascript</output> // </map> // <list id="dataList1"> // <map index="0"> // <code>C0001</code> // <label>TYPE1</label> // <rowStatus statusValue="0">R</rowStatus> // </map> // <map index="1"> // <code>C0002</code> // <label>TYPE2</label> // <rowStatus statusValue="0">R</rowStatus> // </map> // </list> // </map> // 예시 7) 데이터에 필터 적용 - 수정 상태(삽입, 삭제, 수정)의 데이터만 추출 var jsnData = $p.data.get("JSON", [{ id: "dataList1", action: "modified" }]); // 반환 값 예시) // { // "dataList1":[ // {"code":"C0004","label":"TYPE4","rowStatus":"C"}, // {"code":"C0001","label":"TYPE1","rowStatus":"D"}, // {"code":"C0002","label":"TYPE2-M","rowStatus":"U"}, // {"code":"C0003","label":"TYPE3","rowStatus":"E"} // ] // }
getAllDataCollection( type )
실행된 모든 화면의 데이터컬렉션 정보를 반환 지정한 정보 유형(type)에 따라 데이터컬렉션의 아이디 또는 데이터컬렉션 객체를 반환 받을 수 있음 (제약 사항) 대상은 이 함수를 호출한 페이지와 동일한 Window 객체에 생성된 데이터컬렉션임 IFrame 의 소스 페이지 또는 '$p.openPopup'으로 생성한 팝업의 유형이 'iframePopup' 또는 'browserPopup'인 경우에는 Window 객체가 다르기 때문에 제외됨 이 함수는 'Page Scope'가 적용되지 않아 모든 화면에 영향을 미치므로 사용 시 주의가 필요
Parameter
nametyperequireddescription
typeStringN데이터컬렉션 정보 유형 ('object' 로 지정된 경우 객체를 반환하고 그 외의 경우에는 아이디 문자열을 반환)
Return
typedescription
Array데이터컬렉션의 아이디 문자열 또는 객체를 담은 배열
Sample
// 예시 1) 이 함수를 호출한 화면의 Window 객체에 속한 모든 데이터컬렉션의 아이디를 반환 // 실행 화면에 WFrame 컴포넌트가 구성되어 있고 아이디가 'wfm_exam1'인 경우 // 실행 화면에 정의된 "dataList1"와 WFrame 소스 화면에 정의된 "dataList1_w"와 "dataMap1_w"의 실행 시점의 아이디가 반환된 예시 var arrResult = $p.data.getAllDataCollection(); // 반환 값 예시) ["mf_dataList1","mf_wfm_exam1_dataList1_w","mf_wfm_exam1_dataMap1_w"] // 예시 2) 이 함수를 호출한 화면의 Window 객체에 속한 모든 데이터컬렉션의 객체를 반환 var arrResult = arrResult = $p.data.getAllDataCollection("object"); // 반환 값 예시) // [ // {id: 'mf_dataList1', element: {…}, …}, // {id: 'mf_wfm_exam1_dataList1_w', element: {…}, …}, // {id: 'mf_wfm_exam1_dataMap1_w', element: {…}, …} // ] // 반환된 객체는 데이터 객체가 가진 함수를 사용할 수 있음 // 첫 번째 Data 객체의 유형을 출력하고자 할 때 var strType = arrResult[0].getObjectType(); // 반환 값 예시) 'dataList'
getBroadcast( )
전체 데이터컬렉션의 Broadcast 기능의 활성화 여부를 반환 (제약 사항) 대상은 이 함수를 호출한 페이지와 동일한 Window 객체에 생성된 데이터컬렉션임 IFrame 의 소스 페이지 또는 '$p.openPopup'으로 생성한 팝업의 유형이 'iframePopup' 또는 'browserPopup'인 경우에는 Window 객체가 다르기 때문에 제외됨 이 함수는 'Page Scope'가 적용되지 않아 모든 화면에 영향을 미치므로 사용 시 주의가 필요
Return
typedescription
Boolean[true, false] 전체 데이터컬렉션의 Broadcast 기능의 활성화 여부
Sample
// 예시) 전체 데이터컬렉션의 Broadcast 기능의 활성화 여부 반환 var blnResult = $p.data.getBroadcast(); // 반환 값 예시 - 활성화된 경우) true // 반환 값 예시 - 비활성화된 경우) false
getInfo( idArray )
데이터컬렉션의 상세 정보(XML 에서 입력한 Attribute 값)를 조회하는 함수
Parameter
nametyperequireddescription
idArrayArrayN각 데이터컬렉션(DataList/DataMap) 아이디를 담고 있는 배열 (값을 지정하지 않을 경우 모든 데이터컬렉션이 대상)
Return
typedescription
JSON각 데이터컬렉션의 하위 특성 값을 가지는 JSON 객체
Sample
$p.data.getInfo(); // 모든 데이터컬렉션의 상세정보 조회 $p.data.getInfo(["dataList1","dataMap1"]); // dataList1, dataMap1에 대한 상세정보 조회
remove( dataCollectionID )
입력한 dataCollectionID에 해당하는 데이터컬렉션을 삭제함 (DataList, DataMap, LinkedDataList, AliasDataList, AliasDataMap) (참고 사항) LinkedDataList와 연결된 DataList가 삭제되면, LinkedDataList도 함께 삭제 됨 AliasDataList, AliasDataMap에 연결된 DataList또는 DataMap이 삭제되면, AliasDataList와 AliasDataMap은 삭제되지 않고 undefined가 할당
Parameter
nametyperequireddescription
dataCollectionIDStringYDataList, DataMap, LinkedDataList, AliasDataList, AliasDataMap의 아이디
Sample
// 예시) 화면에 정의된 아이디가 'dataMap1' 인 데이터 객체를 삭제 $p.data.remove("dataMap1");
set( dataType , dataObject , idArray )
여러 개의 DataList 또는 DataMap에 데이터를 할당 (참고 사항) LinkedDataList, AliasDataList, AliasDataMap은 제외 (이 객체들의 데이터는 참조한 DataList 또는 DataMap에 할당해야 함)
Parameter
nametyperequireddescription
dataTypeStringY데이터 객체(dataObject)에 지정할 데이터의 타입 [ARRAY, JSON, XML]
dataObjectJSON||ARRAY||XMLY데이터 타입과 동일한 데이터 객체
idArrayArrayNDataList 또는 DataMap의 아이디의 문자열 또는 데이터 할당 조건을 정의한 JSON 객체를 배열로 정의
데이터 객체에서 이 값에 지정한 아이디 또는 조건에 해당하는 데이터를 추출하여 할당 (JSON 형식으로 정의하는 예시) { "id" : "화면에 정의된 데이터 객체의 아이디", "key" : "두 번째 인자에 정의된 키" } 이 값이 지정되지 않은 경우 데이터 객체에 정의된 키와 동일한 아이디를 가진 데이터 객체에 데이터가 할당됨
Sample
// (데이터컬렉션의 소스 예시) <w2:dataList id="dataList1" baseNode="list" repeatNode="map" saveRemovedData="true"> <w2:columnInfo> <w2:column id="code" name="코드" dataType="text"></w2:column> <w2:column id="label" name="코드명" dataType="text"></w2:column> </w2:columnInfo> </w2:dataList> <w2:dataMap id="dataMap1" baseNode="map"> <w2:keyInfo> <w2:key id="lang" name="언어코드" dataType="text"></w2:key> <w2:key id="output" name="출력값" dataType="text"></w2:key> </w2:keyInfo> </w2:dataMap> // 예시 1) 첫 번째 인자(dataType)별 // 예시 1-1) JSON 유형 // 두 번째 인자 값의 데이터는 JSON 유형으로 정의되어 있으며, 총 3개의 KEY("dataList1", "dataMap1", "undefined_data")로 구성되어 있음 $p.data.set( "JSON", { "dataList1": [ { "code": "C0001", "label": "CODE1" } ], "dataMap1": { "lang": "en", "output": "WebSquare" }, "undefined_data": { "code": "C0001", "label": "CODE1" } } ); // 예시 1-1) JSON 유형 - 실행 결과 // KEY가 "dataList1"와 "dataMap1"은 화면에 정의된 데이터 객체와 아이디가 동일하기 때문에 값이 할당됨 // 반면, "undefined_data"는 화면에 정의된 데이터 객체의 아이디가 일치하는 객체가 없기 때문에 무시 됨 // 예시 1-2) ARRAY 유형 // 두 번째 인자 값의 데이터는 JSON 유형으로 정의되어 있으며, 총 3개의 KEY("dataList1", "dataMap1", "undefined_data")로 구성되어 있음 $p.data.set( "ARRAY", { "dataList1": { "columnInfo": [ "code", "label" ], "data": ["C0001", "CODE1", "C0002", "CODE2"] }, "dataMap1": ["en", "WebSquare"], "undefined_data": ["C0001", "CODE1"] } ); // 예시 1-2) ARRAY 유형 - 실행 결과 // KEY가 "dataList1"와 "dataMap1"은 화면에 정의된 데이터 객체와 아이디가 동일하기 때문에 값이 할당됨 // 반면, "undefined_data"는 화면에 정의된 데이터 객체의 아이디가 일치하는 객체가 없기 때문에 무시 됨 // 예시 1-3) XML 유형 let strXML = '' + '<map>' + ' <list id="dataList1">' + ' <map>' + ' <code>C0001</code>' + ' <label>CODE1</label>' + ' </map>' + ' <map>' + ' <code>C0002</code>' + ' <label>CODE2</label>' + ' </map>' + ' </list>' + ' <map id="dataMap1">' + ' <lang>en</lang>' + ' <output>WebSquare</output>' + ' </map>' + ' <map id="undefined_data">' + ' <code>C0001</code>' + ' <label>CODE1</label>' + ' </map>' + '</map>'; // 예시 1-3) XML 유형 - 실행 결과 // XML 경로 "map/list/@id"에 정의된 "dataList1"와 XML 경로 "map/map[1]/@id"에 정의된 "dataMap1"은 화면에 정의된 데이터 객체와 아이디가 동일하기 때문에 값이 할당됨 // 반면, XML 경로 "map/map[2]/@id"에 정의된 "undefined_data"는 화면에 정의된 데이터 객체의 아이디가 일치하는 객체가 없기 때문에 무시 됨 // 예시 2) 세 번째 인자(idArray) // 예시 2-1) 아이디 문자열 // 두 번째 인자 값의 데이터는 JSON 유형으로 정의되어 있으며, 총 2개의 키("dataList1", "undefined_data")로 구성되어 있음 $p.data.set( "JSON", { "dataList1": [ { "code": "C0001", "label": "CODE1" } ], "undefined_data": { "code": "C0001", "label": "CODE1" } }, ["dataList1", "dataMap1", "undefined_data", "undefined_id"] ); // 예시 2-1) 아이디 문자열 - 실행 결과 // 세 번째 인자에 정의된 아이디 문자열 중에 유효한 값은 화면에 정의된 데이터 객체와 아이디가 일치하는 "dataList1", "dataMap1" 임 // 두 번째 인자 값에서 "dataList1" 키를 추출하여 할당 함 // 반면, 두 번째 인자 값에 dataMap1" 키는 정의되지 않았기 때문에 할당되지 않음 // 예시 2-2) 조건이 정의된 JSON 형식 // 두 번째 인자 값의 데이터는 JSON 유형으로 정의되어 있으며, 총 2개의 키("dataList1", "user_dataMap1", "undefined_data")로 구성되어 있음 $p.data.set( "JSON", { "dataList1": [ { "code": "C0001_condition", "label": "CODE1" } ], "user_dataMap1": { "lang": "en", "output": "WebSquare_condition" }, "undefined_data": { "code": "C0001", "label": "CODE1" } }, [{ "id": "dataMap1", "key": "user_dataMap1" }, "dataList1", "undefined_data", "undefined_id"] ); // 예시 2-2) 조건이 정의된 JSON 형식 - 실행 결과 // 세 번째 인자에 정의된 유효한 인자 값은 다음의 2가지 임 // 1. 배열의 0번째에 정의된 JSON 객체의 "id"에 정의된 "dataMap1"(화면에 정의된 데이터 객체의 아이디와 JSON 객체의 "id"에 할당된 값이 일치) // JSON 객체의 "key"에 정의된 "user_dataMap1"를 두 번째 인자 값에서 추출하여 데이터 객체 "dataMap1"에 할당 함 // 2. 배열의 1번째에 정의된 "dataList1"(화면에 정의된 데이터 객체의 아이디와 일치) // 두 번째 인자 값에서 "dataList1"를 추출하여 데이터 객체 "dataList1"에 할당 함
setBroadcast( flag )
모든 화면의 전체 데이터컬렉션의 Broadcast 기능의 활성화 여부를 설정
flag = "false" : Broadcast 기능이 비활성화 됨 (데이터 객체들(DataList, DataMap 등)의 값 변경 시, 데이터 객체와 연결된 컴포넌트가 동기화되지 않음)
flag = "true" : Broadcast 기능을 활성화 됨 (데이터 객체들(DataList, DataMap 등)의 값 변경 시, 데이터 객체와 연결된 컴포넌트가 동기화 됨) (제약 사항) 대상은 이 함수를 호출한 페이지와 동일한 Window 객체에 생성된 데이터컬렉션임 IFrame 의 소스 페이지 또는 '$p.openPopup'으로 생성한 팝업의 유형이 'iframePopup' 또는 'browserPopup'인 경우에는 Window 객체가 다르기 때문에 제외됨 이 함수는 'Page Scope'가 적용되지 않아 모든 화면에 영향을 미치므로 사용 시 주의가 필요
Parameter
nametyperequireddescription
flagBooleanY[true, false] Broadcast 기능의 활성화 여부
true이면 Broadcast가 활성화되어 데이터컬렉션과 컴포넌트를 동기화 함 false이면 Broadcast가 비활성화되어 동기화되지 않음
Sample
// 모든 화면의 모든 데이터컬렉션의 Broadcast를 비활성화 함 $p.data.setBroadcast(false); //데이터 객체 제어(삽입, 수정, 삭제) 로직 수행 // 모든 화면의 모든 데이터컬렉션의 Broadcast를 활성화 함 - 데이터 객체와 연결된 컴포넌트가 동기화 됨 $p.data.setBroadcast(true);