다중 선택 데이터 다운로드 가이드
목적
테이블에서 선택한 여러 행의 데이터를 개별 파일로 다운로드하는 방법 안내
예제 YAML
menus:
- path: pages/library
name: 도서관 대출 현황
pages:
- path: pages/library
title: 도서관 대출 현황
subtitle: 학과별 도서 대출 현황 및 상세 내역
blocks:
- type: query
resource: sqlWith
sqlWith:
- name: departmentList
resource: sampledb
query: >
SELECT deptName
FROM libraryDepartment
WHERE isActive = 1
AND isDeleted = 0
- name: borrowCount
resource: sampledb
query: >
SELECT deptName, borrowId
FROM libraryBorrow
WHERE isDeleted = 0
AND status = '대출중'
sqlType: select
sql: >
SELECT departmentList.deptName AS `학과명`
, COUNT(borrowCount.borrowId) AS `대출 도서 수`
FROM departmentList, borrowCount
WHERE departmentList.deptName = borrowCount.deptName
GROUP BY departmentList.deptName
selectOptions:
enabled: true
showDownload: false
actions:
- label: 대출내역 다운로드
button:
type: success
placement: right top
single: false
type: query
resource: sampledb
sqlType: select
sql: >
SELECT borrowDate AS `대출일`
, deptName AS `학과명`
, status AS `상태`
, borrowId AS `대출번호`
, bookId AS `도서ID`
, isbn AS `ISBN`
, bookTitle AS `도서명`
, author AS `저자`
, publisher AS `출판사`
, studentId AS `학번`
, studentName AS `학생명`
, studentContact AS `연락처`
, dueDate AS `반납예정일`
, returnDate AS `반납일`
, overdueDays AS `연체일수`
, fineAmount AS `연체료`
FROM libraryBorrow
WHERE deptName = :deptName
AND isDeleted = 0
AND status = '대출중'
params:
- key: deptName
valueFromSelectedRows: 학과명
hidden: true
downloadAfterSubmit: true
responseFn: |
console.log(rows)
forEach: true
filename: "도서대출현황_{{deptName}}"
핵심 기능 설명
1. 다중 선택 설정
selectOptions:
enabled: true # 행 선택 활성화
2. forEach 다운로드 및 파일명 설정
forEach: true # 선택된 각 행마다 개별 처리
downloadAfterSubmit: true # 처리 후 자동 다운로드
filename: "도서대출현황_{{deptName}}" # 동적 파일명
3. 파라미터 매핑
params:
- key: deptName # SQL 쿼리의 파라미터
valueFromSelectedRows: 학과명 # 선택된 행의 '학과명' 컬럼값
동작 방식
- 사용자가 테이블에서 여러 행 선택
- 다운로드 버튼 클릭
- 선택된 각 행에 대해:
- SQL 쿼리 실행
- 결과를 개별 파일로 다운로드
- 파일명에 선택된 행의 값 포함
이를 통해 여러 조건의 데이터를 한 번의 클릭으로 개별 파일로 다운로드할 수 있습니다.
관련하여 도움이 필요하신 경우 문의주시기 바랍니다.
감사합니다.