syn.$p: Excel/PDF 리포트 출력을 위한 작업 항목(workItem) 구성과 Reportify 연동 URL 생성 기능을 제공합니다.

이 예제 페이지에는 실제 Reportify 서버가 연결되어 있지 않습니다. getReportifyUrl()/getDocumentTemplateUrl()은 URL 문자열만 생성해서 보여주며, 실제 PDF/Excel 렌더링은 syn.Config.IsReportifyModule이 활성화되고 Reportify 서버가 연동된 환경에서만 동작합니다. 아래 workItem 관련 메서드들은 네트워크 호출 없이 메모리 상의 데이터만 가공하는 순수 함수이므로 이 페이지에서 그대로 실습할 수 있습니다.

속성

Reportify 서버 API 경로, 문서 템플릿 다운로드 경로 설정값입니다. getReportifyUrl()/getDocumentTemplateUrl() 호출 시 사용됩니다.

메서드: URL 생성

Reportify 서버 API의 액션 이름으로 요청 URL을 생성합니다. 실제 네트워크 호출 없이 문자열만 만듭니다.
reportFileID로 문서 템플릿 다운로드 URL을 생성합니다.

메서드: workItem 구성 (메모리 내 데이터 가공)

아래 메서드를 실행할 때마다 이 페이지가 메모리에서 관리하는 예제 workItems 배열의 현재 상태가 갱신되어 표시됩니다.
workItems 배열에 새 작업 항목을 추가합니다. 두 번째 인자가 객체이면 { document, worksheet, datafield, bind, row, col, type, data, overtake, step } 형태로 한 번에 전달할 수 있습니다. (참고: 두 번째 인자를 숫자로 각 필드를 나열하는 방식은 현재 소스에서 필수값 검증 조건이 반전되어 있어 실제로는 항상 경고 로그만 남기고 추가되지 않습니다. 객체 형태 호출을 사용하십시오.)
document/worksheet/datafield로 지정한 기준 항목의 다음(또는 이전) 위치에 target 항목을 삽입합니다. nextDirection이 false이면 기준 항목 앞에 삽입합니다.
document/worksheet/datafield로 찾은 항목에 updates 객체의 속성을 병합(Object.assign)합니다.
document/worksheet/datafield가 일치하는 항목을 workItems 배열에서 제거합니다.

메서드: 데이터 바인딩/변환

totalCount까지 step 간격으로 증가하는 오프셋 배열을 생성합니다. 다중 페이지 문서/시트 오프셋 계산에 사용합니다.
workItems를 복제한 뒤 dataSource(header/details 형태의 예제 데이터)를 각 항목의 bind(cell/item/list)에 맞춰 채워 넣습니다.
JSON 배열의 각 행을 지정한 keys 순서의 값 배열로 변환합니다. (예: syn.$p.transformWorkData(data, ['DETAIL_CONTENTS', 'RESULTS']))
JSON 배열을 필드명 + 순번 형태의 평면 객체(폼 필드 바인딩용)로 변환합니다. padding이 데이터 길이보다 크면 남은 순번은 기본값으로 채웁니다.
첫 페이지는 firstLength개, 이후 페이지는 chunkSize개씩 데이터를 분할합니다. 첫 페이지 표시 항목 수가 다른 리포트 페이징에 사용합니다.