KR20220087789A - 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템 - Google Patents
쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템 Download PDFInfo
- Publication number
- KR20220087789A KR20220087789A KR1020200178176A KR20200178176A KR20220087789A KR 20220087789 A KR20220087789 A KR 20220087789A KR 1020200178176 A KR1020200178176 A KR 1020200178176A KR 20200178176 A KR20200178176 A KR 20200178176A KR 20220087789 A KR20220087789 A KR 20220087789A
- Authority
- KR
- South Korea
- Prior art keywords
- query
- variable
- unit
- grid
- query statement
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Data Mining & Analysis (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Business, Economics & Management (AREA)
- Artificial Intelligence (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Marketing (AREA)
- Economics (AREA)
- Health & Medical Sciences (AREA)
- Tourism & Hospitality (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
쿼리문을 통해 데이터베이스에서 기초 데이터셋을 가져와서 웹 상의 보고서를 작성하고 제공할 때, 가공 변수를 설정하여 쿼리문을 작성하도록 지원하고, 쿼리문에서 가공 변수를 변수값으로 바인딩하여 기초 데이터셋을 가져오는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 관한 것으로서, 웹 상의 보고서 화면에서 그리드 객체를 편집하되, 하나의 그리드 객체에 대한 정보를 하나의 엑셀 문서에 저장하고, 확장된 엑셀 도구에 의한 엑셀 문서의 편집을 통해 그리드 객체를 편집하게 하는 그리드 편집부; 웹 상의 보고서 화면에서 컨트롤 객체를 생성하고 편집하는 컨트롤 편집부; 상기 엑셀 도구가 호출되면, 상기 그리드 객체에 매핑되는 엑셀 문서를 생성하되, 그리드의 형태를 나타내는 뷰 영역 시트, 기초 데이터셋을 저장하는 데이터 영역 시트, 가공 변수를 설정하는 파라미터 영역 시트로 구성되는 엑셀 문서를 생성하는, 워크시트 초기화부; 상기 엑셀 문서의 파라미터 영역 시트 상에서 가공변수를 설정하는, 가공변수 설정부; 상기 워크시트 상의 가공 변수를 쿼리 변수로 매핑하여 쿼리문을 작성하는 쿼리문 작성부; 상기 확장모듈에 구비되고, 상기 쿼리문의 쿼리 변수를 가공 변수의 변수 값으로 바인딩 하는 제2 쿼리 바인딩부; 상기 엑셀 문서의 워크시트 상에서 기초 데이터셋을 로드하되, 상기 제2 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 로드하는, 데이터셋 로드부; 상기 서버에 구비되고, 상기 쿼리문의 쿼리 변수를 가공 변수의 변수 값으로 바인딩 하는 제1 쿼리 바인딩부; 그리드 객체에 매핑되는 엑셀 문서의 내용에 따라 해당 그리드 객체의 내용을 웹 상에 표시하되, 상기 제1 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 기초 데이터셋을 로드하고, 로드된 기초 데이터셋로부터 가공된 데이터셋으로 그리드 객체의 내용을 표시하는 그리드 표시부; 및, 그리드 객체와 컨트롤 객체로 구성된 보고서를 웹 상에서 표시하되, 상기 그리드 표시부를 통해 그리드 객체를 표시하는, 보고서 뷰어부를 포함하는 구성을 마련한다.
상기와 같은 시스템에 의하면, 가공 변수를 이용하여 쿼리문을 작성하게 하고 실행시 쿼리문의 가공 변수에 변수값을 바인딩함으로써, 사용자가 데이터베이스에서 기초 데이터셋을 보다 다양한 조건으로 불러올 수 있고, 이를 통해, 데이터셋의 조건에 대한 인터랙티브 기능을 보다 쉽게 구현할 수 있다.
상기와 같은 시스템에 의하면, 가공 변수를 이용하여 쿼리문을 작성하게 하고 실행시 쿼리문의 가공 변수에 변수값을 바인딩함으로써, 사용자가 데이터베이스에서 기초 데이터셋을 보다 다양한 조건으로 불러올 수 있고, 이를 통해, 데이터셋의 조건에 대한 인터랙티브 기능을 보다 쉽게 구현할 수 있다.
Description
본 발명은 쿼리문을 통해 데이터베이스에서 기초 데이터셋을 가져와서 웹 상의 보고서를 작성하고 제공할 때, 가공 변수를 설정하여 쿼리문을 작성하도록 지원하고, 쿼리문에서 가공 변수를 변수값으로 바인딩하여 기초 데이터셋을 가져오는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 관한 것이다.
또한, 본 발명은 웹 상의 보고서 내에 각 그리드를 작성할 때 엑셀 도구에서 작성하도록 지원하고 엑셀 도구의 확장 모듈에서 쿼리문을 작성하도록 지원하고, 엑셀 도구 상에서는 가공 변수를 시트 상에 설정하고 웹 상에는 해당 가공 변수를 컨트롤 객체에 매핑시키도록 지원하는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 관한 것이다.
일반적으로, 직장인들의 업무시간 중 문서작성에 소요되는 시간이 전체 업무에서 차지하는 비중이 높다. 이러한 문서작성에 소요되는 시간 및 인력에 따른 비용의 절감은 기업의 생산성 측면에서는 필수적으로 요구되는 부분이다. 이를 위해, 업무를 통합적으로 관리하고 자동화 하는 시스템이 도입되고 있다.
일례로서, 웹 환경에서 데이터베이스를 조회하여 분석하는 레포팅 기술이 제시되고 있다[특허문헌 1]. 상기 선행기술에 의하면, 개발자가 데이터베이스 서버의 데이터를 이용하여 위지윅(WYSIWYG) 방식 및 드래그 앤 드롭(Drag & Drop) 방식으로 보고서를 설계하고, 웹서버는 설계된 보고서를 등록받고, 보고서의 설정내용에 따라 데이터베이스 서버에서 필요한 데이터를 가져와서 보고서를 생성하고, 사용자는 웹브라우저 상에서 보고서를 요청하여 본다.
또한, 웹 서비스를 이용하여, 여러 곳에 분산된 데이터를 접근하고 통합하여 보고서를 실시간으로 출력하는 기술도 제시되고 있다[특허문헌 2]. 또한, 관리자가 데이터베이스에서 수신한 테이블 정보를 웹 상에서 선택하여 맵핑 테이블을 생성하고, 이를 이용하여 다양한 양식의 레포트를 생성하고, 이를 웹 상에서 선택하여 확인하는 기술도 제시되고 있다[특허문헌 3].
또한, 웹 상에서 엑셀 형태로 레포트를 작성하는 기술도 제시되고 있다[특허문헌 4]. 상기 선행기술은 엑셀 형태의 그리드를 웹 상에서 직접 작성해야 하며, 웹 상에서의 그리드 작업의 인터페이스를 엑셀의 인터페이스와 유사하게 제공하고 있다.
그러나 웹 상에서 엑셀과 같은 다양한 인터페이스를 제공하기 어렵고, 각 서비스 마다 인터페이스 방식이 다르기 때문에, 사용자는 웹 상의 인터페이스에 불편할 수 있다. 즉, 온라인 상의 인터페이스가 오프라인 상의 엑셀 프로그램의 인터페이스와 동일하지 않다.
그런데 사용자들은 자신의 컴퓨터 단말에 설치되어 이용하는 (오프라인 상의) 엑셀 도구의 인터페이스에 더 친숙하다. 따라서 사용자가 웹 상에서 보고서를 작성할 때, 데이터 가공 작업을 상용 엑셀과 같은 오프라인 상의 어플리케이션으로 수행할 수 있도록 지원하는 기술이 필요하다.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 쿼리문을 통해 데이터베이스에서 기초 데이터셋을 가져와서 웹 상의 보고서를 작성하고 제공할 때, 가공 변수를 설정하여 쿼리문을 작성하도록 지원하고, 쿼리문에서 가공 변수를 변수값으로 바인딩하여 기초 데이터셋을 가져오는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템을 제공하는 것이다.
또한, 본 발명의 목적은 본 발명은 웹 상의 보고서 내에 각 그리드를 작성할 때 엑셀 도구에서 작성하도록 지원하고 엑셀 도구의 확장 모듈에서 쿼리문을 작성하도록 지원하고, 엑셀 도구 상에서는 가공 변수를 시트 상에 설정하고 웹 상에는 해당 가공 변수를 컨트롤 객체에 매핑시키도록 지원하는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 사용자 단말의 엑셀 도구에 설치되는 확장모듈과 서버에 의해 수행되는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 관한 것으로서, 웹 상의 보고서 화면에서 그리드 객체를 편집하되, 하나의 그리드 객체에 대한 정보를 하나의 엑셀 문서에 저장하고, 확장된 엑셀 도구에 의한 엑셀 문서의 편집을 통해 그리드 객체를 편집하게 하는 그리드 편집부; 웹 상의 보고서 화면에서 컨트롤 객체를 생성하고 편집하는 컨트롤 편집부; 상기 엑셀 도구가 호출되면, 상기 그리드 객체에 매핑되는 엑셀 문서를 생성하되, 그리드의 형태를 나타내는 뷰 영역 시트, 기초 데이터셋을 저장하는 데이터 영역 시트, 가공 변수를 설정하는 파라미터 영역 시트로 구성되는 엑셀 문서를 생성하는, 워크시트 초기화부; 상기 엑셀 문서의 파라미터 영역 시트 상에서 가공변수를 설정하는, 가공변수 설정부; 상기 워크시트 상의 가공 변수를 쿼리 변수로 매핑하여 쿼리문을 작성하는 쿼리문 작성부; 상기 확장모듈에 구비되고, 상기 쿼리문의 쿼리 변수를 가공 변수의 변수 값으로 바인딩 하는 제2 쿼리 바인딩부; 상기 엑셀 문서의 워크시트 상에서 기초 데이터셋을 로드하되, 상기 제2 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 로드하는, 데이터셋 로드부; 상기 서버에 구비되고, 상기 쿼리문의 쿼리 변수를 가공 변수의 변수 값으로 바인딩 하는 제1 쿼리 바인딩부; 그리드 객체에 매핑되는 엑셀 문서의 내용에 따라 해당 그리드 객체의 내용을 웹 상에 표시하되, 상기 제1 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 기초 데이터셋을 로드하고, 로드된 기초 데이터셋로부터 가공된 데이터셋으로 그리드 객체의 내용을 표시하는 그리드 표시부; 및, 그리드 객체와 컨트롤 객체로 구성된 보고서를 웹 상에서 표시하되, 상기 그리드 표시부를 통해 그리드 객체를 표시하는, 보고서 뷰어부를 포함하고, 상기 컨트롤 편집부는 상기 컨트롤 객체에 상기 가공 변수를 매핑시키고, 상기 제1 쿼리 바인딩부는 상기 변수 값을 상기 가공 변수에 매핑되는 컨트롤 객체의 입력값으로 설정하는 것을 특징으로 한다.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 쿼리문에서의 쿼리 변수는 변수 식별자, 및, 가공 변수의 이름을 결합하여 구성되어 표기되고, 상기 제1 또는 제2 쿼리 바인딩부는, 쿼리문에서 변수 식별자를 인식하면, 해당 변수 식별자에 연결된 문자열을 가공 변수로 인식하는 것을 특징으로 한다.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 쿼리문에서 쿼리 변수를 사용할 때, 라인 삭제 기능을 구비하고, 해당 쿼리 변수에 동적 라인 삭제 기능을 나타내는 기호 또는 문자를 추가하여 구분하고, 상기 제1 또는 제2 쿼리 바인딩부는, 쿼리 변수가 라인 삭제 기능을 가지는 경우, 해당 가공 변수의 변수 값이 없거나 빈 값이면, 해당 쿼리문에서 해당 라인을 삭제하여 바인딩하는 것을 특징으로 한다.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 쿼리문에서 조건에 따라 수행되는 행이 다른 경우, 해당 행에 주석문을 삽입하고, 삽입된 주석문에 라인 삭제 기능을 가진 쿼리 변수를 삽입하고, 조건에 따라 쿼리 변수의 변수 값이 빈 값으로 입력하게 하거나 임의의 값을 입력하게 하여, 빈 값이면 해당 행이 삭제되게 하고, 임의의 값이면 해당 행이 수행되도록 제공하는 것을 특징으로 한다.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 가공변수 설정부는 변수정의 셀의 이름을 가공변수의 이름으로 설정하고, 상기 가공 변수는 상기 엑셀 문서 상에서 그리드에 표시할 테이블의 셀 내의 수식에 사용되는 것을 특징으로 한다.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 뷰 영역 시트 상의 테이블은 상기 데이터 영역 시트 상에 입력된 기초 데이터셋을 참조하되, 상기 뷰 영역 시트 상의 테이블 내의 셀의 수식에서 상기 데이터 영역 시트의 셀을 참조하고, 상기 그리드 표시부는 기초 데이터셋을 데이터베이스에서 가져와서 가상 시트 상에 저장하고, 상기 그리드 객체의 테이블의 각 셀을 수식에 따라 반영할 때, 참조하는 데이터 영역 시트의 셀의 내용 대신, 가상 시트 상의 해당 셀의 내용으로 반영하는 것을 특징으로 한다.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 편집결과 저장부는 상기 뷰 영역 시트 상에서의 테이블에 대하여, 테이블의 헤더 행 구조, 및, 테이블의 데이터 행 구조를 템플릿 정보를 저장하되, 테이블의 데이터 행 구조를 1번째 데이터 행의 서식과 수식을 포함하는 속성 정보로 저장하고, 해당 테이블의 데이터 행이 교차 행이면, 해당 테이블의 1번째 데이터 행과 2번째 데이터 행의 서식을 모두 저장하는 것을 특징으로 한다.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 그리드 편집부, 컨트롤 편집부, 보고서 뷰어부, 그리드 표시부, 제1 쿼리 바인딩부는 상기 서버에서 구비되고, 워크시트 초기화부, 가공변수 설정부, 데이터셋 로드부, 편집결과 저장부, 제2 쿼리 바인딩부, 쿼리문 작성부는 상기 확장 모듈에서 구비되는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 의하면, 가공 변수를 이용하여 쿼리문을 작성하게 하고 실행시 쿼리문의 가공 변수에 변수값을 바인딩함으로써, 사용자가 데이터베이스에서 기초 데이터셋을 보다 다양한 조건으로 불러올 수 있고, 이를 통해, 데이터셋의 조건에 대한 인터랙티브 기능을 보다 쉽게 구현할 수 있는 효과가 얻어진다.
또한, 본 발명에 따른 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 의하면, 쿼리문의 가공 변수를 웹 상의 컨트롤 객체에 매핑시킴으로써, 기초 데이터셋의 쿼리 조건을 보다 쉽게 설정하는 인터페이스를 제공할 수 있는 효과가 얻어진다.
도 1은 본 발명을 실시하기 위한 전체 시스템에 대한 구성도.
도 2는 본 발명의 일실시예에 따른 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템의 구성에 대한 블록도.
도 3은 본 발명의 일실시예에 따른 웹 상에서 보고서 편집을 위한 인터페이스 화면을 예시한 도면.
도 4는 본 발명의 일실시예에 따른 웹 상에서 편집된 보고서를 예시한 도면이다.
도 5는 본 발명의 일실시예에 따른 초기화된 엑셀 문서를 예시한 도면이다.
도 6은 본 발명의 일실시예에 따른 파라미터 영역 시트 상에서 가공 변수를 정의하는 화면을 예시한 도면.
도 7은 본 발명의 일실시예에 따른 데이터셋을 로드하는 화면을 예시한 도면.
도 8은 본 발명의 일실시예에 따른 기초 데이터셋이 로드된 데이터 영역 시트의 화면을 예시한 도면.
도 9는 본 발명의 일실시예에 따른 엑셀 문서의 뷰 영역 시트의 편집 결과 화면을 예시한 도면.
도 10은 본 발명의 일실시예에 따른 피벗테이블의 템플릿 정보를 나타낸 예시도로서, (a) 피벗 테이블, (b) 템플릿 정보에 대한 예시도.
도 11은 본 발명의 일실시예에 따른 작성된 일반 쿼리문에 대한 예시도.
도 12는 본 발명의 일실시예에 따른 쿼리문의 가공 변수의 종류를 나타낸 표.
도 13은 본 발명의 일실시예에 따른 가공 변수를 사용한 쿼리문에 대한 예시도.
도 14는 본 발명의 일실시예에 따른 동적 라인 삭제 기능의 쿼리문과 바인딩된 쿼리문을 예시한 도면.
도 15는 본 발명의 일실시예에 따른 일부 내용만 다른 2개의 쿼리문에 대한 예시 코드.
도 16은 종래기술에 따른 프로그래밍 작업에 의해 2개의 쿼리문을 조건문으로 작성한 예시 코드.
도 17은 본 발명의 제1 실시예에 따른 동적 라인 삭제 기능에 의한 쿼리문의 조건문을 예시한 코드.
도 18 및 도 19는 본 발명의 제2 실시예에 따른 쿼리문의 조건문을 예시한 코드.
도 20은 본 발명의 일실시예에 따른 수식 자동 연산에 대한 예시도.
도 2는 본 발명의 일실시예에 따른 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템의 구성에 대한 블록도.
도 3은 본 발명의 일실시예에 따른 웹 상에서 보고서 편집을 위한 인터페이스 화면을 예시한 도면.
도 4는 본 발명의 일실시예에 따른 웹 상에서 편집된 보고서를 예시한 도면이다.
도 5는 본 발명의 일실시예에 따른 초기화된 엑셀 문서를 예시한 도면이다.
도 6은 본 발명의 일실시예에 따른 파라미터 영역 시트 상에서 가공 변수를 정의하는 화면을 예시한 도면.
도 7은 본 발명의 일실시예에 따른 데이터셋을 로드하는 화면을 예시한 도면.
도 8은 본 발명의 일실시예에 따른 기초 데이터셋이 로드된 데이터 영역 시트의 화면을 예시한 도면.
도 9는 본 발명의 일실시예에 따른 엑셀 문서의 뷰 영역 시트의 편집 결과 화면을 예시한 도면.
도 10은 본 발명의 일실시예에 따른 피벗테이블의 템플릿 정보를 나타낸 예시도로서, (a) 피벗 테이블, (b) 템플릿 정보에 대한 예시도.
도 11은 본 발명의 일실시예에 따른 작성된 일반 쿼리문에 대한 예시도.
도 12는 본 발명의 일실시예에 따른 쿼리문의 가공 변수의 종류를 나타낸 표.
도 13은 본 발명의 일실시예에 따른 가공 변수를 사용한 쿼리문에 대한 예시도.
도 14는 본 발명의 일실시예에 따른 동적 라인 삭제 기능의 쿼리문과 바인딩된 쿼리문을 예시한 도면.
도 15는 본 발명의 일실시예에 따른 일부 내용만 다른 2개의 쿼리문에 대한 예시 코드.
도 16은 종래기술에 따른 프로그래밍 작업에 의해 2개의 쿼리문을 조건문으로 작성한 예시 코드.
도 17은 본 발명의 제1 실시예에 따른 동적 라인 삭제 기능에 의한 쿼리문의 조건문을 예시한 코드.
도 18 및 도 19는 본 발명의 제2 실시예에 따른 쿼리문의 조건문을 예시한 코드.
도 20은 본 발명의 일실시예에 따른 수식 자동 연산에 대한 예시도.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명을 실시하기 위한 전체 시스템의 구성을 도 1을 참조하여 설명한다.
도 1에서 보는 바와 같이, 본 발명을 실시하기 위한 전체 시스템은 사용자 단말(10)에 설치되는 엑셀 도구(20) 및 확장모듈(60), 웹 상에서 데이터셋에 의한 보고서 작성을 지원하는 작성 서버(30), 및, 데이터셋을 저장하는 데이터베이스 또는 DB 서버(40)로 구성된다. 사용자 단말(10)과 작성 서버(30)는 인터넷 등 네트워크(80)를 통해 데이터 통신을 수행한다.
먼저, 사용자 단말(10)은 개인용 컴퓨터(PC), 노트북, 태블릿PC, 패블릿, PDA, 스마트폰 등 컴퓨팅 기능을 가지는 컴퓨팅 단말이다. 사용자 단말(10)은 통신 기능을 구비하여, 네트워크(80)를 통해 작성 서버(30)와 데이터를 송수신할 수 있다.
또한, 사용자 단말(10)은 엑셀 도구(20) 및 확장모듈(60) 등 어플리케이션이 설치되어 실행될 수 있다.
다음으로, 엑셀 도구(20)는 엑셀(마이크로소프트 사의 스프레드시트 소프트웨어 상표임) 기능을 수행하는 어플리케이션으로서, 사용자 단말(10)에 설치되어 구동되는 프로그램 시스템이다.
엑셀 도구(20)는 통상의 스프레드시트 기능을 제공하고, 특히, 위즈윅(WYSIWYG) 방식 또는 드래그앤드롭(Drag & Drop) 방식의 인터페이스를 제공한다. 즉, 엑셀 도구(20)는 화면 상에 엑셀 시트를 표시하고, 엑셀 시트 상에서 통상의 스프레드시트 작업을 수행할 수 있는 기능들을 제공한다.
또한, 엑셀 도구(20)는 엑셀 시트(또는 워크시트) 상에서 작성된 것을 엑셀 문서로 생성한다. 엑셀 문서는 다수의 워크시트로 구성되고, 각 워크시트는 시트 상에서 작성된 객체, 포맷, 데이터(또는 셀/영역, 셀 서식, 셀 수식, 셀 값) 등으로 구성된다.
바람직하게는, 엑셀 도구(20)는 마이크로소프트 사에서 제작한 스프레드시트 어플리케이션으로서, 엑셀이란 상표를 가진다.
또한, 엑셀 도구(20)는 확장 모듈(60)을 통해 그 기능이 확장된다. 이때, 기능이 확장된 엑셀 도구(20)를 확장된 엑셀도구라 부르기로 한다.
다음으로, 확장모듈(60)은 컴퓨터 단말(10)에 설치되고 엑셀 도구(20)에 플러그인 형태로 부가되는 프로그램 시스템으로서, 데이터베이스에서 데이터셋을 로드하는 기능, 데이터셋의 가공 변수를 설정하는 기능 등을 제공한다.
즉, 확장모듈(60)은 엑셀 도구(20)에 플러그인(plug-in) 방식 또는 애드인(add-in) 방식으로 부가되어 실행되는 프로그램 시스템이다. 특히, 확장모듈(60)은 엑셀 도구(20)의 적어도 하나의 명령(이하 플러그인 명령)으로 등록되고, 엑셀 도구(20)에서 해당 플러그인 명령이 호출되면 실행된다. 일례로서, 엑셀 시트 상에서 플러그인 명령이 메뉴 상에서 등록되고 메뉴에서 해당 명령이 선택되면, 확장모듈(60)이 동작된다. 또 다른 예로서, 컨트롤 객체의 이벤트 동작으로 등록되고 해당 이벤트가 발생되면, 확장모듈(60)이 동작될 수 있다.
특히, 확장모듈(60)은 초기 워크시트 생성 기능, 가공 변수 설정 기능, 데이터셋 로드 기능 등을 구비하고, 각 기능을 호출하는 명령들이 엑셀 도구(20)에 등록된다.
먼저, 확장모듈(60)은 엑셀 도구(20)가 호출되면, 엑셀 문서에서 뷰 영역(V), 데이터 영역(D), 파라미터 영역(P)을 나타내는 각 워크시트를 생성한다.
뷰 영역의 워크시트(뷰 영역 시트)는 웹 상에서 화면으로 표시할 그리드 또는 테이블의 표시 형태를 디자인하는 워크시트이다.
또한, 데이터 영역(D)의 워크시트(이하 데이터 영역 시트)는 데이터베이스에서 로드하는 데이터셋을 각 셀에서 입력받아 저장하는 워크시트이다. 이때, 데이터베이스에서 로드하는 데이터셋을 기초 데이터셋이라 부르기로 한다.
한편, 뷰 영역 시트에 표시되는 데이터셋은 기초 데이터셋을 참조하여 가공된 데이터셋이다. 따라서, 뷰 영역 시트에 표시되는 데이터셋을 가공 데이터셋이라 부르기로 한다.
또한, 파라미터 영역(P)의 워크시트(이하 파라미터 영역 시트)는 데이터셋의 가공 변수를 설정하는 워크시트이다. 가공 변수는 하나의 셀의 이름으로 설정되고, 가공 변수의 변수값은 해당 셀 내의 입력되는 값으로 설정된다.
또한, 확장모듈(60)은 가공 변수를 설정하는 기능을 제공한다. 이때, 가공 변수의 이름(변수명)은 셀의 이름으로 정의되므로, 해당 셀(변수정의 셀)에 입력되는 셀 값이 해당 가공변수의 변수값이 된다. 따라서 엑셀 도구(20) 상에서 가공 변수는 셀 이름으로 사용된다. 즉. 가공 변수의 변수값은 해당 가공 변수의 변수정의 필드(셀)에 입력된 값이다.
또한, 확장모듈(60)은 쿼리문을 작성하고, 쿼리문에 의해 데이터베이스로부터 기초 데이터셋을 로드하고, 그 로드 정보를 저장하는 기능을 지원한다. 또한, 확장모듈(60)은 기초 데이터셋의 로드 정보를 저장한다. 기초 데이터셋 로드 정보는 데이터베이스에 연결하기 위한 DB연결 정보, 데이터베이스에서 실행할 쿼리문(SQL 등)으로 구성된다.
다음으로, 작성 서버(30)는 네트워크(80)에 연결된 통상의 서버로서, 웹 상에서의 보고서 작성을 지원하되, 데이터베이스(40)로부터 가져온 데이터셋을 분석하는 보고서의 작성을 지원한다.
웹 상에서의 보고서는, 가공된 데이터셋을 표시하는 그리드 객체와, 데이터셋의 가공 변수를 처리하는 컨트롤 객체로 구성된다. 작성 서버(30)는 그리드 객체와, 컨트롤 객체를 작성하는 서비스를 제공한다.
먼저, 작성 서버(30)는 확장된 엑셀 도구(20)를 통해 그리드 객체를 생성 또는 편집하도록 제공하고, 각 그리드 객체에 연동하는 엑셀 문서를 대응하여 생성 또는 보관한다. 즉, 하나의 그리드 객체를 생성 또는 편집하기 위하여, 사용자는 확장된 엑셀 도구(20)에서 생성 또는 편집한다. 그리고 확장된 엑셀 도구(20)에서 생성 또는 편집된 엑셀 문서는 저장되는데, 해당 그리드 객체에 연동되어 보관된다.
또한, 확장된 엑셀 도구(20)에서 저장하는 편집 결과는 엑셀 문서 외에도, 템플릿, 데이터셋 로드 정보 등을 포함한다. 템플릿은 엑셀 문서의 뷰 영역 시트에 대한 정보를 추출하여 저장한 데이터 구조체이고, 데이터셋 로드 정보는 DB 연결 정보와, 쿼리문 등 데이터베이스에서 데이터셋(기초 데이터셋)을 로드하기 위한 정보이다.
또한, 작성 서버(30)는 확장된 엑셀 도구(20)에 의해 엑셀 문서의 작성이 완료되면, 저장된 엑셀 문서(또는 템플릿)을 읽어들여 엑셀 문서에 정의된 내용에 따라 그리드 객체를 생성 또는 수정한다.
이때, 작성 서버(30)는 파라미터 영역 시트에 정의된 가공 변수를 읽어들여 가공 변수로 정의하여 설정한다. 즉, 가공 변수를 컨트롤 객체에 이용하도록 선언한다.
또한, 작성 서버(30)는 해당 엑셀 문서의 뷰 영역 시트의 테이블 형태에 따라 그리드 객체의 그리드 형태를 생성/편집하고, 기초 데이터셋을 가져와서 해당 그리드에 반영한다. 특히, 작성 서버(30)는 쿼리문의 가공 변수를 바인딩하여 데이터베이스로부터 데이터셋(기초 데이터셋)을 가져온다.
또한, 작성 서버(30)는 컨트롤 객체를 작성하도록 인터페이스를 제공한다. 컨트롤 객체는 버튼, 콤보박스, 체크박스, 입력 박스 등 명령 또는 데이터를 입력받기 위한 객체를 포함한다.
작성 서버(30)는 컨트롤 객체를 가공 변수에 매핑시킨다. 컨트롤 객체가 가공 변수에 매핑되면, 해당 컨트롤 객체의 입력값이 해당 가공 변수의 변수값으로 자동으로 매핑한다. 즉, 작성 서버(30)는 컨트롤 객체의 입력값이 갱신(입력)되는 이벤트를 감지하면, 매핑된 가공 변수의 변수값을 갱신된(입력된) 입력값으로 바인딩하여 모든 객체를 갱신한다. 또한, 작성 서버(30)는 쿼리문의 가공 변수를 변수값으로 바인딩하여, 바인딩된 쿼리문으로 데이터베이스에서 데이터셋을 다시 가져와 갱신한다.
다음으로, 데이터베이스(40)는 데이터셋을 저장하기 위한 통상의 데이터베이스(DB)로서, 데이터를 관리하기 위한 DBMS(database management system)를 구비하고, 데이터셋의 저장, 삭제, 검색 등의 작업들을 쿼리(또는 쿼리문)를 통해 수행한다. 특히, 데이터베이스(40)는 상용화된 데이터베이스로서, 데이터셋을 처리하기 위한 일반적인 쿼리 기능을 이용하여, 데이터 쿼리 서비스를 수행한다.
특히, 데이터베이스(40)는 빅데이터를 저장하는 데이터베이스이다. 또한, 바람직하게는, 데이터베이스(40)는 관계형 데이터베이스(RDB)로 구성된다.
또한, 데이터베이스(40)는 작성 서버(30)에 직접 연결된 데이터베이스로 구현될 수도 있고, 인터넷 상에서 독립된 DB 서버로서 구현될 수 있다.
특히, 데이터베이스(40)는 DBMS에 의해 구동되는 하나의 서버로 구현될 수 있다. 즉, 데이터베이스(40)는 하나의 서버로서, 작성 서버(30)의 요청에 따라 요청된 데이터셋을 열람/제공하는 서비스를 제공한다. 따라서 데이터베이스와 DB 서버는 동일한 참조 번호를 사용한다.
다음으로, 본 발명의 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템을 도 2를 참조하여 설명한다.
도 2에서 보는 바와 같이, 본 발명의 일실시예에 따른 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템(30)은 웹 상에서 보고서 화면의 디자인 서비스를 제공하는 화면 편집부(31), 그리드를 편집하는 그리드 편집부(32), 컨트롤 객체를 편집하는 컨트롤 편집부(33), 그리드 및 컨트롤 객체로 구성된 보고서를 웹 상에서 표시하는 보고서 뷰어부(34), 엑셀 문서 또는 템플릿에 따라 그리드 객체의 내용을 표시하는 그리드 표시부(35), 쿼리문을 바인딩하는 제1 쿼리 바인딩부(36), 엑셀 문서의 워크시트를 초기화 하는 워크시트 초기화부(61), 가공변수를 설정하는 가공변수 설정부(62), 데이터셋을 로드하는 데이터셋 로드부(63), 및 편집결과를 저장하는 편집결과 저장부(64), 쿼리문을 작성하는 쿼리문 작성부(65), 쿼리문을 바인딩하는 제2 쿼리 바인딩부(66)로 구성된다. 또한, 필요한 데이터를 저장하기 위한 저장부(38)를 더 포함하여 구성될 수 있다.
이때, 화면 편집부(31), 그리드 편집부(32), 컨트롤 편집부(33), 보고서 뷰어부(34), 그리드 표시부(35), 제1 쿼리 바인딩부(36)는 작성 서버(30)에서 구비되고, 워크시트 초기화부(61), 가공변수 설정부(62), 데이터셋 로드부(63), 편집결과 저장부(64), 쿼리문 작성부(65), 제2 쿼리 바인딩부(66)는 확장 모듈(60)에서 구비된다.
먼저, 화면 편집부(31)는 웹 상에서 보고서 화면의 디자인 서비스를 제공한다.
웹 상에서의 보고서는, 가공된 데이터셋(가공 데이터셋)을 표시하는 그리드 객체와, 가공 변수와 매핑되어 가공 변수 값을 입력받는 컨트롤 객체로 구성된다.
도 3에서 보는 바와 같이, 화면 편집부(31)는 위지윅(WYSIWYG) 방식 및 드래그앤드롭(Drag & Drop) 방식으로 그리드 객체 또는 컨트롤 객체를 생성하고, 화면 상에 배치하도록 지원한다.
또한, 화면 편집부(31)는 그리드 객체 또는 컨트롤 객체에 대하여, 그리드 편집부(32) 또는 컨트롤 편집부(33)을 통해, 세부적으로 편집하는 서비스를 제공한다.
다음으로, 그리드 편집부(32)는 그리드 객체를 편집하되, 하나의 그리드 객체에 대한 정보를 하나의 엑셀 문서 등에 저장하여 관리하고, 확장된 엑셀 도구(20)에 의한 엑셀 문서의 편집으로 그리드 객체를 편집한다.
즉, 그리드 편집부(32)는 각 그리드 객체에 매핑되는 엑셀 문서 등을 생성 또는 보관한다. 엑셀 문서 등(또는 편집결과 정보)은 엑셀 문서, 템플릿(그리드 템플릿), 데이터셋 로드 정보 등으로 구성된다. 템플릿, 데이터셋 로드 정보 등을 추가 정보라 부르기로 한다.
해당 엑셀 문서는 뷰 영역 시트, 데이터 영역 시트, 파라미터 영역 시트 등으로 구성되어, 그리드 객체의 정보를 담은 엑셀 파일이다. 템플릿(또는 그리드 템플릿)은 뷰 영역 시트의 테이블(또는 그리드)의 형태, 서식, 수식 등을 저장하는 데이터 구조체이다. 뷰 영역 시트의 내용을 보다 빠르게 해석하여 이용하기 위한 것이다. 또한, 데이터셋 로드 정보는 데이터베이스에 연결하기 위한 DB연결 정보, 데이터베이스에서 실행할 쿼리문(SQL 등)으로 구성된다.
특히, 그리드 편집부(32)는 각 그리드 객체에 대한 편집 요청을 받으면, 해당 그리드 객체에 매핑된(연동된) 엑셀 문서 등이 존재하는지를 판단한다. 존재하면, 해당 엑셀 문서를 열기(open)하면서 확장된 엑셀 도구(20)를 실행시킨다. 존재하지 않으면, 새로운 엑셀 문서를 생성하고, 생성된 엑셀 문서를 열면서 확장된 엑셀 도구(20)를 실행시킨다. 이때, 확장된 엑셀 도구(20) 또는 워크시트 초기화부(61)는 해당 엑셀 문서를 초기화 한다. 특히, 워크시트 초기화부(61)에 의해 초기 워크시트가 생성되고 초기화 된다.
또한, 그리드 편집부(32)는 확장된 엑셀 도구(20)에 의해 엑셀 문서의 작성이 완료되면, 저장된 엑셀 문서 등(또는 편집결과 정보)을 참조하여 그 내용에 따라 그리드 객체를 갱신한다. 이때, 바람직하게는, 그리드 표시부(35)를 통해, 엑셀 문서 등의 내용에 따라 그리드 객체의 내용을 화면 상에 표시한다.
다음으로, 컨트롤 편집부(33)는 컨트롤 객체를 편집하도록 인터페이스를 제공한다.
컨트롤 객체는 버튼, 콤보박스, 도형, 텍스트 박스 등 웹 보고서를 표현하기 위한 객체들이다. 특히, 컨트롤 객체는 버튼, 콤보박스, 체크박스, 입력 박스 등 명령 또는 데이터를 입력받기 위한 객체를 포함한다. 이때, 입력되는 명령 또는 데이터를 컨트롤 객체의 입력값이라 부르기로 한다.
컨트롤 편집부(33)는 그리드 객체의 엑셀 문서 등으로부터 가공 변수 정보를 읽어들여, 가공 변수를 선언한다(즉, 가공 변수로 정의하여 설정한다). 즉, 그리드 객체의 엑셀 문서에는 파라미터 영역 시트에 가공 변수들이 선언된다. 컨트롤 편집부(33)는 각 그리드 객체의 엑셀 문서에 저장된 가공 변수들을 읽어들여, 해당 가공 변수를 컨트롤 객체에서 사용할 수 있도록 선언한다.
또한, 컨트롤 편집부(33)는 컨트롤 객체를 가공 변수에 매핑시키는 기능을 제공한다. 즉, 사용자는 특정 컨트롤 객체에 특정 가공 변수를 매핑시킬 수 있다. 바람직하게는, 컨트롤 객체를 가공 변수의 이름으로 정의함으로써, 가공 변수와, 컨트롤 객체와 매핑된다.
컨트롤 객체가 가공 변수에 매핑되면, 해당 컨트롤 객체의 입력값이 해당 가공 변수의 변수값으로 자동으로 매핑한다.
또한, 보고서 뷰어뷰(34)에 의해, 컨트롤 객체의 입력값이 갱신(입력)되는 것(갱신 이벤트)이 감지되면, 매핑된 가공 변수의 변수값을 갱신된(입력된) 입력값으로 바인딩하여 모든 객체가 갱신된다. 또한, 갱신 이벤트가 감지되면, 보고서 뷰어뷰(34)에 의해, 데이터셋 로드 정보의 쿼리문을 가공변수의 변수값으로 바인딩하여, 바인딩된 쿼리문으로 기초 데이터셋을 다시 가져온다.
다음으로, 보고서 뷰어부(34)는 편집된 보고서를 화면 상에 출력한다.
즉, 보고서 뷰어부(34)는 컨트롤 객체와 그리드 객체의 내용을 화면 상에 출력하고, 컨트롤 객체에서 입력값의 입력 이벤트(갱신 이벤트)가 발생하면 해당 컨트롤 객체에 매핑된 가공 변수의 변수값을 갱신하여 화면 상의 모든 객체를 갱신 출력한다. 특히 매핑된 가공 변수의 변수값으로 쿼리문이 바인딩되고, 바인딩된 쿼리문에 의해 데이터셋도 갱신된다. 즉, 바인딩된 쿼리문으로 데이터베이스로부터 기초 데이터셋을 다시 가져와서 갱신한다.
구체적으로, 보고서 뷰어부(34)는 각 그리드 객체의 내용을 출력하되, 해당 그리드 객체의 엑셀 문서 등에 정의된 내용을 읽어들여 출력한다. 이때, 보고서 뷰어부(34)는 그리드 표시부(35)를 통해, 엑셀 문서 등(템플릿)의 내용에 따라 그리드의 형태를 편집하고, 해당 그리드에 가공 데이터셋을 반영하여 출력한다.
또한, 보고서 뷰어뷰(34)는 컨트롤 객체의 입력값이 갱신(입력)되는 이벤트를 감지한다. 그리고 이벤트가 감지되면, 매핑된 가공 변수의 변수값을 갱신된(입력된) 입력값으로 바인딩하여 모든 객체를 갱신한다.
이때, 보고서 뷰어뷰(34)는 제1 쿼리 바인딩부(36)를 통해 쿼리문을 가공 변수의 변수값으로 바인딩 시키고, 바인딩된 쿼리문에 의해 기초 데이터셋을 다시 가져와서 갱신한다.
바람직하게는, 보고서 뷰어뷰(34)는 그리드를 표시하는 뷰어를 구비한다. 그리드 뷰어는 웹 형식(HTML 5.0 이상) 또는 캔버스(Canvas) 기반으로 DOM(Document Object Model) 기반의 컴포넌트로 구성된다. 따라서 월등히 빠른 렌더링(Rendering) 속도를 지원한다.
도 4는 웹 상에서 보고서를 표시한 것을 예시하고 있다.
다음으로, 제1 쿼리 바인딩부(36)는 컨트롤 객체에 매핑된 가공 변수의 변수값을 해당 컨트롤 객체의 입력값으로 설정하고, 쿼리문에서 해당 가공 변수를 변수값(또는 입력값)으로 바인딩하여 쿼리문(바인딩된 쿼리문)을 생성한다.
쿼리문의 바인딩은 이하에서, 제2 쿼리 바인딩부(66)를 설명하면서 보다 구체적으로 설명한다. 제1 쿼리 바인딩부(36)가 쿼리문을 바인딩하는 과정은, 제2 쿼리 바인딩부(66)의 바인딩 과정과 같다.
다음으로, 워크시트 초기화부(61)는 엑셀 문서의 워크시트를 초기화 한다.
도 5에서 보는 바와 같이, 워크시트 초기화부(61)는 엑셀 문서에서 뷰 영역(V), 데이터 영역(D), 파라미터 영역(P)을 나타내는 각 워크시트를 생성한다.
워크시트 초기화부(61)는 엑셀 도구(20)가 호출되면 실행된다.
뷰 영역의 워크시트(이하 뷰 영역 시트)는 웹 상에서 화면으로 표시할 그리드 또는 테이블의 표시 형태를 디자인하는 워크시트이다. 사용자는 뷰 영역 시트 상에서 테이블 등을 디지인한다. 디자인된 테이블 등은 그리드 객체의 형태로 이용된다. 특히, 사용자는 엑셀 도구(20)의 인터페이스를 이용하여 테이블 등을 디자인한다.
또한, 뷰 영역의 워크시트 상에서 테이블 내의 각 영역 또는 셀은 데이터 영역 시트의 셀 또는 가공 변수의 셀을 참조한다. 즉, 사용자는 엑셀 도구(20) 상에서 엑셀 기능을 활용하여 뷰 영역 시트를 작성한다. 이때, 테이블의 각 셀 또는 영역에는 직접 수치가 입력되거나, 참조되는 다른 셀이 입력된다. 즉, 셀/영역 참조 방식은 직접 셀(영역)의 위치로 입력되거나, 셀 이름으로 입력된다. 가공 변수는 가공 변수의 셀 이름으로 입력된다.
또한, 뷰 영역에 표시되는 데이터셋은 기초 데이터셋을 가공한 가공 데이터셋이다.
또한, 데이터 영역(D)의 워크시트(이하 데이터 영역 시트)는 쿼리문에 의해 데이터베이스에서 로드하는 데이터셋을 각 셀에서 입력받아 저장하는 워크시트이다. 이때, 데이터베이스에서 로드하는 데이터셋을 기초 데이터셋이라 부르기로 한다.
또한, 파라미터 영역(P)의 워크시트(이하 파라미터 영역 시트)는 데이터셋의 가공 변수를 설정하는 워크시트이다. 가공 변수는 하나의 셀의 이름으로 설정되고, 가공 변수의 변수값은 해당 셀 내의 입력되는 값으로 설정된다.
워크시트 초기화부(61)는 파라미터 영역 시트 상에 가공 변수를 정의하는 테이블을 생성한다. 가공 변수 테이블은 각각이 가공 변수를 나타내는 다수의 레코드로 구성된다.
각 레코드는 변수명(변수 이름), 변수정의, 초기값, 설명 등 필드로 구성된다. 변수명 필드는 해당 가공 변수의 이름(또는 변수명)을 입력하는 셀이고, 변수정의 필드는 가공 변수의 이름(또는 변수명 필드값)으로 자신의 셀 이름을 설정하는 셀이다. 또한, 초기값 필드와 설명 필드는 각각 가공변수의 초기값이나 설명을 입력하는 셀이다.
특히, 변수정의 필드는 자신의 셀 이름이 변수명(가공변수의 이름)으로 설정되므로, 변수정의 필드에 입력되는 셀의 값이 해당 가공 변수의 변수값이 된다.
즉, 사용자는 엑셀 도구(20) 상에서 가공변수의 이름을 셀의 이름 형태로 사용할 수 있다. 예를 들어, 엑셀 도구(20) 상에서 셀의 수식에 가공변수의 이름을 기재하면, 해당 셀 수식에서 가공 변수는 가공 변수의 변수정의 필드(셀)에 설정된 값으로 대체된다. 따라서 엑셀 도구(20) 상에서 해당 가공변수의 이름은 가공 변수와 같이 활용될 수 있다.
또한, 가공 변수는 쿼리문의 바인딩 구문에서 변수로 활용될 수 있다. 이때, 가공 변수의 변수값은 해당 가공 변수의 변수정의 필드(셀)에 입력된 값이다.
한편, 워크시트 초기화부(61)는 이미 저장된 데이터셋 로드 정보가 존재하는 경우, 데이터셋 로드 정보를 활용하여 기초 데이터셋을 다시 가져와서, 데이터 영역 시트의 내용을 갱신한다.
이때, 워크시트 초기화부(61)는 쿼리문에 가공 변수에 의해 정의된 경우, 가공 변수의 변수값으로 해당 가공 변수를 바인딩하고, 바인??된 쿼리문으로 데이터베이스에서 데이터셋을 다시 가져와서 기초 데이터셋을 갱신한다.
다음으로, 가공변수 설정부(62)는 파라미터 영역 시트 상에서 가공변수를 설정한다.
도 6에서 보는 바와 같이, 가공변수 설정부(62)는 특정 레코드의 변수명 필드에 변수명(변수 이름)이 입력되면, 해당 레코드의 변수정의 필드의 셀 이름을, 입력된 변수명(변수 이름)으로 설정한다.
한편, 가공 변수의 이름(변수명)은 셀의 이름으로 정의되므로, 해당 셀에 입력되는 셀 값이 해당 가공변수의 변수값이 된다. 즉, 셀 이름이 변수로 활용된다.
즉, 각 가공변수는 엑셀의 네임(Name) 객체로 관리되고, 해당 네임(Name)의 값은 사용자가 해당 셀에서 입력한 값으로 대체된다. 엑셀의 네임(Name)은 엑셀에서 셀 주소들에 대하여 고유한 이름을 정의하고, 해당 이름을 사용할 수 있다. 그리고 해당 이름은 해당 셀(이름에 대응되는 셀 또는 셀 주소)과 대응되고, 해당 이름은 최종적으로 셀 값으로 대체되어 계산된다.
예를 들어, 셀 A1의 이름을 "주소"로 정의하고, 셀 A1에 "서울시 종로구 혜화동 90번지"라는 값을 입력하고, B1 셀에서 "=주소"라는 수식을 사용한다. 이때, 수식에서 "주소"는 이름이고, 해당 이름은 해당 셀(대응되는 셀)의 값("서울시 종로구 혜화동 90번지")으로 대체된다. 따라서 셀 B1에는 최종적으로 "서울시 종로구 혜화동 90번지"의 값으로 계산된다.
한편, 가공 변수는 쿼리문에서도 사용되나, 정의된 가공 변수의 이름에 변수 식별자가 붙어 사용된다.
다음으로, 데이터셋 로드부(63)는 쿼리문 작성부(65)를 통해 쿼리문을 작성하고, 제2 쿼리 바인딩부(66)를 통해 쿼리문을 바인딩 하고, 바인딩된 쿼리문에 의해 데이터베이스로부터 기초 데이터셋을 로드하고, 그 로드 정보를 저장하는 서비스를 제공한다. 이때, 바람직하게는,
도 7에서 보는 바와 같이, 데이터셋 로드부(63)는 데이터베이스(40)에 연결하기 위한 키 등 연결 정보를 입력하는 기능 또는 인터페이스를 제공한다. 사용자는 키 등 연결정보를 입력함으로써, 데이터베이스(40)에 접근한다.
또한, 데이터셋 로드부(63)는 쿼리문 작성부(65)를 통해, 데이터베이스(40)에서 기초 데이터셋을 참조하는 쿼리문을 작성하는 기능 또는 인터페이스를 제공한다. 또한, 데이터셋 로드부(63)는 제2 쿼리문 바인딩부(66)를 통해, 작성된 쿼리문을 바인딩 한다.
그리고 도 8에서 보는 바와 같이, 데이터셋 로드부(63)는 바인딩된 쿼리문에 의해, 데이터베이스로부터 기초 데이터셋을 로드하여 데이터 영역 시트에 출력한다. 이때, 출력위치는 사전에 정해지거나, 사용자에 의해 설정될 수 있다. 이때, 바람직하게는, 해당 데이터 영역 시트의 첫 행에 데이터셋의 필드명을 출력하고, 그 다음 행부터 데이터셋을 출력한다.
또한, 데이터셋 로드부(63)는 기초 데이터셋의 로드 정보를 저장한다. 기초 데이터셋 로드 정보는 데이터베이스에 연결하기 위한 DB연결 정보, 데이터베이스에서 실행할 쿼리문(SQL 등)으로 구성된다. 바람직하게는, 기초 데이터셋을 출력할 위치 주소를 나타내는 출력위치 정보를 더 포함할 수 있다.
DB연결 정보는 시스템 내 데이터베이스 연결 정보를 관리하며, DB서버 주소, 해당 정보에 접근할 수 있는 키 값 등을 포함한다. 해당 키를 가지고 내부적으로 데이터 베이스 연결 정보를 추출한다.
쿼리문은 데이터베이스에서 실행할 통상의 SQL 구문이다.
또한, 출력위치 정보는 쿼리를 실행한 결과를 출력할 위치에 대한 주소 값을 포함한다. 일례로서, "D1$A1"로 표시되고, 이것은 D1 워크시트의 A1 셀부터 출력한다는 의미이다.
다음으로, 편집결과 저장부(64)는 엑셀 도구(20)가 종료될 때, 워크시트 상에서 작업된 편집 결과를 저장한다. 특히, 편집 결과는 엑셀 문서, 템플릿, 데이터셋 로드 정보 등이다.
엑셀 문서는 엑셀 도구(20)에서 작업한 문서이며, 문서 자체로 저장된다.
앞서 설명한 바와 같이, 엑셀 문서는 뷰 영역 시트, 데이터 영역 시트, 파라미터 영역 시트로 구성된다. 데이터 영역 시트에는 기초 데이터셋이 입력된다. 이때, 사용자는 뷰 영역 시트에서 그리드를 위한 테이블을 편집하는데, 기초 데이터셋을 참조하여 분석된 데이터를 테이블에 표시되도록 편집한다.
도 9에서 보는 바와 같이, 뷰 영역 시트 내의 테이블에서, 셀은 데이터 영역 시트의 데이터(또는 셀)를 참조한다. 뷰 영역 시트의 셀 C5에는 함수 sumif를 사용한 수식을 가진다. 이때, 함수 sumif의 각 변수 중 일부가 데이터 영역 시트(D1)의 셀 또는 영역을 참조한다.
사용자는 데이터 영역 시트를 보면서, 데이터베이스에서 가져온 기초 데이터셋의 구조를 명확히 볼 수 있다. 따라서 사용자는 데이터 영역 시트의 데이터를 이용하여, 뷰 영역 시트에서 테이블을 손쉽게 디자인할 수 있다.
또한, 데이터셋 로드 정보는 데이터베이스에 연결하기 위한 DB연결 정보, 데이터베이스에서 실행할 쿼리문(SQL 등)으로 구성된다.
또한, 템플릿(또는 그리드 템플릿)은 엑셀 문서 내의 뷰 영역 시트의 테이블(또는 그리드)의 형태, 서식, 수식 등을 저장하는 데이터 구조체이다. 엑셀 문서의 뷰 영역 시트의 내용을 보다 빠르게 해석하여 이용하기 위한 것이다. 바람직하게는, 템플릿 정보는 JSON(JavaScript Object Notation) 등 표준 스크립트 데이터 형식으로 저장한다.
특히, 뷰 영역 시트 상의 테이블의 각 셀은 데이터 영역 시트 상의 기초 데이터셋의 셀을 수식으로 참조한다. 따라서 템플릿 내의 셀 수식 정보에는 데이터 영역 시트 상의 셀(또는 기초 데이터셋, 기초 데이터셋의 데이터)을 참조하는 정보가 포함된다.
한편, 다른 실시예로서, 템플릿을 이용하지 않고 직접 엑셀 문서를 해석하여 구현할 수 있다. 이 경우, 템플릿을 따라 생성하지 않는다.
특히, 편집결과 저장부(64)는 엑셀 문서의 뷰영역 시트 상의 테이블로부터 그리드 구조 정보를 추출하여, 템플릿 정보로 저장한다.
즉, 뷰 영역 시트 상이 테이블로부터, 각 테이블의 구조, 및, 테이블 또는 각 셀의 속성(서식, 수식 등) 등 그리드 구조 정보를 추출하여 템플릿으로 저장한다. 바람직하게는, 템플릿은 JSON 등 계층 구조를 가지는 형식으로 작성된다. 테이블 구조는 템플릿의 계층 구조로 변환되고, 테이블의 각 셀의 속성은 템플릿의 계층 구조의 리프 노드의 속성으로 변환된다. 각 셀의 속성은 셀 값, 서식, 수식 등으로 구성된다.
도 10은 테이블에 대한 템플릿의 그리드 구조 정보를 예시한 도면이다. 즉, 도 10a는 엑셀 문서의 뷰영역 시트의 피벗 테이블을 예시하고, 도 10b는 도 10a의 피벗 테이블의 템플릿 정보(그리드 구조 정보)를 예시하고 있다. 특히, 템플릿 정보는 JSON(JavaScript Object Notation) 형식으로 저장된다. 즉, 피벗 테이블을 계층 구조로 분해하여, 각 계층의 요소와, 해당 요소의 속성 값들로 구성된다.
또한, 객체가 테이블인 경우, 해당 테이블의 헤더 행과, 데이터의 1번째 행의 구조 정보만을 템플릿으로 저장한다. 테이블에서 데이터 행의 서식이 교차 행인 경우, 연속된 2개의 데이터 행의 서식(속성)을 모두 저장한다.
다음으로, 쿼리문 작성부(65)는 데이터베이스(40)에서 기초 데이터셋을 참조하는 쿼리문을 작성하는 기능 또는 인터페이스를 제공한다.
특히, 도 7과 같이, 쿼리문 작성부(65)는 쿼리문을 텍스트 형태로 직접 작성하거나, 드래그앤드롭 방식의 GUI(그래픽 유저 인터페이스)를 통해 쿼리문을 작성하는 기능을 제공한다. 쿼리문 작성부(65)는 GUI 인터페이스를 통해 쿼리를 작성하더라도, 텍스트 형태의 쿼리문을 생성한다.
도 11과 같이, 텍스트 형태의 쿼리문은 SELECT ~ FROM ~ WHERE 등의 구문에 의한 통상의 쿼리문으로 구성된다.
한편, 쿼리문 작성부(65)는 가공 변수를 쿼리 변수로 이용하여 쿼리문을 작성할 수 있다.
쿼리문에서의 쿼리 변수는 변수 식별자, 및, 가공 변수의 이름을 결합하여 구성된다. 즉, 실제로 쿼리 변수는 가공 변수와 매핑되고, 실제로 동일한 변수를 의미한다. 다만, 쿼리 변수와 가공 변수의 표기 형식이 다르다. 즉, 쿼리 변수를 가공 변수의 이름을 포함하여 만들어 쿼리문에서 표기하여 이용하나, 실제로 동일한 변수를 나타낸다. 이하에서 쿼리 변수와 가공 변수의 용어를 혼용한다.
바람직하게는, 다음과 같이, 변수 식별자가 쿼리 변수의 접두어로 결합된다.
[쿼리문의 쿼리 변수]
< 변수 식별자 > + < 가공 변수의 이름 >
즉, 쿼리 변수는 가공 변수에 변수 식별자를 더하여 매핑되나, 실제로 동일한 변수를 나타낸다.
또한, 변수 식별자에는 변수의 종류를 나타내는 기호 또는 문자가 포함될 수 있다.
일례로서, 변수 식별자는 ":VS_"로 표시된다. 이때, 콜론(:)과 변수(Variable)의 "V"로 조합하여 식별하고, "S"는 변수의 종류를 나타낸다. 또한, 언더바("_")는 가공 변수의 이름과의 결합을 나타낸다.
변수의 종류는 도 12에 도시되고 있다.
또한, 쿼리문에서 쿼리 변수(가공 변수)를 이용하여 작성한 예가 도 13에 도시되고 있다. 도 13에서 보는 바와 같이, "상품명", "지점명", "매출월", "매출월_TO"는 가공 변수로 설정된 가공 변수의 이름이다. 앞서, 파라미터 시트(P)에서 설정된 가공 변수의 이름들이다.
또한, 쿼리문 작성부(65)는 쿼리문에서 쿼리 변수(가공 변수)를 사용할 때, 라인 삭제 기능(이하 동적 라인 삭제 기능)을 구비한다. 이때, 쿼리문의 쿼리 변수에 동적 라인 삭제 기능을 나타내는 기호 또는 문자를 추가하여 구분한다. 일례로서, 동적 라인 삭제 기능은 변수 이름 앞에 "@"를 기입하여 구분한다.
동적 라인 삭제 기능의 쿼리 변수는 가공 변수와는 달리, 라인 삭제의 바인딩 기능을 추가로 가진다.
동적 라인 삭제 기능은, 해당 가공 변수의 변수 값이 없거나 빈 값인 경우, 쿼리문에서 해당 라인을 삭제하여 바인딩한다.
도 14는 조건절(WHERE)에서 사용하는 동적 라인 삭제 기능의 쿼리 변수를 예시하고 있다. 도 14(a)는 작성된 쿼리문이고, 도 14(b)는 도 14(c)의 변수 값에 바인딩하여 생성된 쿼리문을 나타낸다.
한편, 동적 라인 삭제 기능의 쿼리 변수는 조건에 따라 서로 다른 쿼리문을 수행하는 쿼리문에 대한 조건문을 구현할 수 있다.
도 15의 예와 같이, 각 팀이 "구매팀"인지 여부에 따라 (a)와 (b)의 쿼리문 2개로 구분된다. 즉, 구매팀이 아닌 다른 팀인 경우 도 15(a)와 같이, 단가와 금액을 표시하지 않는 쿼리문을 실행해야 하고, 구매팀인 경우 도 15(b)와 같이, 단가와 금액을 보여주는 쿼리문을 실행해야 한다.
도 16은 종래 방식에 따라 도 15의 2가지 경우의 쿼리문을 작성하는 코드를 예시하고 있다. 즉, 종래 방식은 조건 분기를 위해서는 프로그래밍 작업이 필요하다.
쿼리문 작성부(65)는 동적 라인 삭제 기능의 쿼리 변수를 이용하여 다음 2가지 방식으로 구현할 수 있다.
첫번째 방식은, 조건에 해당하는 쿼리문의 모든 행에, 동적 라인 삭제 기능의 쿼리 변수를 주석문으로 삽입한다. 이를 도 17에 도시하고 있다.
도 17에서 보는 바와 같이, 쿼리 변수 "구매팀(@:VN_구매팀)" 의 변수 값이 없으면, 해당 라인(쿼리 변수가 기재된 라인), 즉, 단가와 금액을 보여주는 해당 라인이 삭제된다. 또한, 쿼리 변수 "다른팀(@:VN_다른팀)"의 변수 값이 존재하면, 해당 쿼리 변수는 변수 값으로 치환되나, 주석문이므로 아무 영향을 주지 않는다. 또한, 해당 라인은 존재하므로, 단가와 금액을 0으로 보여주는 쿼리문이 바인딩 된다.
또한, 도 17의 예에서, 반대로, 쿼리 변수 "구매팀(@:VN_구매팀)" 의 변수 값이 존재하고 쿼리 변수 "다른팀(@:VN_다른팀)"의 변수 값이 없으면, 단가와 금액을 0으로 보여주는 행은 삭제되고 단가와 금액을 보여주는 해당 라인만 존재하여, 단가와 금액을 보여주는 쿼리문으로 바인딩 된다.
다음으로, 2번째 방식은 주석문의 예약어를 사용하는 방식이다. 해당 방식의 일례가 도 18 및 도 19에 도시되고 있다.
도 18과 같이, 조건에 따라 수행되는 행들의 전후에 쿼리 변수를 설정한다. 즉, "다른팀"인 경우의 단가와 금액을 0으로 보여주는 행들의 전후에 각각 "다른팀 시작과 종료(@:VN_다른팀_START, @:VN_다른팀_END)"의 쿼리 변수를 작성한다. 그리고, "구매팀"인 경우의 단가와 금액을 보여주는 행들의 전후에 각각 "구매팀 시작과 종료(@:VN_구매팀_START, @:VN_구매팀_END)"의 쿼리 변수를 작성한다.
그리고 도 19a와 같이, 다른팀의 경우, 다른팀의 쿼리 변수들에는 변수 값을 없게 하고(또는 null, 빈칸 등), 구매팀의 쿼리 변수들에는 주석문의 시작 기호와 종료 기호를 변수값으로 각각 입력한다. 그러면, 도 19a의 하단과 같은 쿼리문이 바인딩 된다.
또한, 도 19b와 같이, 구매팀의 경우, 구매팀의 쿼리 변수들에는 변수 값을 없게 하고(또는 null, 빈칸 등), 다른팀의 쿼리 변수들에는 주석문의 시작 기호와 종료 기호를 변수값으로 각각 입력한다. 그러면, 도 19b의 하단과 같은 쿼리문이 바인딩 된다.
한편, 2번째 방식인, 주석문의 예약어를 사용하는 방식은, 동적 라인 삭제 기능의 쿼리 변수를 이용하지 않고, 일반 쿼리 변수를 이용할 수도 있다. 즉, 쿼리 변수를 문자열로 정의하고, 쿼리 변수의 변수값을 넣지 않는 대신, 빈칸 등을 넣어도 가능하다.
다음으로, 제2 쿼리문 바인딩부(66)는 작성된 쿼리문을 가공 변수의 변수 값으로 바인딩 한다.
제2 쿼리문 바인딩부(66)는 작성된 쿼리문에서 변수 식별자를 검출하고, 변수 식별자를 인식하면, 변수 식별자에 연결된 문자열을 가공 변수의 이름으로 인식한다.
다음으로, 제2 쿼리문 바인딩부(66)는 가공 변수의 변수 값을 읽어온다. 가공 변수의 변수 값은 파라미터 시트(P)에 정의된 가공 변수의 이름의 셀의 셀 값으로 매핑한다.
그리고, 제2 쿼리문 바인딩부(66)는 가공 변수의 변수 값을 쿼리문의 쿼리 변수에 대체 하여, 바인딩 한다. 이때, 쿼리 변수의 변수 종류에 따라 변수 값의 표현 형식이 달라질 수 있다. 즉, 사전에 정해진 변수 값의 포맷에 따라 변수 값을 변환하여 표시한다.
또한, 제2 쿼리문 바인딩부(66)는 쿼리 변수에 동적 라인 삭제 기능의 기호가 검출되면, 해당 가공 변수의 값이 없는 경우에는 해당 라인을 삭제한다.
다음으로, 그리드 표시부(35)는 엑셀 문서 등을 해석하여 그리드를 생성한다. 즉, 템플릿에 따라 그리드 구조를 생성하고 출력하고, 템플릿의 기초 데이터셋의 로드 정보에 따라 기초 데이터셋을 가져와서 그리드에 가공 데이터셋을 반영하여 출력한다.
먼저, 그리드 표시부(35)는 템플릿의 그리드 구조에 따라 그리드의 형태를 생성한다. 앞서 설명한 바와 같이, 템플릿 파일은 JSON 등 표준 스크립트 데이터 형식으로 작성되었으므로, 해당 스크립트 데이터 형식의 파서를 이용하여 해석한다.
즉, 피벗 테이블 객체인 경우 해당 객체의 JSON 데이터를 해석하여 피벗 테이블을 복원하고, 일반 테이블 객체인 경우 해당 객체의 JSON 데이터를 해석하여 테이블의 헤더 행과 데이터의 1번째 행(또는 1번째와 2번째 행)을 복원한다. 바람직하게는, 여기서의 그리드는 메모리 상에 적재되는 데이터일 수 있다.
특히, 서버에서 사용자의 요청이 있을 경우, 실시간으로 해석한다. 한편, 템플릿 파일은 엑셀 문서 보다 경량화 되어 있으며, 빠른 속도로 로딩할 수 있다.
또한, 그리드 표시부(35)는 로드 정보에 따라, 데이터베이스로부터 기초 데이터를 로드한다. 바람직하게는, 데이터베이스의 최신 조회 결과를 실시간으로 반영한다.
그리드 표시부(35)는 로드 정보를 참조하여, DB연결 정보로 데이터베이스에 접속하고, 쿼리문 정보로 쿼리문을 생성하여 요청한다. 즉, DB연결 정보의 키 값 등으로 인증을 받아 데이터베이스에 접근한다. 또한, 바인딩 구문을 이용하여 가공 변수를 반영하여 쿼리문을 생성한다. 이때, 가공 변수의 변수값은 해당 가공 변수에 매핑된 컨트롤 객체의 입력값으로 설정된다.
바람직하게는, 그리드 표시부(35)는 데이터베이스(DB)에서 조회한 기초 데이터셋을 메모리에 적재한다. 이때, 기초 데이터셋을 행과 열을 가지는 가상 시트 형태로 적재한다. 즉, 워크시트의 행과 열을 기준으로 기초 데이터셋의 데이터를 참조할 수 있도록 적재한다.
또한, 그리드 표시부(35)는 기초 데이터셋을 그리드의 데이터 영역에 반영하여 삽입한다.
특히, 데이터셋 및 해당 그리드의 형태가 테이블인 경우, 해당 그리드에서 데이터셋의 레코드(데이터 행)의 수만큼 행을 동적으로 생성한다. 바인딩 위치를 식별한 뒤 레코드 수만큼 행을 동적으로 생성한다.
또한, 그리드 표시부(35)는 테이블의 셀이 수식인 경우, 해당 수식을 해석하여 연산된 값을 삽입한다. 특히, 셀 수식에서 데이터 영역 시트의 셀을 참조하는 수식이면, 갱신된 기초 데이터셋(또는 메모리에 적재된 기초 데이터셋)을 참조하여 셀 값을 계산한다.
특히, 데이터베이스에서 가져온 기초 데이터셋(갱신된 기초 데이터셋)을 가상 시트 형태로 저장하기 때문에, 엑셀 문서 상에서 기재된 데이터 영역 시트의 셀을 참조하는 수식을 그대로 이용할 수 있다. 이때, 데이터 영역 시트의 이름을 가상 시트(메모리 상에 적재된 가상 시트)로 대체하여 해석한다.
즉, 그리드 표시부(35)는 레코드 증가에 따른 수식을 자동으로 생성한다.
도 20에서 보는 바와 같이, 템플릿에 바인딩 위치를 식별한 뒤 레코드 수만큼 행을 동적으로 생성하고, 이때 헤더와 데이터 영역을 판단하여 데이터 영역에 수식이 존재할 경우 수식은 행의 생성과 함께 자동 생성한다.
수식은 엑셀(Excel)의 절대 주소와 상대 주소를 해석하여 생성되는 행의 주소 기반으로 자동 증/감하여 생성한다. 절대 주소는 변하지 않고 고정된 셀의 주소를 나타낸다. 상대 주소는 기준 셀의 위치와 해당 셀의 위치의 상대 위치에 따라 주소값이 변동된다.
또한, 도 20과 같이, 그리드 표시부(35)는 교차 행 및 스타일(서식)을 지원한다. 즉, 교차 행의 서식이 다른 경우를 지원한다. 즉, 템플릿에 바인딩 위치를 식별한 뒤 데이터 영역의 스타일(서식)을 새로 생성하는 행에 반영한다. 데이터 영역의 행의 사이즈가 2개일 경우 교차 행의 스타일(서식)을 지원하여 번갈아 가며 스타일(서식)을 반영할 수 있다.
또한, 그리드 표시부(35)는 그리드 상에서 엑셀(Excel)의 수식을 지원한다. 해당 수식은 템플릿에 정의된다. 수식은 데이터 바인딩 규칙에 따라 새로 생성될 수 있다. 데이터 바인딩은 가공 데이터셋이 표 형태로 출력되는 경우 이 위치의 마지막 주소에 수식이 존재하면 해당 수식을 행별로 자동으로 생성해 주는 것을 의미한다.
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 사용자 단말 20 : 엑셀 도구
30 : 작성 서버 31 : 화면 편집부
32 : 그리드 편집부 33 : 컨트롤 편집부
34 : 보고서 뷰어부 35 : 그리드 표시부
36 : 제1 쿼리 바인딩부 38 : 저장부
60 : 확장모듈 61 : 워크시트 초기화부
62 : 가공변수 설정부 63 : 데이터셋 로드부
64 : 편집결과 저장부 65 : 쿼리문 작성부
64 : 제2 쿼리 바인딩부
80 : 네트워크
30 : 작성 서버 31 : 화면 편집부
32 : 그리드 편집부 33 : 컨트롤 편집부
34 : 보고서 뷰어부 35 : 그리드 표시부
36 : 제1 쿼리 바인딩부 38 : 저장부
60 : 확장모듈 61 : 워크시트 초기화부
62 : 가공변수 설정부 63 : 데이터셋 로드부
64 : 편집결과 저장부 65 : 쿼리문 작성부
64 : 제2 쿼리 바인딩부
80 : 네트워크
Claims (7)
- 사용자 단말의 엑셀 도구에 설치되는 확장모듈과 서버에 의해 수행되는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서,
웹 상의 보고서 화면에서 그리드 객체를 편집하되, 하나의 그리드 객체에 대한 정보를 하나의 엑셀 문서에 저장하고, 확장된 엑셀 도구에 의한 엑셀 문서의 편집을 통해 그리드 객체를 편집하게 하는 그리드 편집부;
웹 상의 보고서 화면에서 컨트롤 객체를 생성하고 편집하는 컨트롤 편집부;
상기 엑셀 도구가 호출되면, 상기 그리드 객체에 매핑되는 엑셀 문서를 생성하되, 그리드의 형태를 나타내는 뷰 영역 시트, 기초 데이터셋을 저장하는 데이터 영역 시트, 가공 변수를 설정하는 파라미터 영역 시트로 구성되는 엑셀 문서를 생성하는, 워크시트 초기화부;
상기 엑셀 문서의 파라미터 영역 시트 상에서 가공변수를 설정하는, 가공변수 설정부;
상기 워크시트 상의 가공 변수를 쿼리 변수로 매핑하여 쿼리문을 작성하는 쿼리문 작성부;
상기 확장모듈에 구비되고, 상기 쿼리문의 쿼리 변수를 가공 변수의 변수 값으로 바인딩 하는 제2 쿼리 바인딩부;
상기 엑셀 문서의 워크시트 상에서 기초 데이터셋을 로드하되, 상기 제2 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 로드하는, 데이터셋 로드부;
상기 서버에 구비되고, 상기 쿼리문의 쿼리 변수를 가공 변수의 변수 값으로 바인딩 하는 제1 쿼리 바인딩부;
그리드 객체에 매핑되는 엑셀 문서의 내용에 따라 해당 그리드 객체의 내용을 웹 상에 표시하되, 상기 제1 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 기초 데이터셋을 로드하고, 로드된 기초 데이터셋로부터 가공된 데이터셋으로 그리드 객체의 내용을 표시하는 그리드 표시부; 및,
그리드 객체와 컨트롤 객체로 구성된 보고서를 웹 상에서 표시하되, 상기 그리드 표시부를 통해 그리드 객체를 표시하는, 보고서 뷰어부를 포함하고,
상기 컨트롤 편집부는 상기 컨트롤 객체에 상기 가공 변수를 매핑시키고,
상기 제1 쿼리 바인딩부는 변수 값을 상기 가공 변수에 매핑되는 컨트롤 객체의 입력값으로 설정하는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
- 제1항에 있어서,
상기 쿼리문에서의 쿼리 변수는 변수 식별자, 및, 가공 변수의 이름을 결합하여 구성되어 표기되고,
상기 제1 또는 제2 쿼리 바인딩부는, 쿼리문에서 변수 식별자를 인식하면, 해당 변수 식별자에 연결된 문자열을 가공 변수로 인식하는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
- 제1항에 있어서,
상기 쿼리문에서 쿼리 변수를 사용할 때, 라인 삭제 기능을 구비하고, 해당 쿼리 변수에 동적 라인 삭제 기능을 나타내는 기호 또는 문자를 추가하여 구분하고,
상기 제1 또는 제2 쿼리 바인딩부는, 쿼리 변수가 라인 삭제 기능을 가지는 경우, 해당 가공 변수의 변수 값이 없거나 빈 값이면, 해당 쿼리문에서 해당 라인을 삭제하여 바인딩하는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
- 제3항에 있어서,
상기 쿼리문에서 조건에 따라 수행되는 행이 다른 경우, 해당 행에 주석문을 삽입하고, 삽입된 주석문에 라인 삭제 기능을 가진 쿼리 변수를 삽입하고, 조건에 따라 쿼리 변수의 변수 값이 빈 값으로 입력하게 하거나 임의의 값을 입력하게 하여, 빈 값이면 해당 행이 삭제되게 하고, 임의의 값이면 해당 행이 수행되도록 제공하는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
- 제1항에 있어서,
상기 가공변수 설정부는 변수정의 셀의 이름을 가공변수의 이름으로 설정하고, 상기 가공 변수는 상기 엑셀 문서 상에서 그리드에 표시할 테이블의 셀 내의 수식에 사용되는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
- 제5항에 있어서,
상기 뷰 영역 시트 상의 테이블은 상기 데이터 영역 시트 상에 입력된 기초 데이터셋을 참조하되, 상기 뷰 영역 시트 상의 테이블 내의 셀의 수식에서 상기 데이터 영역 시트의 셀을 참조하고,
상기 그리드 표시부는 기초 데이터셋을 데이터베이스에서 가져와서 가상 시트 상에 저장하고, 상기 그리드 객체의 테이블의 각 셀을 수식에 따라 반영할 때, 참조하는 데이터 영역 시트의 셀의 내용 대신, 가상 시트 상의 해당 셀의 내용으로 반영하는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
- 제1항에 있어서,
상기 그리드 편집부, 컨트롤 편집부, 보고서 뷰어부, 그리드 표시부, 제1 쿼리 바인딩부는 상기 서버에서 구비되고, 워크시트 초기화부, 가공변수 설정부, 데이터셋 로드부, 편집결과 저장부, 제2 쿼리 바인딩부, 쿼리문 작성부는 상기 확장 모듈에서 구비되는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200178176A KR102499832B1 (ko) | 2020-12-18 | 2020-12-18 | 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템 |
JP2021093534A JP7216377B2 (ja) | 2020-12-18 | 2021-06-03 | クエリバインディング機能を備えたオンラインレポート作成システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200178176A KR102499832B1 (ko) | 2020-12-18 | 2020-12-18 | 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220087789A true KR20220087789A (ko) | 2022-06-27 |
KR102499832B1 KR102499832B1 (ko) | 2023-02-15 |
Family
ID=82165475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200178176A KR102499832B1 (ko) | 2020-12-18 | 2020-12-18 | 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7216377B2 (ko) |
KR (1) | KR102499832B1 (ko) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100497811B1 (ko) | 2001-12-27 | 2005-07-01 | 삼성에스디에스 주식회사 | 웹 환경과 연계된 레포팅 시스템 |
KR100697155B1 (ko) | 2004-12-03 | 2007-03-21 | (주)엠투소프트 | 웹 서비스를 이용한 보고서 작성 시스템 및 그 방법 |
KR20130126012A (ko) | 2012-05-10 | 2013-11-20 | (주)네오위즈게임즈 | 비즈니스 인텔리전스의리포트 제공 방법 및 장치 |
KR20140126311A (ko) * | 2011-12-29 | 2014-10-30 | 바이보 랩스, 인크. | 보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어 |
KR101951719B1 (ko) | 2018-07-26 | 2019-02-25 | (주)비아이매트릭스 | 그래픽 인터페이스 기반으로 이벤트 동작을 프로그래밍 하는 웹 레포팅 디자인 시스템 |
KR20190087841A (ko) * | 2018-01-17 | 2019-07-25 | (주)비아이매트릭스 | 그리드 인터페이스 기반 데이터 입출력 시스템 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5645627B2 (ja) * | 2010-12-08 | 2014-12-24 | 三菱電機株式会社 | データ入出力装置 |
JP2015191258A (ja) * | 2014-03-27 | 2015-11-02 | 富士通株式会社 | プログラム、処理方法及び情報処理装置 |
KR101769857B1 (ko) * | 2015-12-28 | 2017-08-22 | (주)비아이매트릭스 | 스프레드시트 인터페이스를 이용한 데이터베이스 갱신 시스템 |
KR101769853B1 (ko) * | 2015-12-28 | 2017-08-22 | (주)비아이매트릭스 | 쿼리 템플릿을 이용한 스프레드시트 인터페이스 기반 데이터베이스 일괄 갱신 시스템 |
-
2020
- 2020-12-18 KR KR1020200178176A patent/KR102499832B1/ko active IP Right Grant
-
2021
- 2021-06-03 JP JP2021093534A patent/JP7216377B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100497811B1 (ko) | 2001-12-27 | 2005-07-01 | 삼성에스디에스 주식회사 | 웹 환경과 연계된 레포팅 시스템 |
KR100697155B1 (ko) | 2004-12-03 | 2007-03-21 | (주)엠투소프트 | 웹 서비스를 이용한 보고서 작성 시스템 및 그 방법 |
KR20140126311A (ko) * | 2011-12-29 | 2014-10-30 | 바이보 랩스, 인크. | 보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어 |
KR20130126012A (ko) | 2012-05-10 | 2013-11-20 | (주)네오위즈게임즈 | 비즈니스 인텔리전스의리포트 제공 방법 및 장치 |
KR20190087841A (ko) * | 2018-01-17 | 2019-07-25 | (주)비아이매트릭스 | 그리드 인터페이스 기반 데이터 입출력 시스템 |
KR101951719B1 (ko) | 2018-07-26 | 2019-02-25 | (주)비아이매트릭스 | 그래픽 인터페이스 기반으로 이벤트 동작을 프로그래밍 하는 웹 레포팅 디자인 시스템 |
Also Published As
Publication number | Publication date |
---|---|
JP7216377B2 (ja) | 2023-02-01 |
KR102499832B1 (ko) | 2023-02-15 |
JP2022097358A (ja) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2019246901B2 (en) | Graphical user interface that simplifies user creation of custom calculations for data visualizations | |
US20210334250A1 (en) | Construction of database schema models for database systems and rest api's | |
US9811604B2 (en) | Method and system for defining an extension taxonomy | |
US5603025A (en) | Methods for hypertext reporting in a relational database management system | |
CN100498764C (zh) | 同步更新数据的方法 | |
US8479093B2 (en) | Metamodel-based automatic report generation | |
US11288290B2 (en) | Building reports | |
KR102230729B1 (ko) | 템플릿 기반 엑셀 문서 온라인 작업 시스템 | |
US7856428B2 (en) | Method, computer program product and device for importing a plurality of data sets into a system | |
CN110738037A (zh) | 用于自动生成电子表格的方法、装置、设备及存储介质 | |
JP2013507712A (ja) | エクセル基盤の分析レポート作成システム及び方法 | |
KR20060067812A (ko) | 복합 데이터 액세스 | |
KR102034679B1 (ko) | 그리드 인터페이스 기반 데이터 입출력 시스템 | |
WO2008107665A2 (en) | A graphical user interface for use in integrating programming functions with spreadsheet applications | |
JP7339628B2 (ja) | エクセルツールを用いたオンラインレポート作成システム | |
CN112764743B (zh) | 一种基于数据模型驱动自动生成软件的方法 | |
Alexander et al. | Access 2013 Bible | |
AU2007200384B2 (en) | Definitions in master documents | |
US20240037325A1 (en) | Ability to add non-direct ancestor columns in child spreadsheets | |
KR102499832B1 (ko) | 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템 | |
CN115713309A (zh) | 内审系统 | |
EP1591861A1 (en) | Method, computer program and device for executing actions using data sets | |
Leung | Visual Studio LightSwitch 2012 | |
CN117853279A (zh) | 一种线上合同签署方法、装置、设备和介质 | |
Barresse et al. | Excel Tables: A Complete Guide for Creating, Using and Automating Lists and Tables |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right |