KR102499832B1 - An online report creation system with query binding function - Google Patents
An online report creation system with query binding function Download PDFInfo
- Publication number
- KR102499832B1 KR102499832B1 KR1020200178176A KR20200178176A KR102499832B1 KR 102499832 B1 KR102499832 B1 KR 102499832B1 KR 1020200178176 A KR1020200178176 A KR 1020200178176A KR 20200178176 A KR20200178176 A KR 20200178176A KR 102499832 B1 KR102499832 B1 KR 102499832B1
- Authority
- KR
- South Korea
- Prior art keywords
- query
- variable
- grid
- unit
- 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)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Artificial Intelligence (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Health & Medical Sciences (AREA)
- Economics (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 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 기초 데이터셋을 로드하고, 로드된 기초 데이터셋로부터 가공된 데이터셋으로 그리드 객체의 내용을 표시하는 그리드 표시부; 및, 그리드 객체와 컨트롤 객체로 구성된 보고서를 웹 상에서 표시하되, 상기 그리드 표시부를 통해 그리드 객체를 표시하는, 보고서 뷰어부를 포함하는 구성을 마련한다.
상기와 같은 시스템에 의하면, 가공 변수를 이용하여 쿼리문을 작성하게 하고 실행시 쿼리문의 가공 변수에 변수값을 바인딩함으로써, 사용자가 데이터베이스에서 기초 데이터셋을 보다 다양한 조건으로 불러올 수 있고, 이를 통해, 데이터셋의 조건에 대한 인터랙티브 기능을 보다 쉽게 구현할 수 있다. When creating and providing a report on the web by bringing a basic dataset from a database through a query statement, it supports writing a query statement by setting a processing variable, and binding the processing variable to a variable value in the query statement to create a basic dataset. It relates to an online report creation system having a query binding function, which edits a grid object on a report screen on the web, saves information about one grid object in one Excel document, and uses an extended Excel tool a grid editing unit for editing a grid object through editing of an Excel document; a control editing unit that creates and edits a control object on a report screen on the web; When the Excel tool is called, an Excel document that is mapped to the grid object is created, and an Excel document composed of a view area sheet representing the shape of the grid, a data area sheet for storing basic data sets, and a parameter area sheet for setting processing variables. a worksheet initialization unit that creates a document; a processing variable setting unit that sets processing variables on a parameter area sheet of the Excel document; a query statement creation unit that creates a query statement by mapping processing variables on the worksheet to query variables; a second query binding unit provided in the extension module and binding a query variable of the query statement to a variable value of a processing variable; a data set loading unit for loading a basic data set on a worksheet of the Excel document, binding the query statement through the second query binding unit, and loading the bound query statement; a first query binding unit provided in the server and binding a query variable of the query statement to a variable value of a processing variable; Display the contents of the corresponding grid object on the web according to the contents of the Excel document mapped to the grid object, bind the query statement through the first query binding unit, load the basic dataset with the bound query statement, and load a grid display unit for displaying contents of a grid object from a processed basic data set to a processed data set; and a report viewer unit displaying a report composed of a grid object and a control object on the web and displaying the grid object through the grid display unit.
According to the system as described above, by making a query statement using a processing variable and binding the variable value to the processing variable of the query statement during execution, the user can call the basic data set from the database under various conditions, and through this, It is easier to implement interactive functions for the condition of the dataset.
Description
본 발명은 쿼리문을 통해 데이터베이스에서 기초 데이터셋을 가져와서 웹 상의 보고서를 작성하고 제공할 때, 가공 변수를 설정하여 쿼리문을 작성하도록 지원하고, 쿼리문에서 가공 변수를 변수값으로 바인딩하여 기초 데이터셋을 가져오는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 관한 것이다.In the present invention, when a basic data set is imported from a database through a query statement, and a report on the web is created and provided, the query statement is supported by setting a processing variable, and the processing variable is bound to a variable value in the query statement. It relates to an online reporting system with query binding capabilities for importing datasets.
또한, 본 발명은 웹 상의 보고서 내에 각 그리드를 작성할 때 엑셀 도구에서 작성하도록 지원하고 엑셀 도구의 확장 모듈에서 쿼리문을 작성하도록 지원하고, 엑셀 도구 상에서는 가공 변수를 시트 상에 설정하고 웹 상에는 해당 가공 변수를 컨트롤 객체에 매핑시키도록 지원하는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 관한 것이다.In addition, the present invention supports writing in an Excel tool when creating each grid in a report on the web, supports writing a query statement in an extension module of the Excel tool, sets processing variables on a sheet in the Excel tool, and sets the corresponding processing on the web An online reporting system with query binding functionality supporting mapping of variables to control objects.
일반적으로, 직장인들의 업무시간 중 문서작성에 소요되는 시간이 전체 업무에서 차지하는 비중이 높다. 이러한 문서작성에 소요되는 시간 및 인력에 따른 비용의 절감은 기업의 생산성 측면에서는 필수적으로 요구되는 부분이다. 이를 위해, 업무를 통합적으로 관리하고 자동화 하는 시스템이 도입되고 있다.In general, among office workers' working hours, the time required for document preparation occupies a high proportion of the total work. Reduction of costs due to the time and manpower required to prepare these documents is an essential part in terms of corporate productivity. To this end, a system that manages and automates tasks in an integrated manner is being introduced.
일례로서, 웹 환경에서 데이터베이스를 조회하여 분석하는 레포팅 기술이 제시되고 있다[특허문헌 1]. 상기 선행기술에 의하면, 개발자가 데이터베이스 서버의 데이터를 이용하여 위지윅(WYSIWYG) 방식 및 드래그 앤 드롭(Drag & Drop) 방식으로 보고서를 설계하고, 웹서버는 설계된 보고서를 등록받고, 보고서의 설정내용에 따라 데이터베이스 서버에서 필요한 데이터를 가져와서 보고서를 생성하고, 사용자는 웹브라우저 상에서 보고서를 요청하여 본다.As an example, a reporting technology for querying and analyzing a database in a web environment has been proposed [Patent Document 1]. According to the prior art, a developer designs a report using a WYSIWYG method and a drag & drop method using data of a database server, the web server registers the designed report, and the report settings Accordingly, necessary data is imported from the database server and a report is created, and the user requests and views the report on a web browser.
또한, 웹 서비스를 이용하여, 여러 곳에 분산된 데이터를 접근하고 통합하여 보고서를 실시간으로 출력하는 기술도 제시되고 있다[특허문헌 2]. 또한, 관리자가 데이터베이스에서 수신한 테이블 정보를 웹 상에서 선택하여 맵핑 테이블을 생성하고, 이를 이용하여 다양한 양식의 레포트를 생성하고, 이를 웹 상에서 선택하여 확인하는 기술도 제시되고 있다[특허문헌 3].In addition, a technique for outputting a report in real time by accessing and integrating data distributed in several places using a web service has also been proposed [Patent Document 2]. In addition, a technique in which an administrator selects table information received from a database on the web to create a mapping table, uses it to generate reports in various formats, and selects and confirms the table information on the web has also been proposed [Patent Document 3].
또한, 웹 상에서 엑셀 형태로 레포트를 작성하는 기술도 제시되고 있다[특허문헌 4]. 상기 선행기술은 엑셀 형태의 그리드를 웹 상에서 직접 작성해야 하며, 웹 상에서의 그리드 작업의 인터페이스를 엑셀의 인터페이스와 유사하게 제공하고 있다.In addition, a technique for creating a report in the form of Excel on the web has also been proposed [Patent Document 4]. In the prior art, an Excel-type grid must be directly created on the web, and an interface of grid work on the web is provided similarly to that of Excel.
그러나 웹 상에서 엑셀과 같은 다양한 인터페이스를 제공하기 어렵고, 각 서비스 마다 인터페이스 방식이 다르기 때문에, 사용자는 웹 상의 인터페이스에 불편할 수 있다. 즉, 온라인 상의 인터페이스가 오프라인 상의 엑셀 프로그램의 인터페이스와 동일하지 않다.However, since it is difficult to provide various interfaces such as Excel on the web, and interface methods are different for each service, users may be uncomfortable with the interface on the web. That is, the interface on-line is not the same as the interface of the Excel program on-line.
그런데 사용자들은 자신의 컴퓨터 단말에 설치되어 이용하는 (오프라인 상의) 엑셀 도구의 인터페이스에 더 친숙하다. 따라서 사용자가 웹 상에서 보고서를 작성할 때, 데이터 가공 작업을 상용 엑셀과 같은 오프라인 상의 어플리케이션으로 수행할 수 있도록 지원하는 기술이 필요하다.However, users are more familiar with the interface of the (offline) Excel tool installed and used on their computer terminals. Therefore, when a user creates a report on the web, a technology that supports data processing with an offline application such as commercial Excel is required.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 쿼리문을 통해 데이터베이스에서 기초 데이터셋을 가져와서 웹 상의 보고서를 작성하고 제공할 때, 가공 변수를 설정하여 쿼리문을 작성하도록 지원하고, 쿼리문에서 가공 변수를 변수값으로 바인딩하여 기초 데이터셋을 가져오는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템을 제공하는 것이다.An object of the present invention is to solve the above-described problems, and when a basic data set is imported from a database through a query statement and a report on the web is created and provided, processing variables are set to support the creation of the query statement , To provide an online report writing system equipped with a query binding function that binds processing variables to variable values in a query statement and brings in a basic data set.
또한, 본 발명의 목적은 본 발명은 웹 상의 보고서 내에 각 그리드를 작성할 때 엑셀 도구에서 작성하도록 지원하고 엑셀 도구의 확장 모듈에서 쿼리문을 작성하도록 지원하고, 엑셀 도구 상에서는 가공 변수를 시트 상에 설정하고 웹 상에는 해당 가공 변수를 컨트롤 객체에 매핑시키도록 지원하는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템을 제공하는 것이다.In addition, an object of the present invention is to support writing in an Excel tool when creating each grid in a report on the web, support writing a query statement in an extension module of the Excel tool, and setting processing variables on a sheet in the Excel tool. To provide an online report writing system equipped with a query binding function that supports mapping of processing variables to control objects on the web.
상기 목적을 달성하기 위해 본 발명은 사용자 단말의 엑셀 도구에 설치되는 확장모듈과 서버에 의해 수행되는, 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 관한 것으로서, 웹 상의 보고서 화면에서 그리드 객체를 편집하되, 하나의 그리드 객체에 대한 정보를 하나의 엑셀 문서에 저장하고, 확장된 엑셀 도구에 의한 엑셀 문서의 편집을 통해 그리드 객체를 편집하게 하는 그리드 편집부; 웹 상의 보고서 화면에서 컨트롤 객체를 생성하고 편집하는 컨트롤 편집부; 상기 엑셀 도구가 호출되면, 상기 그리드 객체에 매핑되는 엑셀 문서를 생성하되, 그리드의 형태를 나타내는 뷰 영역 시트, 기초 데이터셋을 저장하는 데이터 영역 시트, 가공 변수를 설정하는 파라미터 영역 시트로 구성되는 엑셀 문서를 생성하는, 워크시트 초기화부; 상기 엑셀 문서의 파라미터 영역 시트 상에서 가공변수를 설정하는, 가공변수 설정부; 상기 워크시트 상의 가공 변수를 쿼리 변수로 매핑하여 쿼리문을 작성하는 쿼리문 작성부; 상기 확장모듈에 구비되고, 상기 쿼리문의 쿼리 변수를 가공 변수의 변수 값으로 바인딩 하는 제2 쿼리 바인딩부; 상기 엑셀 문서의 워크시트 상에서 기초 데이터셋을 로드하되, 상기 제2 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 로드하는, 데이터셋 로드부; 상기 서버에 구비되고, 상기 쿼리문의 쿼리 변수를 가공 변수의 변수 값으로 바인딩 하는 제1 쿼리 바인딩부; 그리드 객체에 매핑되는 엑셀 문서의 내용에 따라 해당 그리드 객체의 내용을 웹 상에 표시하되, 상기 제1 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 기초 데이터셋을 로드하고, 로드된 기초 데이터셋로부터 가공된 데이터셋으로 그리드 객체의 내용을 표시하는 그리드 표시부; 및, 그리드 객체와 컨트롤 객체로 구성된 보고서를 웹 상에서 표시하되, 상기 그리드 표시부를 통해 그리드 객체를 표시하는, 보고서 뷰어부를 포함하고, 상기 컨트롤 편집부는 상기 컨트롤 객체에 상기 가공 변수를 매핑시키고, 상기 제1 쿼리 바인딩부는 상기 변수 값을 상기 가공 변수에 매핑되는 컨트롤 객체의 입력값으로 설정하는 것을 특징으로 한다.In order to achieve the above object, the present invention relates to an online report creation system having a query binding function performed by an extension module installed in an Excel tool of a user terminal and a server, and editing a grid object on a report screen on the web , a grid editing unit that stores information about one grid object in one Excel document and edits the grid object through editing of the Excel document by an extended Excel tool; a control editing unit that creates and edits a control object on a report screen on the web; When the Excel tool is called, an Excel document that is mapped to the grid object is created, and an Excel document composed of a view area sheet representing the shape of the grid, a data area sheet for storing basic data sets, and a parameter area sheet for setting processing variables. a worksheet initialization unit that creates a document; a processing variable setting unit that sets processing variables on a parameter area sheet of the Excel document; a query statement creation unit that creates a query statement by mapping processing variables on the worksheet to query variables; a second query binding unit provided in the extension module and binding a query variable of the query statement to a variable value of a processing variable; a data set loading unit for loading a basic data set on a worksheet of the Excel document, binding the query statement through the second query binding unit, and loading the bound query statement; a first query binding unit provided in the server and binding a query variable of the query statement to a variable value of a processing variable; Display the contents of the corresponding grid object on the web according to the contents of the Excel document mapped to the grid object, bind the query statement through the first query binding unit, load the basic dataset with the bound query statement, and load a grid display unit for displaying contents of a grid object from a processed basic data set to a processed data set; and a report viewer unit displaying a report composed of a grid object and a control object on the web, and displaying the grid object through the grid display unit, wherein the control editing unit maps the processing variable to the control object, and One query binding unit is characterized in that the variable value is set as an input value of a control object mapped to the processing variable.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 쿼리문에서의 쿼리 변수는 변수 식별자, 및, 가공 변수의 이름을 결합하여 구성되어 표기되고, 상기 제1 또는 제2 쿼리 바인딩부는, 쿼리문에서 변수 식별자를 인식하면, 해당 변수 식별자에 연결된 문자열을 가공 변수로 인식하는 것을 특징으로 한다.In addition, according to the present invention, in an online report creation system having a query binding function, a query variable in the query statement is formed by combining a variable identifier and a name of a processed variable, and the first or second query When the binding unit recognizes a variable identifier in the query statement, it is characterized in that it recognizes a string connected to the variable identifier as a processing variable.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 쿼리문에서 쿼리 변수를 사용할 때, 라인 삭제 기능을 구비하고, 해당 쿼리 변수에 동적 라인 삭제 기능을 나타내는 기호 또는 문자를 추가하여 구분하고, 상기 제1 또는 제2 쿼리 바인딩부는, 쿼리 변수가 라인 삭제 기능을 가지는 경우, 해당 가공 변수의 변수 값이 없거나 빈 값이면, 해당 쿼리문에서 해당 라인을 삭제하여 바인딩하는 것을 특징으로 한다.In addition, the present invention is an online report creation system having a query binding function, when a query variable is used in the query statement, a line deletion function is provided, and a symbol or a character indicating a dynamic line deletion function is added to the query variable. and the first or second query binding unit deletes and binds the line in the corresponding query statement when the query variable has a line deletion function, if the variable value of the corresponding processing variable is not present or is an empty value. do.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 쿼리문에서 조건에 따라 수행되는 행이 다른 경우, 해당 행에 주석문을 삽입하고, 삽입된 주석문에 라인 삭제 기능을 가진 쿼리 변수를 삽입하고, 조건에 따라 쿼리 변수의 변수 값이 빈 값으로 입력하게 하거나 임의의 값을 입력하게 하여, 빈 값이면 해당 행이 삭제되게 하고, 임의의 값이면 해당 행이 수행되도록 제공하는 것을 특징으로 한다.In addition, according to the present invention, in an online report writing system having a query binding function, when a row executed according to a condition in the query statement is different, a comment statement is inserted in the corresponding row, and a query having a line deletion function in the inserted comment statement. Inserting a variable and having the variable value of the query variable be entered as an empty value or an arbitrary value according to the condition, if it is an empty value, the corresponding row is deleted, and if it is an arbitrary value, the corresponding row is provided to be executed. to be characterized
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 가공변수 설정부는 변수정의 셀의 이름을 가공변수의 이름으로 설정하고, 상기 가공 변수는 상기 엑셀 문서 상에서 그리드에 표시할 테이블의 셀 내의 수식에 사용되는 것을 특징으로 한다.In addition, in the present invention, in the online report writing system having a query binding function, the processing variable setting unit sets the name of the variable definition cell to the name of the processing variable, and the processing variable is a table to be displayed in a grid on the Excel document. Characterized in that it is used in formulas in the cells of.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 뷰 영역 시트 상의 테이블은 상기 데이터 영역 시트 상에 입력된 기초 데이터셋을 참조하되, 상기 뷰 영역 시트 상의 테이블 내의 셀의 수식에서 상기 데이터 영역 시트의 셀을 참조하고, 상기 그리드 표시부는 기초 데이터셋을 데이터베이스에서 가져와서 가상 시트 상에 저장하고, 상기 그리드 객체의 테이블의 각 셀을 수식에 따라 반영할 때, 참조하는 데이터 영역 시트의 셀의 내용 대신, 가상 시트 상의 해당 셀의 내용으로 반영하는 것을 특징으로 한다.In addition, according to the present invention, in an online report creation system having a query binding function, a table on the view area sheet refers to a basic data set input on the data area sheet, and formulas of cells in the table on the view area sheet are referred to. refers to the cell of the data area sheet, and the grid display unit retrieves the basic data set from the database and stores it on the virtual sheet, and when each cell of the table of the grid object is reflected according to a formula, the referenced data area It is characterized in that the content of a corresponding cell on a virtual sheet is reflected instead of the content of a cell of a sheet.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 편집결과 저장부는 상기 뷰 영역 시트 상에서의 테이블에 대하여, 테이블의 헤더 행 구조, 및, 테이블의 데이터 행 구조를 템플릿 정보를 저장하되, 테이블의 데이터 행 구조를 1번째 데이터 행의 서식과 수식을 포함하는 속성 정보로 저장하고, 해당 테이블의 데이터 행이 교차 행이면, 해당 테이블의 1번째 데이터 행과 2번째 데이터 행의 서식을 모두 저장하는 것을 특징으로 한다.In addition, in the present invention, in an online report creation system having a query binding function, the editing result storage unit stores template information for a table on the view area sheet, a header row structure of the table, and a data row structure of the table. However, the structure of the data row of the table is saved as attribute information including the format and formula of the first data row, and if the data row of the table is a cross row, the format of the first data row and the second data row of the table Characterized in that all of them are stored.
또, 본 발명은 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 있어서, 상기 그리드 편집부, 컨트롤 편집부, 보고서 뷰어부, 그리드 표시부, 제1 쿼리 바인딩부는 상기 서버에서 구비되고, 워크시트 초기화부, 가공변수 설정부, 데이터셋 로드부, 편집결과 저장부, 제2 쿼리 바인딩부, 쿼리문 작성부는 상기 확장 모듈에서 구비되는 것을 특징으로 한다.In addition, in the present invention, in an online report creation system having a query binding function, the grid editing unit, control editing unit, report viewer unit, grid display unit, and first query binding unit are provided in the server, and the worksheet initialization unit and processing variables are provided in the server. A setting unit, a dataset loading unit, an editing result storage unit, a second query binding unit, and a query statement creation unit are provided in the extension module.
상술한 바와 같이, 본 발명에 따른 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 의하면, 가공 변수를 이용하여 쿼리문을 작성하게 하고 실행시 쿼리문의 가공 변수에 변수값을 바인딩함으로써, 사용자가 데이터베이스에서 기초 데이터셋을 보다 다양한 조건으로 불러올 수 있고, 이를 통해, 데이터셋의 조건에 대한 인터랙티브 기능을 보다 쉽게 구현할 수 있는 효과가 얻어진다.As described above, according to the online report writing system having a query binding function according to the present invention, a query statement is created using a processing variable and the variable value is bound to the processing variable of the query statement during execution, so that the user can access the data in the database. The basic data set can be loaded under more diverse conditions, and through this, an effect of more easily implementing interactive functions for the conditions of the data set is obtained.
또한, 본 발명에 따른 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템에 의하면, 쿼리문의 가공 변수를 웹 상의 컨트롤 객체에 매핑시킴으로써, 기초 데이터셋의 쿼리 조건을 보다 쉽게 설정하는 인터페이스를 제공할 수 있는 효과가 얻어진다.In addition, according to the online report writing system having a query binding function according to the present invention, by mapping processing variables of a query statement to control objects on the web, an effect that can provide an interface that more easily sets query conditions of an underlying dataset. is obtained
도 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은 본 발명의 일실시예에 따른 수식 자동 연산에 대한 예시도.1 is a configuration diagram of the entire system for implementing the present invention.
2 is a block diagram of the configuration of an online report creation system having a query binding function according to an embodiment of the present invention.
3 is a diagram illustrating an interface screen for editing a report on the web according to an embodiment of the present invention.
4 is a diagram illustrating a report edited on the web according to an embodiment of the present invention.
5 is a diagram illustrating an initialized Excel document according to an embodiment of the present invention.
6 illustrates a screen for defining processing variables on a parameter area sheet according to an embodiment of the present invention.
7 is a diagram illustrating a screen for loading a dataset according to an embodiment of the present invention.
8 is a diagram illustrating a screen of a data area sheet loaded with a basic data set according to an embodiment of the present invention;
9 is a diagram illustrating an editing result screen of a view area sheet of an Excel document according to an embodiment of the present invention.
10 is an exemplary diagram illustrating template information of a pivot table according to an embodiment of the present invention, and is an exemplary diagram for (a) a pivot table and (b) template information.
11 is an exemplary view of a general query statement prepared according to an embodiment of the present invention.
12 is a table showing types of processing variables of a query statement according to an embodiment of the present invention.
13 is an exemplary view of a query statement using processing variables according to an embodiment of the present invention.
14 is a diagram illustrating a query statement and a bound query statement of a dynamic line deletion function according to an embodiment of the present invention.
15 is an example code for two query statements that differ only in part in content according to an embodiment of the present invention.
16 is an example code in which two query statements are created as conditional statements by programming work according to the prior art.
17 is a code illustrating a conditional statement of a query statement by a dynamic line deletion function according to the first embodiment of the present invention.
18 and 19 are codes illustrating conditional statements of a query statement according to a second embodiment of the present invention.
20 is an exemplary view of formula automatic calculation according to an embodiment of the present invention.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.Hereinafter, specific details for the implementation of the present invention will be described according to the drawings.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.In addition, in explaining the present invention, the same reference numerals are assigned to the same parts, and the repeated explanation thereof is omitted.
먼저, 본 발명을 실시하기 위한 전체 시스템의 구성을 도 1을 참조하여 설명한다.First, the configuration of the entire system for implementing the present invention will be described with reference to FIG.
도 1에서 보는 바와 같이, 본 발명을 실시하기 위한 전체 시스템은 사용자 단말(10)에 설치되는 엑셀 도구(20) 및 확장모듈(60), 웹 상에서 데이터셋에 의한 보고서 작성을 지원하는 작성 서버(30), 및, 데이터셋을 저장하는 데이터베이스 또는 DB 서버(40)로 구성된다. 사용자 단말(10)과 작성 서버(30)는 인터넷 등 네트워크(80)를 통해 데이터 통신을 수행한다.As shown in FIG. 1, the entire system for implementing the present invention includes an Excel
먼저, 사용자 단말(10)은 개인용 컴퓨터(PC), 노트북, 태블릿PC, 패블릿, PDA, 스마트폰 등 컴퓨팅 기능을 가지는 컴퓨팅 단말이다. 사용자 단말(10)은 통신 기능을 구비하여, 네트워크(80)를 통해 작성 서버(30)와 데이터를 송수신할 수 있다.First, the
또한, 사용자 단말(10)은 엑셀 도구(20) 및 확장모듈(60) 등 어플리케이션이 설치되어 실행될 수 있다.In addition, the
다음으로, 엑셀 도구(20)는 엑셀(마이크로소프트 사의 스프레드시트 소프트웨어 상표임) 기능을 수행하는 어플리케이션으로서, 사용자 단말(10)에 설치되어 구동되는 프로그램 시스템이다.Next, the
엑셀 도구(20)는 통상의 스프레드시트 기능을 제공하고, 특히, 위즈윅(WYSIWYG) 방식 또는 드래그앤드롭(Drag & Drop) 방식의 인터페이스를 제공한다. 즉, 엑셀 도구(20)는 화면 상에 엑셀 시트를 표시하고, 엑셀 시트 상에서 통상의 스프레드시트 작업을 수행할 수 있는 기능들을 제공한다.The
또한, 엑셀 도구(20)는 엑셀 시트(또는 워크시트) 상에서 작성된 것을 엑셀 문서로 생성한다. 엑셀 문서는 다수의 워크시트로 구성되고, 각 워크시트는 시트 상에서 작성된 객체, 포맷, 데이터(또는 셀/영역, 셀 서식, 셀 수식, 셀 값) 등으로 구성된다.In addition, the
바람직하게는, 엑셀 도구(20)는 마이크로소프트 사에서 제작한 스프레드시트 어플리케이션으로서, 엑셀이란 상표를 가진다.Preferably, the
또한, 엑셀 도구(20)는 확장 모듈(60)을 통해 그 기능이 확장된다. 이때, 기능이 확장된 엑셀 도구(20)를 확장된 엑셀도구라 부르기로 한다.In addition, the function of the
다음으로, 확장모듈(60)은 컴퓨터 단말(10)에 설치되고 엑셀 도구(20)에 플러그인 형태로 부가되는 프로그램 시스템으로서, 데이터베이스에서 데이터셋을 로드하는 기능, 데이터셋의 가공 변수를 설정하는 기능 등을 제공한다.Next, the
즉, 확장모듈(60)은 엑셀 도구(20)에 플러그인(plug-in) 방식 또는 애드인(add-in) 방식으로 부가되어 실행되는 프로그램 시스템이다. 특히, 확장모듈(60)은 엑셀 도구(20)의 적어도 하나의 명령(이하 플러그인 명령)으로 등록되고, 엑셀 도구(20)에서 해당 플러그인 명령이 호출되면 실행된다. 일례로서, 엑셀 시트 상에서 플러그인 명령이 메뉴 상에서 등록되고 메뉴에서 해당 명령이 선택되면, 확장모듈(60)이 동작된다. 또 다른 예로서, 컨트롤 객체의 이벤트 동작으로 등록되고 해당 이벤트가 발생되면, 확장모듈(60)이 동작될 수 있다.That is, the
특히, 확장모듈(60)은 초기 워크시트 생성 기능, 가공 변수 설정 기능, 데이터셋 로드 기능 등을 구비하고, 각 기능을 호출하는 명령들이 엑셀 도구(20)에 등록된다.In particular, the
먼저, 확장모듈(60)은 엑셀 도구(20)가 호출되면, 엑셀 문서에서 뷰 영역(V), 데이터 영역(D), 파라미터 영역(P)을 나타내는 각 워크시트를 생성한다.First, when the
뷰 영역의 워크시트(뷰 영역 시트)는 웹 상에서 화면으로 표시할 그리드 또는 테이블의 표시 형태를 디자인하는 워크시트이다.The worksheet of the view area (view area sheet) is a worksheet for designing the display form of a grid or table to be displayed on the screen on the web.
또한, 데이터 영역(D)의 워크시트(이하 데이터 영역 시트)는 데이터베이스에서 로드하는 데이터셋을 각 셀에서 입력받아 저장하는 워크시트이다. 이때, 데이터베이스에서 로드하는 데이터셋을 기초 데이터셋이라 부르기로 한다.In addition, the worksheet of the data area (D) (hereafter referred to as a data area sheet) is a worksheet in which a data set loaded from a database is entered in each cell and stored. At this time, the data set loaded from the database is referred to as the basic data set.
한편, 뷰 영역 시트에 표시되는 데이터셋은 기초 데이터셋을 참조하여 가공된 데이터셋이다. 따라서, 뷰 영역 시트에 표시되는 데이터셋을 가공 데이터셋이라 부르기로 한다.Meanwhile, the dataset displayed on the view area sheet is a dataset processed by referring to the basic dataset. Therefore, the data set displayed on the view area sheet is referred to as a processing data set.
또한, 파라미터 영역(P)의 워크시트(이하 파라미터 영역 시트)는 데이터셋의 가공 변수를 설정하는 워크시트이다. 가공 변수는 하나의 셀의 이름으로 설정되고, 가공 변수의 변수값은 해당 셀 내의 입력되는 값으로 설정된다.In addition, the worksheet of the parameter area P (hereinafter referred to as parameter area sheet) is a worksheet for setting processing variables of the data set. The processing variable is set as the name of one cell, and the variable value of the processing variable is set as the input value in the cell.
또한, 확장모듈(60)은 가공 변수를 설정하는 기능을 제공한다. 이때, 가공 변수의 이름(변수명)은 셀의 이름으로 정의되므로, 해당 셀(변수정의 셀)에 입력되는 셀 값이 해당 가공변수의 변수값이 된다. 따라서 엑셀 도구(20) 상에서 가공 변수는 셀 이름으로 사용된다. 즉. 가공 변수의 변수값은 해당 가공 변수의 변수정의 필드(셀)에 입력된 값이다.In addition, the
또한, 확장모듈(60)은 쿼리문을 작성하고, 쿼리문에 의해 데이터베이스로부터 기초 데이터셋을 로드하고, 그 로드 정보를 저장하는 기능을 지원한다. 또한, 확장모듈(60)은 기초 데이터셋의 로드 정보를 저장한다. 기초 데이터셋 로드 정보는 데이터베이스에 연결하기 위한 DB연결 정보, 데이터베이스에서 실행할 쿼리문(SQL 등)으로 구성된다.In addition, the
다음으로, 작성 서버(30)는 네트워크(80)에 연결된 통상의 서버로서, 웹 상에서의 보고서 작성을 지원하되, 데이터베이스(40)로부터 가져온 데이터셋을 분석하는 보고서의 작성을 지원한다.Next, the
웹 상에서의 보고서는, 가공된 데이터셋을 표시하는 그리드 객체와, 데이터셋의 가공 변수를 처리하는 컨트롤 객체로 구성된다. 작성 서버(30)는 그리드 객체와, 컨트롤 객체를 작성하는 서비스를 제공한다.A report on the web is composed of a grid object that displays the processed data set and a control object that processes the processed variable of the data set. The
먼저, 작성 서버(30)는 확장된 엑셀 도구(20)를 통해 그리드 객체를 생성 또는 편집하도록 제공하고, 각 그리드 객체에 연동하는 엑셀 문서를 대응하여 생성 또는 보관한다. 즉, 하나의 그리드 객체를 생성 또는 편집하기 위하여, 사용자는 확장된 엑셀 도구(20)에서 생성 또는 편집한다. 그리고 확장된 엑셀 도구(20)에서 생성 또는 편집된 엑셀 문서는 저장되는데, 해당 그리드 객체에 연동되어 보관된다.First, the
또한, 확장된 엑셀 도구(20)에서 저장하는 편집 결과는 엑셀 문서 외에도, 템플릿, 데이터셋 로드 정보 등을 포함한다. 템플릿은 엑셀 문서의 뷰 영역 시트에 대한 정보를 추출하여 저장한 데이터 구조체이고, 데이터셋 로드 정보는 DB 연결 정보와, 쿼리문 등 데이터베이스에서 데이터셋(기초 데이터셋)을 로드하기 위한 정보이다.In addition, the editing results stored by the extended
또한, 작성 서버(30)는 확장된 엑셀 도구(20)에 의해 엑셀 문서의 작성이 완료되면, 저장된 엑셀 문서(또는 템플릿)을 읽어들여 엑셀 문서에 정의된 내용에 따라 그리드 객체를 생성 또는 수정한다.In addition, when the creation of the Excel document is completed by the extended
이때, 작성 서버(30)는 파라미터 영역 시트에 정의된 가공 변수를 읽어들여 가공 변수로 정의하여 설정한다. 즉, 가공 변수를 컨트롤 객체에 이용하도록 선언한다.At this time, the
또한, 작성 서버(30)는 해당 엑셀 문서의 뷰 영역 시트의 테이블 형태에 따라 그리드 객체의 그리드 형태를 생성/편집하고, 기초 데이터셋을 가져와서 해당 그리드에 반영한다. 특히, 작성 서버(30)는 쿼리문의 가공 변수를 바인딩하여 데이터베이스로부터 데이터셋(기초 데이터셋)을 가져온다.In addition, the
또한, 작성 서버(30)는 컨트롤 객체를 작성하도록 인터페이스를 제공한다. 컨트롤 객체는 버튼, 콤보박스, 체크박스, 입력 박스 등 명령 또는 데이터를 입력받기 위한 객체를 포함한다.Also, the
작성 서버(30)는 컨트롤 객체를 가공 변수에 매핑시킨다. 컨트롤 객체가 가공 변수에 매핑되면, 해당 컨트롤 객체의 입력값이 해당 가공 변수의 변수값으로 자동으로 매핑한다. 즉, 작성 서버(30)는 컨트롤 객체의 입력값이 갱신(입력)되는 이벤트를 감지하면, 매핑된 가공 변수의 변수값을 갱신된(입력된) 입력값으로 바인딩하여 모든 객체를 갱신한다. 또한, 작성 서버(30)는 쿼리문의 가공 변수를 변수값으로 바인딩하여, 바인딩된 쿼리문으로 데이터베이스에서 데이터셋을 다시 가져와 갱신한다.The
다음으로, 데이터베이스(40)는 데이터셋을 저장하기 위한 통상의 데이터베이스(DB)로서, 데이터를 관리하기 위한 DBMS(database management system)를 구비하고, 데이터셋의 저장, 삭제, 검색 등의 작업들을 쿼리(또는 쿼리문)를 통해 수행한다. 특히, 데이터베이스(40)는 상용화된 데이터베이스로서, 데이터셋을 처리하기 위한 일반적인 쿼리 기능을 이용하여, 데이터 쿼리 서비스를 수행한다.Next, the
특히, 데이터베이스(40)는 빅데이터를 저장하는 데이터베이스이다. 또한, 바람직하게는, 데이터베이스(40)는 관계형 데이터베이스(RDB)로 구성된다.In particular, the
또한, 데이터베이스(40)는 작성 서버(30)에 직접 연결된 데이터베이스로 구현될 수도 있고, 인터넷 상에서 독립된 DB 서버로서 구현될 수 있다.In addition, the
특히, 데이터베이스(40)는 DBMS에 의해 구동되는 하나의 서버로 구현될 수 있다. 즉, 데이터베이스(40)는 하나의 서버로서, 작성 서버(30)의 요청에 따라 요청된 데이터셋을 열람/제공하는 서비스를 제공한다. 따라서 데이터베이스와 DB 서버는 동일한 참조 번호를 사용한다.In particular, the
다음으로, 본 발명의 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템을 도 2를 참조하여 설명한다.Next, an online report creation system equipped with a query binding function according to the present invention will be described with reference to FIG. 2 .
도 2에서 보는 바와 같이, 본 발명의 일실시예에 따른 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템(30)은 웹 상에서 보고서 화면의 디자인 서비스를 제공하는 화면 편집부(31), 그리드를 편집하는 그리드 편집부(32), 컨트롤 객체를 편집하는 컨트롤 편집부(33), 그리드 및 컨트롤 객체로 구성된 보고서를 웹 상에서 표시하는 보고서 뷰어부(34), 엑셀 문서 또는 템플릿에 따라 그리드 객체의 내용을 표시하는 그리드 표시부(35), 쿼리문을 바인딩하는 제1 쿼리 바인딩부(36), 엑셀 문서의 워크시트를 초기화 하는 워크시트 초기화부(61), 가공변수를 설정하는 가공변수 설정부(62), 데이터셋을 로드하는 데이터셋 로드부(63), 및 편집결과를 저장하는 편집결과 저장부(64), 쿼리문을 작성하는 쿼리문 작성부(65), 쿼리문을 바인딩하는 제2 쿼리 바인딩부(66)로 구성된다. 또한, 필요한 데이터를 저장하기 위한 저장부(38)를 더 포함하여 구성될 수 있다.As shown in FIG. 2, the online
이때, 화면 편집부(31), 그리드 편집부(32), 컨트롤 편집부(33), 보고서 뷰어부(34), 그리드 표시부(35), 제1 쿼리 바인딩부(36)는 작성 서버(30)에서 구비되고, 워크시트 초기화부(61), 가공변수 설정부(62), 데이터셋 로드부(63), 편집결과 저장부(64), 쿼리문 작성부(65), 제2 쿼리 바인딩부(66)는 확장 모듈(60)에서 구비된다.At this time, the
먼저, 화면 편집부(31)는 웹 상에서 보고서 화면의 디자인 서비스를 제공한다.First, the
웹 상에서의 보고서는, 가공된 데이터셋(가공 데이터셋)을 표시하는 그리드 객체와, 가공 변수와 매핑되어 가공 변수 값을 입력받는 컨트롤 객체로 구성된다.A report on the web is composed of a grid object displaying a processed data set (processed data set) and a control object mapped to a processed variable to receive the value of the processed variable.
도 3에서 보는 바와 같이, 화면 편집부(31)는 위지윅(WYSIWYG) 방식 및 드래그앤드롭(Drag & Drop) 방식으로 그리드 객체 또는 컨트롤 객체를 생성하고, 화면 상에 배치하도록 지원한다.As shown in FIG. 3 , the
또한, 화면 편집부(31)는 그리드 객체 또는 컨트롤 객체에 대하여, 그리드 편집부(32) 또는 컨트롤 편집부(33)을 통해, 세부적으로 편집하는 서비스를 제공한다.In addition, the
다음으로, 그리드 편집부(32)는 그리드 객체를 편집하되, 하나의 그리드 객체에 대한 정보를 하나의 엑셀 문서 등에 저장하여 관리하고, 확장된 엑셀 도구(20)에 의한 엑셀 문서의 편집으로 그리드 객체를 편집한다.Next, the
즉, 그리드 편집부(32)는 각 그리드 객체에 매핑되는 엑셀 문서 등을 생성 또는 보관한다. 엑셀 문서 등(또는 편집결과 정보)은 엑셀 문서, 템플릿(그리드 템플릿), 데이터셋 로드 정보 등으로 구성된다. 템플릿, 데이터셋 로드 정보 등을 추가 정보라 부르기로 한다.That is, the
해당 엑셀 문서는 뷰 영역 시트, 데이터 영역 시트, 파라미터 영역 시트 등으로 구성되어, 그리드 객체의 정보를 담은 엑셀 파일이다. 템플릿(또는 그리드 템플릿)은 뷰 영역 시트의 테이블(또는 그리드)의 형태, 서식, 수식 등을 저장하는 데이터 구조체이다. 뷰 영역 시트의 내용을 보다 빠르게 해석하여 이용하기 위한 것이다. 또한, 데이터셋 로드 정보는 데이터베이스에 연결하기 위한 DB연결 정보, 데이터베이스에서 실행할 쿼리문(SQL 등)으로 구성된다.The corresponding Excel document is composed of a view area sheet, data area sheet, parameter area sheet, etc., and is an Excel file containing grid object information. A template (or grid template) is a data structure that stores the form, format, formula, etc. of a table (or grid) in a view area sheet. This is to analyze and use the contents of the view area sheet more quickly. In addition, data set load information consists of DB connection information for connecting to the database and query statements (SQL, etc.) to be executed in the database.
특히, 그리드 편집부(32)는 각 그리드 객체에 대한 편집 요청을 받으면, 해당 그리드 객체에 매핑된(연동된) 엑셀 문서 등이 존재하는지를 판단한다. 존재하면, 해당 엑셀 문서를 열기(open)하면서 확장된 엑셀 도구(20)를 실행시킨다. 존재하지 않으면, 새로운 엑셀 문서를 생성하고, 생성된 엑셀 문서를 열면서 확장된 엑셀 도구(20)를 실행시킨다. 이때, 확장된 엑셀 도구(20) 또는 워크시트 초기화부(61)는 해당 엑셀 문서를 초기화 한다. 특히, 워크시트 초기화부(61)에 의해 초기 워크시트가 생성되고 초기화 된다.In particular, when receiving an editing request for each grid object, the
또한, 그리드 편집부(32)는 확장된 엑셀 도구(20)에 의해 엑셀 문서의 작성이 완료되면, 저장된 엑셀 문서 등(또는 편집결과 정보)을 참조하여 그 내용에 따라 그리드 객체를 갱신한다. 이때, 바람직하게는, 그리드 표시부(35)를 통해, 엑셀 문서 등의 내용에 따라 그리드 객체의 내용을 화면 상에 표시한다.In addition, when the creation of the Excel document is completed by the expanded
다음으로, 컨트롤 편집부(33)는 컨트롤 객체를 편집하도록 인터페이스를 제공한다.Next, the
컨트롤 객체는 버튼, 콤보박스, 도형, 텍스트 박스 등 웹 보고서를 표현하기 위한 객체들이다. 특히, 컨트롤 객체는 버튼, 콤보박스, 체크박스, 입력 박스 등 명령 또는 데이터를 입력받기 위한 객체를 포함한다. 이때, 입력되는 명령 또는 데이터를 컨트롤 객체의 입력값이라 부르기로 한다.Control objects are objects used to express web reports, such as buttons, combo boxes, shapes, and text boxes. In particular, control objects include objects for receiving commands or data, such as buttons, combo boxes, check boxes, and input boxes. At this time, the input command or data will be referred to as an input value of the control object.
컨트롤 편집부(33)는 그리드 객체의 엑셀 문서 등으로부터 가공 변수 정보를 읽어들여, 가공 변수를 선언한다(즉, 가공 변수로 정의하여 설정한다). 즉, 그리드 객체의 엑셀 문서에는 파라미터 영역 시트에 가공 변수들이 선언된다. 컨트롤 편집부(33)는 각 그리드 객체의 엑셀 문서에 저장된 가공 변수들을 읽어들여, 해당 가공 변수를 컨트롤 객체에서 사용할 수 있도록 선언한다.The
또한, 컨트롤 편집부(33)는 컨트롤 객체를 가공 변수에 매핑시키는 기능을 제공한다. 즉, 사용자는 특정 컨트롤 객체에 특정 가공 변수를 매핑시킬 수 있다. 바람직하게는, 컨트롤 객체를 가공 변수의 이름으로 정의함으로써, 가공 변수와, 컨트롤 객체와 매핑된다.In addition, the
컨트롤 객체가 가공 변수에 매핑되면, 해당 컨트롤 객체의 입력값이 해당 가공 변수의 변수값으로 자동으로 매핑한다.When a control object is mapped to a processing variable, the input value of the corresponding control object is automatically mapped to the variable value of the corresponding processing variable.
또한, 보고서 뷰어뷰(34)에 의해, 컨트롤 객체의 입력값이 갱신(입력)되는 것(갱신 이벤트)이 감지되면, 매핑된 가공 변수의 변수값을 갱신된(입력된) 입력값으로 바인딩하여 모든 객체가 갱신된다. 또한, 갱신 이벤트가 감지되면, 보고서 뷰어뷰(34)에 의해, 데이터셋 로드 정보의 쿼리문을 가공변수의 변수값으로 바인딩하여, 바인딩된 쿼리문으로 기초 데이터셋을 다시 가져온다. In addition, when the update (input) of the input value of the control object is detected by the report viewer view 34 (update event), the variable value of the mapped processing variable is bound to the updated (input) input value. All objects are updated. In addition, when an update event is detected, the query statement of the dataset load information is bound to the variable value of the processed variable by the
다음으로, 보고서 뷰어부(34)는 편집된 보고서를 화면 상에 출력한다.Next, the
즉, 보고서 뷰어부(34)는 컨트롤 객체와 그리드 객체의 내용을 화면 상에 출력하고, 컨트롤 객체에서 입력값의 입력 이벤트(갱신 이벤트)가 발생하면 해당 컨트롤 객체에 매핑된 가공 변수의 변수값을 갱신하여 화면 상의 모든 객체를 갱신 출력한다. 특히 매핑된 가공 변수의 변수값으로 쿼리문이 바인딩되고, 바인딩된 쿼리문에 의해 데이터셋도 갱신된다. 즉, 바인딩된 쿼리문으로 데이터베이스로부터 기초 데이터셋을 다시 가져와서 갱신한다.That is, the
구체적으로, 보고서 뷰어부(34)는 각 그리드 객체의 내용을 출력하되, 해당 그리드 객체의 엑셀 문서 등에 정의된 내용을 읽어들여 출력한다. 이때, 보고서 뷰어부(34)는 그리드 표시부(35)를 통해, 엑셀 문서 등(템플릿)의 내용에 따라 그리드의 형태를 편집하고, 해당 그리드에 가공 데이터셋을 반영하여 출력한다.Specifically, the
또한, 보고서 뷰어뷰(34)는 컨트롤 객체의 입력값이 갱신(입력)되는 이벤트를 감지한다. 그리고 이벤트가 감지되면, 매핑된 가공 변수의 변수값을 갱신된(입력된) 입력값으로 바인딩하여 모든 객체를 갱신한다.In addition, the
이때, 보고서 뷰어뷰(34)는 제1 쿼리 바인딩부(36)를 통해 쿼리문을 가공 변수의 변수값으로 바인딩 시키고, 바인딩된 쿼리문에 의해 기초 데이터셋을 다시 가져와서 갱신한다.At this time, the
바람직하게는, 보고서 뷰어뷰(34)는 그리드를 표시하는 뷰어를 구비한다. 그리드 뷰어는 웹 형식(HTML 5.0 이상) 또는 캔버스(Canvas) 기반으로 DOM(Document Object Model) 기반의 컴포넌트로 구성된다. 따라서 월등히 빠른 렌더링(Rendering) 속도를 지원한다.Preferably,
도 4는 웹 상에서 보고서를 표시한 것을 예시하고 있다.4 illustrates displaying a report on the web.
다음으로, 제1 쿼리 바인딩부(36)는 컨트롤 객체에 매핑된 가공 변수의 변수값을 해당 컨트롤 객체의 입력값으로 설정하고, 쿼리문에서 해당 가공 변수를 변수값(또는 입력값)으로 바인딩하여 쿼리문(바인딩된 쿼리문)을 생성한다.Next, the first
쿼리문의 바인딩은 이하에서, 제2 쿼리 바인딩부(66)를 설명하면서 보다 구체적으로 설명한다. 제1 쿼리 바인딩부(36)가 쿼리문을 바인딩하는 과정은, 제2 쿼리 바인딩부(66)의 바인딩 과정과 같다.The binding of query statements will be described in more detail while describing the second
다음으로, 워크시트 초기화부(61)는 엑셀 문서의 워크시트를 초기화 한다.Next, the
도 5에서 보는 바와 같이, 워크시트 초기화부(61)는 엑셀 문서에서 뷰 영역(V), 데이터 영역(D), 파라미터 영역(P)을 나타내는 각 워크시트를 생성한다.As shown in FIG. 5, the
워크시트 초기화부(61)는 엑셀 도구(20)가 호출되면 실행된다.The
뷰 영역의 워크시트(이하 뷰 영역 시트)는 웹 상에서 화면으로 표시할 그리드 또는 테이블의 표시 형태를 디자인하는 워크시트이다. 사용자는 뷰 영역 시트 상에서 테이블 등을 디지인한다. 디자인된 테이블 등은 그리드 객체의 형태로 이용된다. 특히, 사용자는 엑셀 도구(20)의 인터페이스를 이용하여 테이블 등을 디자인한다.The worksheet of the view area (hereinafter referred to as the view area sheet) is a worksheet for designing the display form of a grid or table to be displayed on the screen on the web. The user designs a table or the like on the view area sheet. The designed table is used in the form of a grid object. In particular, the user designs a table or the like using the interface of the
또한, 뷰 영역의 워크시트 상에서 테이블 내의 각 영역 또는 셀은 데이터 영역 시트의 셀 또는 가공 변수의 셀을 참조한다. 즉, 사용자는 엑셀 도구(20) 상에서 엑셀 기능을 활용하여 뷰 영역 시트를 작성한다. 이때, 테이블의 각 셀 또는 영역에는 직접 수치가 입력되거나, 참조되는 다른 셀이 입력된다. 즉, 셀/영역 참조 방식은 직접 셀(영역)의 위치로 입력되거나, 셀 이름으로 입력된다. 가공 변수는 가공 변수의 셀 이름으로 입력된다.In addition, each area or cell in the table on the worksheet in the view area refers to a cell in the data area sheet or a cell in the processing variable. That is, the user creates a view area sheet by utilizing an Excel function on the
또한, 뷰 영역에 표시되는 데이터셋은 기초 데이터셋을 가공한 가공 데이터셋이다.In addition, the data set displayed in the view area is a processed data set obtained by processing the basic data set.
또한, 데이터 영역(D)의 워크시트(이하 데이터 영역 시트)는 쿼리문에 의해 데이터베이스에서 로드하는 데이터셋을 각 셀에서 입력받아 저장하는 워크시트이다. 이때, 데이터베이스에서 로드하는 데이터셋을 기초 데이터셋이라 부르기로 한다.In addition, the worksheet of the data area D (hereinafter referred to as a data area sheet) is a worksheet in which a data set loaded from a database by a query statement is received and stored in each cell. At this time, the data set loaded from the database is referred to as the basic data set.
또한, 파라미터 영역(P)의 워크시트(이하 파라미터 영역 시트)는 데이터셋의 가공 변수를 설정하는 워크시트이다. 가공 변수는 하나의 셀의 이름으로 설정되고, 가공 변수의 변수값은 해당 셀 내의 입력되는 값으로 설정된다.In addition, the worksheet of the parameter area P (hereinafter referred to as parameter area sheet) is a worksheet for setting processing variables of the data set. The processing variable is set as the name of one cell, and the variable value of the processing variable is set as the input value in the cell.
워크시트 초기화부(61)는 파라미터 영역 시트 상에 가공 변수를 정의하는 테이블을 생성한다. 가공 변수 테이블은 각각이 가공 변수를 나타내는 다수의 레코드로 구성된다.The
각 레코드는 변수명(변수 이름), 변수정의, 초기값, 설명 등 필드로 구성된다. 변수명 필드는 해당 가공 변수의 이름(또는 변수명)을 입력하는 셀이고, 변수정의 필드는 가공 변수의 이름(또는 변수명 필드값)으로 자신의 셀 이름을 설정하는 셀이다. 또한, 초기값 필드와 설명 필드는 각각 가공변수의 초기값이나 설명을 입력하는 셀이다.Each record consists of fields such as variable name (variable name), variable definition, initial value, and description. The variable name field is a cell to input the name (or variable name) of the processing variable, and the variable definition field is a cell to set its own cell name with the name (or variable name field value) of the processing variable. In addition, the initial value field and the description field are cells for inputting the initial value or description of each processing variable.
특히, 변수정의 필드는 자신의 셀 이름이 변수명(가공변수의 이름)으로 설정되므로, 변수정의 필드에 입력되는 셀의 값이 해당 가공 변수의 변수값이 된다.In particular, since the cell name of the variable definition field is set as the variable name (processing variable name), the value of the cell entered in the variable definition field becomes the variable value of the corresponding processing variable.
즉, 사용자는 엑셀 도구(20) 상에서 가공변수의 이름을 셀의 이름 형태로 사용할 수 있다. 예를 들어, 엑셀 도구(20) 상에서 셀의 수식에 가공변수의 이름을 기재하면, 해당 셀 수식에서 가공 변수는 가공 변수의 변수정의 필드(셀)에 설정된 값으로 대체된다. 따라서 엑셀 도구(20) 상에서 해당 가공변수의 이름은 가공 변수와 같이 활용될 수 있다.That is, the user can use the name of the processing variable in the form of a cell name on the
또한, 가공 변수는 쿼리문의 바인딩 구문에서 변수로 활용될 수 있다. 이때, 가공 변수의 변수값은 해당 가공 변수의 변수정의 필드(셀)에 입력된 값이다.In addition, processing variables can be used as variables in the binding syntax of query statements. At this time, the variable value of the processing variable is a value entered in the variable definition field (cell) of the corresponding processing variable.
한편, 워크시트 초기화부(61)는 이미 저장된 데이터셋 로드 정보가 존재하는 경우, 데이터셋 로드 정보를 활용하여 기초 데이터셋을 다시 가져와서, 데이터 영역 시트의 내용을 갱신한다.On the other hand, the
이때, 워크시트 초기화부(61)는 쿼리문에 가공 변수에 의해 정의된 경우, 가공 변수의 변수값으로 해당 가공 변수를 바인딩하고, 바인??된 쿼리문으로 데이터베이스에서 데이터셋을 다시 가져와서 기초 데이터셋을 갱신한다.At this time, if the
다음으로, 가공변수 설정부(62)는 파라미터 영역 시트 상에서 가공변수를 설정한다.Next, the processing
도 6에서 보는 바와 같이, 가공변수 설정부(62)는 특정 레코드의 변수명 필드에 변수명(변수 이름)이 입력되면, 해당 레코드의 변수정의 필드의 셀 이름을, 입력된 변수명(변수 이름)으로 설정한다.As shown in FIG. 6, when a variable name (variable name) is input in the variable name field of a specific record, the processing
한편, 가공 변수의 이름(변수명)은 셀의 이름으로 정의되므로, 해당 셀에 입력되는 셀 값이 해당 가공변수의 변수값이 된다. 즉, 셀 이름이 변수로 활용된다.On the other hand, since the name (variable name) of the processing variable is defined as the name of the cell, the cell value input to the corresponding cell becomes the variable value of the corresponding processing variable. That is, the cell name is used as a variable.
즉, 각 가공변수는 엑셀의 네임(Name) 객체로 관리되고, 해당 네임(Name)의 값은 사용자가 해당 셀에서 입력한 값으로 대체된다. 엑셀의 네임(Name)은 엑셀에서 셀 주소들에 대하여 고유한 이름을 정의하고, 해당 이름을 사용할 수 있다. 그리고 해당 이름은 해당 셀(이름에 대응되는 셀 또는 셀 주소)과 대응되고, 해당 이름은 최종적으로 셀 값으로 대체되어 계산된다.That is, each processing variable is managed as a Name object in Excel, and the value of the corresponding Name is replaced with the value entered by the user in the corresponding cell. Name in Excel defines a unique name for cell addresses in Excel, and you can use that name. Then, the corresponding name corresponds to the corresponding cell (cell or cell address corresponding to the name), and the corresponding name is finally replaced with the cell value and calculated.
예를 들어, 셀 A1의 이름을 "주소"로 정의하고, 셀 A1에 "서울시 종로구 혜화동 90번지"라는 값을 입력하고, B1 셀에서 "=주소"라는 수식을 사용한다. 이때, 수식에서 "주소"는 이름이고, 해당 이름은 해당 셀(대응되는 셀)의 값("서울시 종로구 혜화동 90번지")으로 대체된다. 따라서 셀 B1에는 최종적으로 "서울시 종로구 혜화동 90번지"의 값으로 계산된다.For example, define the name of cell A1 as "address", enter the value "90 Hyehwa-dong, Jongno-gu, Seoul" into cell A1, and use the formula "=address" in cell B1. At this time, "address" in the formula is a name, and the name is replaced with the value of the corresponding cell (corresponding cell) ("90 Hyehwa-dong, Jongno-gu, Seoul"). Therefore, in cell B1, the value of “90 Hyehwa-dong, Jongno-gu, Seoul” is finally calculated.
한편, 가공 변수는 쿼리문에서도 사용되나, 정의된 가공 변수의 이름에 변수 식별자가 붙어 사용된다.On the other hand, processing variables are also used in query statements, but variable identifiers are attached to the names of defined processing variables.
다음으로, 데이터셋 로드부(63)는 쿼리문 작성부(65)를 통해 쿼리문을 작성하고, 제2 쿼리 바인딩부(66)를 통해 쿼리문을 바인딩 하고, 바인딩된 쿼리문에 의해 데이터베이스로부터 기초 데이터셋을 로드하고, 그 로드 정보를 저장하는 서비스를 제공한다. 이때, 바람직하게는, Next, the
도 7에서 보는 바와 같이, 데이터셋 로드부(63)는 데이터베이스(40)에 연결하기 위한 키 등 연결 정보를 입력하는 기능 또는 인터페이스를 제공한다. 사용자는 키 등 연결정보를 입력함으로써, 데이터베이스(40)에 접근한다.As shown in FIG. 7 , the
또한, 데이터셋 로드부(63)는 쿼리문 작성부(65)를 통해, 데이터베이스(40)에서 기초 데이터셋을 참조하는 쿼리문을 작성하는 기능 또는 인터페이스를 제공한다. 또한, 데이터셋 로드부(63)는 제2 쿼리문 바인딩부(66)를 통해, 작성된 쿼리문을 바인딩 한다.In addition, the
그리고 도 8에서 보는 바와 같이, 데이터셋 로드부(63)는 바인딩된 쿼리문에 의해, 데이터베이스로부터 기초 데이터셋을 로드하여 데이터 영역 시트에 출력한다. 이때, 출력위치는 사전에 정해지거나, 사용자에 의해 설정될 수 있다. 이때, 바람직하게는, 해당 데이터 영역 시트의 첫 행에 데이터셋의 필드명을 출력하고, 그 다음 행부터 데이터셋을 출력한다.And, as shown in FIG. 8 , the
또한, 데이터셋 로드부(63)는 기초 데이터셋의 로드 정보를 저장한다. 기초 데이터셋 로드 정보는 데이터베이스에 연결하기 위한 DB연결 정보, 데이터베이스에서 실행할 쿼리문(SQL 등)으로 구성된다. 바람직하게는, 기초 데이터셋을 출력할 위치 주소를 나타내는 출력위치 정보를 더 포함할 수 있다.In addition, the
DB연결 정보는 시스템 내 데이터베이스 연결 정보를 관리하며, DB서버 주소, 해당 정보에 접근할 수 있는 키 값 등을 포함한다. 해당 키를 가지고 내부적으로 데이터 베이스 연결 정보를 추출한다.DB connection information manages database connection information in the system, and includes the DB server address and key values for accessing the information. Database connection information is extracted internally with the corresponding key.
쿼리문은 데이터베이스에서 실행할 통상의 SQL 구문이다.A query statement is a normal SQL statement to be executed in the database.
또한, 출력위치 정보는 쿼리를 실행한 결과를 출력할 위치에 대한 주소 값을 포함한다. 일례로서, "D1$A1"로 표시되고, 이것은 D1 워크시트의 A1 셀부터 출력한다는 의미이다.In addition, the output location information includes an address value for a location to output a query execution result. As an example, it is displayed as "D1$A1", which means to output from cell A1 of the D1 worksheet.
다음으로, 편집결과 저장부(64)는 엑셀 도구(20)가 종료될 때, 워크시트 상에서 작업된 편집 결과를 저장한다. 특히, 편집 결과는 엑셀 문서, 템플릿, 데이터셋 로드 정보 등이다.Next, the editing
엑셀 문서는 엑셀 도구(20)에서 작업한 문서이며, 문서 자체로 저장된다.An Excel document is a document worked in the
앞서 설명한 바와 같이, 엑셀 문서는 뷰 영역 시트, 데이터 영역 시트, 파라미터 영역 시트로 구성된다. 데이터 영역 시트에는 기초 데이터셋이 입력된다. 이때, 사용자는 뷰 영역 시트에서 그리드를 위한 테이블을 편집하는데, 기초 데이터셋을 참조하여 분석된 데이터를 테이블에 표시되도록 편집한다.As described above, an Excel document is composed of a view area sheet, a data area sheet, and a parameter area sheet. In the data area sheet, the basic data set is entered. At this time, the user edits the table for the grid in the view area sheet, and edits the analyzed data to be displayed in the table with reference to the basic data set.
도 9에서 보는 바와 같이, 뷰 영역 시트 내의 테이블에서, 셀은 데이터 영역 시트의 데이터(또는 셀)를 참조한다. 뷰 영역 시트의 셀 C5에는 함수 sumif를 사용한 수식을 가진다. 이때, 함수 sumif의 각 변수 중 일부가 데이터 영역 시트(D1)의 셀 또는 영역을 참조한다.As shown in Fig. 9, in a table in a view area sheet, a cell refers to data (or cells) in a data area sheet. Cell C5 of the view area sheet contains a formula using the function sumif. At this time, some of the variables of the function sumif refer to cells or regions of the data area sheet D1.
사용자는 데이터 영역 시트를 보면서, 데이터베이스에서 가져온 기초 데이터셋의 구조를 명확히 볼 수 있다. 따라서 사용자는 데이터 영역 시트의 데이터를 이용하여, 뷰 영역 시트에서 테이블을 손쉽게 디자인할 수 있다.Viewing the data area sheet, users can clearly see the structure of the underlying dataset pulled from the database. Therefore, the user can easily design a table in the view area sheet by using the data in the data area sheet.
또한, 데이터셋 로드 정보는 데이터베이스에 연결하기 위한 DB연결 정보, 데이터베이스에서 실행할 쿼리문(SQL 등)으로 구성된다.In addition, data set load information consists of DB connection information for connecting to the database and query statements (SQL, etc.) to be executed in the database.
또한, 템플릿(또는 그리드 템플릿)은 엑셀 문서 내의 뷰 영역 시트의 테이블(또는 그리드)의 형태, 서식, 수식 등을 저장하는 데이터 구조체이다. 엑셀 문서의 뷰 영역 시트의 내용을 보다 빠르게 해석하여 이용하기 위한 것이다. 바람직하게는, 템플릿 정보는 JSON(JavaScript Object Notation) 등 표준 스크립트 데이터 형식으로 저장한다.Also, a template (or grid template) is a data structure that stores the form, format, formula, etc. of a table (or grid) of a view area sheet in an Excel document. This is to interpret and use the contents of the view area sheet of the Excel document more quickly. Preferably, the template information is stored in a standard script data format such as JSON (JavaScript Object Notation).
특히, 뷰 영역 시트 상의 테이블의 각 셀은 데이터 영역 시트 상의 기초 데이터셋의 셀을 수식으로 참조한다. 따라서 템플릿 내의 셀 수식 정보에는 데이터 영역 시트 상의 셀(또는 기초 데이터셋, 기초 데이터셋의 데이터)을 참조하는 정보가 포함된다.In particular, each cell of the table on the view area sheet references a cell of the underlying dataset on the data area sheet as a formula. Therefore, the cell formula information in the template includes information referring to cells (or basic data sets or data of basic data sets) on the data area sheet.
한편, 다른 실시예로서, 템플릿을 이용하지 않고 직접 엑셀 문서를 해석하여 구현할 수 있다. 이 경우, 템플릿을 따라 생성하지 않는다.Meanwhile, as another embodiment, it may be implemented by directly interpreting an Excel document without using a template. In this case, it is not created according to the template.
특히, 편집결과 저장부(64)는 엑셀 문서의 뷰영역 시트 상의 테이블로부터 그리드 구조 정보를 추출하여, 템플릿 정보로 저장한다.In particular, the editing
즉, 뷰 영역 시트 상이 테이블로부터, 각 테이블의 구조, 및, 테이블 또는 각 셀의 속성(서식, 수식 등) 등 그리드 구조 정보를 추출하여 템플릿으로 저장한다. 바람직하게는, 템플릿은 JSON 등 계층 구조를 가지는 형식으로 작성된다. 테이블 구조는 템플릿의 계층 구조로 변환되고, 테이블의 각 셀의 속성은 템플릿의 계층 구조의 리프 노드의 속성으로 변환된다. 각 셀의 속성은 셀 값, 서식, 수식 등으로 구성된다.That is, grid structure information such as the structure of each table and the properties (format, formula, etc.) of each table or cell is extracted from the table on the view area sheet and stored as a template. Preferably, the template is written in a format having a hierarchical structure such as JSON. The table structure is converted into a hierarchical structure of the template, and the attributes of each cell of the table are converted into the attributes of the leaf nodes of the hierarchical template structure. The properties of each cell consist of cell values, formats, and formulas.
도 10은 테이블에 대한 템플릿의 그리드 구조 정보를 예시한 도면이다. 즉, 도 10a는 엑셀 문서의 뷰영역 시트의 피벗 테이블을 예시하고, 도 10b는 도 10a의 피벗 테이블의 템플릿 정보(그리드 구조 정보)를 예시하고 있다. 특히, 템플릿 정보는 JSON(JavaScript Object Notation) 형식으로 저장된다. 즉, 피벗 테이블을 계층 구조로 분해하여, 각 계층의 요소와, 해당 요소의 속성 값들로 구성된다.10 is a diagram illustrating grid structure information of a template for a table. That is, FIG. 10A illustrates a pivot table of a view area sheet of an Excel document, and FIG. 10B illustrates template information (grid structure information) of the pivot table of FIG. 10A. In particular, template information is stored in JSON (JavaScript Object Notation) format. That is, the pivot table is decomposed into a hierarchical structure, and is composed of elements of each hierarchy and attribute values of the elements.
또한, 객체가 테이블인 경우, 해당 테이블의 헤더 행과, 데이터의 1번째 행의 구조 정보만을 템플릿으로 저장한다. 테이블에서 데이터 행의 서식이 교차 행인 경우, 연속된 2개의 데이터 행의 서식(속성)을 모두 저장한다.In addition, if the object is a table, only the structure information of the header row of the corresponding table and the first row of data is stored as a template. If the format of data rows in a table is cross-row, all formats (attributes) of two consecutive data rows are saved.
다음으로, 쿼리문 작성부(65)는 데이터베이스(40)에서 기초 데이터셋을 참조하는 쿼리문을 작성하는 기능 또는 인터페이스를 제공한다.Next, the
특히, 도 7과 같이, 쿼리문 작성부(65)는 쿼리문을 텍스트 형태로 직접 작성하거나, 드래그앤드롭 방식의 GUI(그래픽 유저 인터페이스)를 통해 쿼리문을 작성하는 기능을 제공한다. 쿼리문 작성부(65)는 GUI 인터페이스를 통해 쿼리를 작성하더라도, 텍스트 형태의 쿼리문을 생성한다. In particular, as shown in FIG. 7 , the
도 11과 같이, 텍스트 형태의 쿼리문은 SELECT ~ FROM ~ WHERE 등의 구문에 의한 통상의 쿼리문으로 구성된다.As shown in FIG. 11, the query statement in text form is composed of a normal query statement by syntax such as SELECT ~ FROM ~ WHERE.
한편, 쿼리문 작성부(65)는 가공 변수를 쿼리 변수로 이용하여 쿼리문을 작성할 수 있다.Meanwhile, the
쿼리문에서의 쿼리 변수는 변수 식별자, 및, 가공 변수의 이름을 결합하여 구성된다. 즉, 실제로 쿼리 변수는 가공 변수와 매핑되고, 실제로 동일한 변수를 의미한다. 다만, 쿼리 변수와 가공 변수의 표기 형식이 다르다. 즉, 쿼리 변수를 가공 변수의 이름을 포함하여 만들어 쿼리문에서 표기하여 이용하나, 실제로 동일한 변수를 나타낸다. 이하에서 쿼리 변수와 가공 변수의 용어를 혼용한다.A query variable in a query statement is formed by combining a variable identifier and a name of a processing variable. That is, query variables are actually mapped with processing variables, and actually mean the same variables. However, the notation format of query variables and processing variables is different. That is, a query variable is made including the name of a processing variable and used by being marked in the query statement, but actually represents the same variable. In the following, the terms query variable and processing variable are used interchangeably.
바람직하게는, 다음과 같이, 변수 식별자가 쿼리 변수의 접두어로 결합된다.Preferably, variable identifiers are combined into prefixes of query variables, as follows.
[쿼리문의 쿼리 변수][Query variable in query statement]
< 변수 식별자 > + < 가공 변수의 이름 ><variable identifier> + <name of processing variable>
즉, 쿼리 변수는 가공 변수에 변수 식별자를 더하여 매핑되나, 실제로 동일한 변수를 나타낸다.That is, a query variable is mapped by adding a variable identifier to a processed variable, but actually represents the same variable.
또한, 변수 식별자에는 변수의 종류를 나타내는 기호 또는 문자가 포함될 수 있다.In addition, the variable identifier may include symbols or characters indicating the type of variable.
일례로서, 변수 식별자는 ":VS_"로 표시된다. 이때, 콜론(:)과 변수(Variable)의 "V"로 조합하여 식별하고, "S"는 변수의 종류를 나타낸다. 또한, 언더바("_")는 가공 변수의 이름과의 결합을 나타낸다.As an example, variable identifiers are denoted by ":VS_". At this time, it is identified by combining a colon (:) and “V” of Variable, and “S” represents the type of variable. Also, an underscore ("_") represents a combination with the name of a processing variable.
변수의 종류는 도 12에 도시되고 있다.Types of variables are shown in FIG. 12 .
또한, 쿼리문에서 쿼리 변수(가공 변수)를 이용하여 작성한 예가 도 13에 도시되고 있다. 도 13에서 보는 바와 같이, "상품명", "지점명", "매출월", "매출월_TO"는 가공 변수로 설정된 가공 변수의 이름이다. 앞서, 파라미터 시트(P)에서 설정된 가공 변수의 이름들이다.In addition, an example created using query variables (process variables) in the query statement is shown in FIG. 13 . As shown in FIG. 13, "product name", "branch name", "sales month", and "sales month_TO" are names of processing variables set as processing variables. These are the names of processing variables set in the parameter sheet (P) above.
또한, 쿼리문 작성부(65)는 쿼리문에서 쿼리 변수(가공 변수)를 사용할 때, 라인 삭제 기능(이하 동적 라인 삭제 기능)을 구비한다. 이때, 쿼리문의 쿼리 변수에 동적 라인 삭제 기능을 나타내는 기호 또는 문자를 추가하여 구분한다. 일례로서, 동적 라인 삭제 기능은 변수 이름 앞에 "@"를 기입하여 구분한다.In addition, the
동적 라인 삭제 기능의 쿼리 변수는 가공 변수와는 달리, 라인 삭제의 바인딩 기능을 추가로 가진다.Query variables of the dynamic line deletion function, unlike processing variables, additionally have a binding function of line deletion.
동적 라인 삭제 기능은, 해당 가공 변수의 변수 값이 없거나 빈 값인 경우, 쿼리문에서 해당 라인을 삭제하여 바인딩한다.The dynamic line deletion function deletes and binds the line in the query statement when the variable value of the corresponding processing variable does not exist or is empty.
도 14는 조건절(WHERE)에서 사용하는 동적 라인 삭제 기능의 쿼리 변수를 예시하고 있다. 도 14(a)는 작성된 쿼리문이고, 도 14(b)는 도 14(c)의 변수 값에 바인딩하여 생성된 쿼리문을 나타낸다.14 illustrates query variables of the dynamic line deletion function used in the condition clause (WHERE). FIG. 14(a) is a written query statement, and FIG. 14(b) shows a query statement generated by binding to variable values in FIG. 14(c).
한편, 동적 라인 삭제 기능의 쿼리 변수는 조건에 따라 서로 다른 쿼리문을 수행하는 쿼리문에 대한 조건문을 구현할 수 있다.Meanwhile, query variables of the dynamic line deletion function may implement conditional statements for query statements that execute different query statements according to conditions.
도 15의 예와 같이, 각 팀이 "구매팀"인지 여부에 따라 (a)와 (b)의 쿼리문 2개로 구분된다. 즉, 구매팀이 아닌 다른 팀인 경우 도 15(a)와 같이, 단가와 금액을 표시하지 않는 쿼리문을 실행해야 하고, 구매팀인 경우 도 15(b)와 같이, 단가와 금액을 보여주는 쿼리문을 실행해야 한다.As in the example of FIG. 15, each team is divided into two query statements (a) and (b) according to whether or not it is a "purchase team". That is, in the case of a team other than the purchasing team, a query statement that does not display the unit price and amount must be executed, as shown in FIG. should run
도 16은 종래 방식에 따라 도 15의 2가지 경우의 쿼리문을 작성하는 코드를 예시하고 있다. 즉, 종래 방식은 조건 분기를 위해서는 프로그래밍 작업이 필요하다.16 illustrates codes for creating query statements for the two cases of FIG. 15 according to a conventional method. That is, in the conventional method, programming work is required for conditional branching.
쿼리문 작성부(65)는 동적 라인 삭제 기능의 쿼리 변수를 이용하여 다음 2가지 방식으로 구현할 수 있다.The
첫번째 방식은, 조건에 해당하는 쿼리문의 모든 행에, 동적 라인 삭제 기능의 쿼리 변수를 주석문으로 삽입한다. 이를 도 17에 도시하고 있다.In the first method, the query variable of the dynamic line deletion function is inserted as a comment in all rows of the query statement corresponding to the condition. This is shown in Figure 17.
도 17에서 보는 바와 같이, 쿼리 변수 "구매팀(@:VN_구매팀)" 의 변수 값이 없으면, 해당 라인(쿼리 변수가 기재된 라인), 즉, 단가와 금액을 보여주는 해당 라인이 삭제된다. 또한, 쿼리 변수 "다른팀(@:VN_다른팀)"의 변수 값이 존재하면, 해당 쿼리 변수는 변수 값으로 치환되나, 주석문이므로 아무 영향을 주지 않는다. 또한, 해당 라인은 존재하므로, 단가와 금액을 0으로 보여주는 쿼리문이 바인딩 된다.As shown in FIG. 17, if there is no variable value of the query variable “purchasing team (@:VN_purchasing team)”, the corresponding line (the line in which the query variable is written), that is, the corresponding line showing unit price and amount is deleted. In addition, if the variable value of the query variable "Other team (@:VN_Other team)" exists, the query variable is replaced with the variable value, but since it is a comment, it has no effect. Also, since the corresponding line exists, the query statement showing the unit price and amount as 0 is bound.
또한, 도 17의 예에서, 반대로, 쿼리 변수 "구매팀(@:VN_구매팀)" 의 변수 값이 존재하고 쿼리 변수 "다른팀(@:VN_다른팀)"의 변수 값이 없으면, 단가와 금액을 0으로 보여주는 행은 삭제되고 단가와 금액을 보여주는 해당 라인만 존재하여, 단가와 금액을 보여주는 쿼리문으로 바인딩 된다.In addition, in the example of FIG. 17, conversely, if there is a variable value of the query variable "Purchase Team (@: VN_ Purchase Team)" and there is no variable value of the query variable "Other Team (@: VN_ Other Team)", The row showing the unit price and amount as 0 is deleted, and only the corresponding line showing the unit price and amount exists and is bound to the query statement showing the unit price and amount.
다음으로, 2번째 방식은 주석문의 예약어를 사용하는 방식이다. 해당 방식의 일례가 도 18 및 도 19에 도시되고 있다.Next, the second method is a method of using reserved words in comments. An example of this method is shown in FIGS. 18 and 19 .
도 18과 같이, 조건에 따라 수행되는 행들의 전후에 쿼리 변수를 설정한다. 즉, "다른팀"인 경우의 단가와 금액을 0으로 보여주는 행들의 전후에 각각 "다른팀 시작과 종료(@:VN_다른팀_START, @:VN_다른팀_END)"의 쿼리 변수를 작성한다. 그리고, "구매팀"인 경우의 단가와 금액을 보여주는 행들의 전후에 각각 "구매팀 시작과 종료(@:VN_구매팀_START, @:VN_구매팀_END)"의 쿼리 변수를 작성한다.As shown in FIG. 18, query variables are set before and after rows performed according to conditions. That is, the query variables of "Other team start and end (@:VN_Other team_START, @:VN_Other team_END)" before and after the rows showing the unit price and amount as 0 in the case of "Other team" write Then, create query variables of "Purchasing team start and end (@:VN_Purchasing team_START, @:VN_Purchasing team_END)" before and after the rows showing the unit price and amount in the case of "Purchasing team" do.
그리고 도 19a와 같이, 다른팀의 경우, 다른팀의 쿼리 변수들에는 변수 값을 없게 하고(또는 null, 빈칸 등), 구매팀의 쿼리 변수들에는 주석문의 시작 기호와 종료 기호를 변수값으로 각각 입력한다. 그러면, 도 19a의 하단과 같은 쿼리문이 바인딩 된다.And, as shown in FIG. 19a, in the case of other teams, query variables of other teams do not have variable values (or null, blank, etc.), and the query variables of the purchasing team use the start and end symbols of comments as variable values, respectively. Enter Then, the query statement as shown in the lower part of FIG. 19A is bound.
또한, 도 19b와 같이, 구매팀의 경우, 구매팀의 쿼리 변수들에는 변수 값을 없게 하고(또는 null, 빈칸 등), 다른팀의 쿼리 변수들에는 주석문의 시작 기호와 종료 기호를 변수값으로 각각 입력한다. 그러면, 도 19b의 하단과 같은 쿼리문이 바인딩 된다.In addition, as shown in FIG. 19B, in the case of the purchasing team, the query variables of the purchasing team do not have variable values (or null, blank, etc.), and the query variables of the other teams use the start and end symbols of comments as variable values. enter each Then, the query statement as shown at the bottom of FIG. 19B is bound.
한편, 2번째 방식인, 주석문의 예약어를 사용하는 방식은, 동적 라인 삭제 기능의 쿼리 변수를 이용하지 않고, 일반 쿼리 변수를 이용할 수도 있다. 즉, 쿼리 변수를 문자열로 정의하고, 쿼리 변수의 변수값을 넣지 않는 대신, 빈칸 등을 넣어도 가능하다.On the other hand, the second method, a method using a reserved word of a comment, may use a general query variable without using a query variable of the dynamic line deletion function. That is, it is possible to define a query variable as a string, and insert a blank instead of entering the variable value of the query variable.
다음으로, 제2 쿼리문 바인딩부(66)는 작성된 쿼리문을 가공 변수의 변수 값으로 바인딩 한다.Next, the second query
제2 쿼리문 바인딩부(66)는 작성된 쿼리문에서 변수 식별자를 검출하고, 변수 식별자를 인식하면, 변수 식별자에 연결된 문자열을 가공 변수의 이름으로 인식한다.The second query
다음으로, 제2 쿼리문 바인딩부(66)는 가공 변수의 변수 값을 읽어온다. 가공 변수의 변수 값은 파라미터 시트(P)에 정의된 가공 변수의 이름의 셀의 셀 값으로 매핑한다.Next, the second query
그리고, 제2 쿼리문 바인딩부(66)는 가공 변수의 변수 값을 쿼리문의 쿼리 변수에 대체 하여, 바인딩 한다. 이때, 쿼리 변수의 변수 종류에 따라 변수 값의 표현 형식이 달라질 수 있다. 즉, 사전에 정해진 변수 값의 포맷에 따라 변수 값을 변환하여 표시한다.Then, the second query
또한, 제2 쿼리문 바인딩부(66)는 쿼리 변수에 동적 라인 삭제 기능의 기호가 검출되면, 해당 가공 변수의 값이 없는 경우에는 해당 라인을 삭제한다.In addition, when the symbol of the dynamic line deletion function is detected in the query variable, the second query
다음으로, 그리드 표시부(35)는 엑셀 문서 등을 해석하여 그리드를 생성한다. 즉, 템플릿에 따라 그리드 구조를 생성하고 출력하고, 템플릿의 기초 데이터셋의 로드 정보에 따라 기초 데이터셋을 가져와서 그리드에 가공 데이터셋을 반영하여 출력한다.Next, the
먼저, 그리드 표시부(35)는 템플릿의 그리드 구조에 따라 그리드의 형태를 생성한다. 앞서 설명한 바와 같이, 템플릿 파일은 JSON 등 표준 스크립트 데이터 형식으로 작성되었으므로, 해당 스크립트 데이터 형식의 파서를 이용하여 해석한다.First, the
즉, 피벗 테이블 객체인 경우 해당 객체의 JSON 데이터를 해석하여 피벗 테이블을 복원하고, 일반 테이블 객체인 경우 해당 객체의 JSON 데이터를 해석하여 테이블의 헤더 행과 데이터의 1번째 행(또는 1번째와 2번째 행)을 복원한다. 바람직하게는, 여기서의 그리드는 메모리 상에 적재되는 데이터일 수 있다.That is, in the case of a pivot table object, the pivot table is restored by interpreting the object's JSON data, and in the case of a general table object, the object's JSON data is interpreted to restore the header row of the table and the first row of data (or the first and second rows). row) is restored. Preferably, the grid herein may be data loaded onto memory.
특히, 서버에서 사용자의 요청이 있을 경우, 실시간으로 해석한다. 한편, 템플릿 파일은 엑셀 문서 보다 경량화 되어 있으며, 빠른 속도로 로딩할 수 있다.In particular, if there is a user request in the server, it is interpreted in real time. On the other hand, template files are lighter than Excel documents and can be loaded at high speed.
또한, 그리드 표시부(35)는 로드 정보에 따라, 데이터베이스로부터 기초 데이터를 로드한다. 바람직하게는, 데이터베이스의 최신 조회 결과를 실시간으로 반영한다.Also, the
그리드 표시부(35)는 로드 정보를 참조하여, DB연결 정보로 데이터베이스에 접속하고, 쿼리문 정보로 쿼리문을 생성하여 요청한다. 즉, DB연결 정보의 키 값 등으로 인증을 받아 데이터베이스에 접근한다. 또한, 바인딩 구문을 이용하여 가공 변수를 반영하여 쿼리문을 생성한다. 이때, 가공 변수의 변수값은 해당 가공 변수에 매핑된 컨트롤 객체의 입력값으로 설정된다.The
바람직하게는, 그리드 표시부(35)는 데이터베이스(DB)에서 조회한 기초 데이터셋을 메모리에 적재한다. 이때, 기초 데이터셋을 행과 열을 가지는 가상 시트 형태로 적재한다. 즉, 워크시트의 행과 열을 기준으로 기초 데이터셋의 데이터를 참조할 수 있도록 적재한다.Preferably, the
또한, 그리드 표시부(35)는 기초 데이터셋을 그리드의 데이터 영역에 반영하여 삽입한다.In addition, the
특히, 데이터셋 및 해당 그리드의 형태가 테이블인 경우, 해당 그리드에서 데이터셋의 레코드(데이터 행)의 수만큼 행을 동적으로 생성한다. 바인딩 위치를 식별한 뒤 레코드 수만큼 행을 동적으로 생성한다.In particular, if the form of the dataset and the corresponding grid is a table, as many rows as the number of records (data rows) of the dataset are dynamically created in the corresponding grid. After identifying the binding location, dynamically create as many rows as the number of records.
또한, 그리드 표시부(35)는 테이블의 셀이 수식인 경우, 해당 수식을 해석하여 연산된 값을 삽입한다. 특히, 셀 수식에서 데이터 영역 시트의 셀을 참조하는 수식이면, 갱신된 기초 데이터셋(또는 메모리에 적재된 기초 데이터셋)을 참조하여 셀 값을 계산한다.In addition, when the cell of the table is a formula, the
특히, 데이터베이스에서 가져온 기초 데이터셋(갱신된 기초 데이터셋)을 가상 시트 형태로 저장하기 때문에, 엑셀 문서 상에서 기재된 데이터 영역 시트의 셀을 참조하는 수식을 그대로 이용할 수 있다. 이때, 데이터 영역 시트의 이름을 가상 시트(메모리 상에 적재된 가상 시트)로 대체하여 해석한다.In particular, since the basic data set (updated basic data set) imported from the database is stored in the form of a virtual sheet, formulas referring to cells of the data area sheet described in the Excel document can be used as they are. At this time, the name of the data area sheet is replaced with a virtual sheet (virtual sheet loaded in memory) and interpreted.
즉, 그리드 표시부(35)는 레코드 증가에 따른 수식을 자동으로 생성한다.That is, the
도 20에서 보는 바와 같이, 템플릿에 바인딩 위치를 식별한 뒤 레코드 수만큼 행을 동적으로 생성하고, 이때 헤더와 데이터 영역을 판단하여 데이터 영역에 수식이 존재할 경우 수식은 행의 생성과 함께 자동 생성한다.As shown in FIG. 20, after identifying the binding position in the template, as many rows as the number of records are dynamically created. At this time, if a formula exists in the data area by determining the header and data area, the formula is automatically created along with the row creation. .
수식은 엑셀(Excel)의 절대 주소와 상대 주소를 해석하여 생성되는 행의 주소 기반으로 자동 증/감하여 생성한다. 절대 주소는 변하지 않고 고정된 셀의 주소를 나타낸다. 상대 주소는 기준 셀의 위치와 해당 셀의 위치의 상대 위치에 따라 주소값이 변동된다.The formula is created by automatically increasing/decreasing based on the address of the row created by interpreting the absolute and relative addresses of Excel. An absolute address represents a fixed, unchanging cell address. In the relative address, the address value changes according to the relative position of the position of the reference cell and the position of the corresponding cell.
또한, 도 20과 같이, 그리드 표시부(35)는 교차 행 및 스타일(서식)을 지원한다. 즉, 교차 행의 서식이 다른 경우를 지원한다. 즉, 템플릿에 바인딩 위치를 식별한 뒤 데이터 영역의 스타일(서식)을 새로 생성하는 행에 반영한다. 데이터 영역의 행의 사이즈가 2개일 경우 교차 행의 스타일(서식)을 지원하여 번갈아 가며 스타일(서식)을 반영할 수 있다. Also, as shown in FIG. 20 , the
또한, 그리드 표시부(35)는 그리드 상에서 엑셀(Excel)의 수식을 지원한다. 해당 수식은 템플릿에 정의된다. 수식은 데이터 바인딩 규칙에 따라 새로 생성될 수 있다. 데이터 바인딩은 가공 데이터셋이 표 형태로 출력되는 경우 이 위치의 마지막 주소에 수식이 존재하면 해당 수식을 행별로 자동으로 생성해 주는 것을 의미한다.In addition, the
이상, 본 발명자에 의해서 이루어진 발명을 상기 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.In the above, the invention made by the present inventors has been specifically described according to the above embodiments, but the present invention is not limited to the above embodiments, and various changes can be made without departing from the gist of the present invention.
10 : 사용자 단말 20 : 엑셀 도구
30 : 작성 서버 31 : 화면 편집부
32 : 그리드 편집부 33 : 컨트롤 편집부
34 : 보고서 뷰어부 35 : 그리드 표시부
36 : 제1 쿼리 바인딩부 38 : 저장부
60 : 확장모듈 61 : 워크시트 초기화부
62 : 가공변수 설정부 63 : 데이터셋 로드부
64 : 편집결과 저장부 65 : 쿼리문 작성부
64 : 제2 쿼리 바인딩부
80 : 네트워크10: user terminal 20: excel tool
30: writing server 31: screen editing unit
32: grid editing unit 33: control editing unit
34: report viewer unit 35: grid display unit
36: first query binding unit 38: storage unit
60: extension module 61: worksheet initialization unit
62: processing variable setting unit 63: data set loading unit
64: Editing result storage unit 65: Query statement writing unit
64: second query binding unit
80: network
Claims (7)
상기 작성 서버는,
웹 상의 보고서 화면에서 그리드 객체를 편집하되, 하나의 그리드 객체에 대한 정보를 하나의 엑셀 문서에 저장하고, 확장된 엑셀 도구에 의한 엑셀 문서의 편집을 통해 그리드 객체를 편집하게 하는 그리드 편집부;
웹 상의 보고서 화면에서 컨트롤 객체를 생성하고 편집하는 컨트롤 편집부;
제1 쿼리 바인딩부;
그리드 객체에 매핑되는 엑셀 문서의 내용에 따라 해당 그리드 객체의 내용을 웹 상에 표시하는 그리드 표시부; 및,
그리드 객체와 컨트롤 객체로 구성된 보고서를 웹 상에서 표시하되, 상기 그리드 표시부를 통해 그리드 객체를 표시하는, 보고서 뷰어부를 포함하고,
상기 사용자 단말에 설치되는 엑셀 도구에 설치되는 확장 모듈은,
상기 엑셀 도구가 호출되면, 상기 그리드 객체에 매핑되는 엑셀 문서를 생성하되, 그리드의 형태를 나타내는 뷰 영역 시트, 기초 데이터셋을 저장하는 데이터 영역 시트, 가공 변수를 설정하는 파라미터 영역 시트로 구성되는 엑셀 문서를 생성하는, 워크시트 초기화부;
상기 엑셀 문서의 파라미터 영역 시트 상에서 가공변수를 설정하는, 가공변수 설정부;
상기 워크시트 상의 가공 변수를 쿼리 변수로 매핑하여 쿼리문을 작성하는 쿼리문 작성부;
상기 쿼리문의 쿼리 변수를 가공 변수의 변수 값으로 바인딩 하는 제2 쿼리 바인딩부; 및,
상기 엑셀 문서의 워크시트 상에서 기초 데이터셋을 로드하되, 상기 제2 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 로드하는, 데이터셋 로드부를 포함하고,
상기 제1 쿼리 바인딩부는 상기 쿼리문의 쿼리 변수를 가공 변수의 변수 값으로 바인딩 하고,
상기 그리드 표시부는 상기 제1 쿼리 바인딩부를 통해 상기 쿼리문을 바인딩하여, 바인딩된 쿼리문으로 기초 데이터셋을 로드하고, 로드된 기초 데이터셋로부터 가공된 데이터셋으로 그리드 객체의 내용을 표시하고,
상기 컨트롤 편집부는 상기 컨트롤 객체에 상기 가공 변수를 매핑시키고,
상기 제1 쿼리 바인딩부는 변수 값을 상기 가공 변수에 매핑되는 컨트롤 객체의 입력값으로 설정하는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
In the online report creation system using an Excel tool, including a creation server and a user terminal,
The creation server,
A grid editing unit that edits a grid object on a report screen on the web, stores information about one grid object in one Excel document, and edits the grid object through editing of the Excel document by an extended Excel tool;
a control editing unit that creates and edits a control object on a report screen on the web;
a first query binding unit;
a grid display unit displaying the contents of the grid object on the web according to the contents of the Excel document mapped to the grid object; and,
A report viewer unit displaying a report composed of a grid object and a control object on the web and displaying the grid object through the grid display unit;
The extension module installed in the Excel tool installed in the user terminal,
When the Excel tool is called, an Excel document that is mapped to the grid object is created, and an Excel document composed of a view area sheet representing the shape of the grid, a data area sheet for storing basic data sets, and a parameter area sheet for setting processing variables. a worksheet initialization unit that creates a document;
a processing variable setting unit that sets processing variables on a parameter area sheet of the Excel document;
a query statement creation unit that creates a query statement by mapping processing variables on the worksheet to query variables;
a second query binding unit that binds query variables of the query statement to variable values of processed variables; and,
A data set loading unit for loading a basic dataset on a worksheet of the Excel document, binding the query statement through the second query binding unit, and loading the bound query statement;
The first query binding unit binds query variables of the query statement to variable values of processing variables,
The grid display unit binds the query statement through the first query binding unit, loads the basic data set with the bound query statement, and displays the content of the grid object from the loaded basic data set to the processed data set.
The control editing unit maps the processing variable to the control object,
The online report writing system having a query binding function, characterized in that the first query binding unit sets a variable value as an input value of a control object mapped to the processing variable.
상기 쿼리문에서의 쿼리 변수는 변수 식별자, 및, 가공 변수의 이름을 결합하여 구성되어 표기되고,
상기 제1 또는 제2 쿼리 바인딩부는, 쿼리문에서 변수 식별자를 인식하면, 해당 변수 식별자에 연결된 문자열을 가공 변수로 인식하는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
According to claim 1,
The query variable in the query statement is composed and displayed by combining a variable identifier and a name of a processing variable,
The online report writing system having a query binding function, characterized in that, when the first or second query binding unit recognizes a variable identifier in the query statement, it recognizes a string connected to the variable identifier as a processed variable.
상기 쿼리문에서 쿼리 변수를 사용할 때, 라인 삭제 기능을 구비하고, 해당 쿼리 변수에 동적 라인 삭제 기능을 나타내는 기호 또는 문자를 추가하여 구분하고,
상기 제1 또는 제2 쿼리 바인딩부는, 쿼리 변수가 라인 삭제 기능을 가지는 경우, 해당 가공 변수의 변수 값이 없거나 빈 값이면, 해당 쿼리문에서 해당 라인을 삭제하여 바인딩하는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
According to claim 1,
When using a query variable in the query statement, a line deletion function is provided, and a symbol or character indicating a dynamic line deletion function is added to the query variable to distinguish it,
The first or second query binding unit, when the query variable has a line deletion function, if the variable value of the corresponding processing variable does not exist or is an empty value, the query binding function characterized in that for binding by deleting the corresponding line from the corresponding query statement Online report writing system with.
상기 쿼리문에서 조건에 따라 수행되는 행이 다른 경우, 해당 행에 주석문을 삽입하고, 삽입된 주석문에 라인 삭제 기능을 가진 쿼리 변수를 삽입하고, 조건에 따라 쿼리 변수의 변수 값이 빈 값으로 입력하게 하거나 임의의 값을 입력하게 하여, 빈 값이면 해당 행이 삭제되게 하고, 임의의 값이면 해당 행이 수행되도록 제공하는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
According to claim 3,
If the row executed according to the condition in the above query statement is different, a comment statement is inserted in the corresponding row, a query variable having a line deletion function is inserted in the inserted comment statement, and the variable value of the query variable is entered as an empty value according to the condition. An online report creation system having a query binding function, characterized in that by inputting an arbitrary value, the corresponding row is deleted if it is an empty value, and the corresponding row is provided to be executed if it is an arbitrary value.
상기 가공변수 설정부는 변수정의 셀의 이름을 가공변수의 이름으로 설정하고, 상기 가공 변수는 상기 엑셀 문서 상에서 그리드에 표시할 테이블의 셀 내의 수식에 사용되는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
According to claim 1,
The processing variable setting unit sets the name of the variable definition cell to the name of the processing variable, and the processing variable is used in the formula in the cell of the table to be displayed in the grid on the Excel document. Report writing system.
상기 뷰 영역 시트 상의 테이블은 상기 데이터 영역 시트 상에 입력된 기초 데이터셋을 참조하되, 상기 뷰 영역 시트 상의 테이블 내의 셀의 수식에서 상기 데이터 영역 시트의 셀을 참조하고,
상기 그리드 표시부는 기초 데이터셋을 데이터베이스에서 가져와서 가상 시트 상에 저장하고, 상기 그리드 객체의 테이블의 각 셀을 수식에 따라 반영할 때, 참조하는 데이터 영역 시트의 셀의 내용 대신, 가상 시트 상의 해당 셀의 내용으로 반영하는 것을 특징으로 하는 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템.
According to claim 5,
A table on the view area sheet refers to an underlying data set entered on the data area sheet, and a formula of a cell in the table on the view area sheet refers to a cell of the data area sheet;
The grid display unit fetches the basic data set from the database and stores it on the virtual sheet, and when each cell of the table of the grid object is reflected according to a formula, instead of the content of the cell of the data area sheet to be referred to, the corresponding data area on the virtual sheet is reflected. An online report creation system having a query binding function, characterized in that the content of the cell is reflected.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200178176A KR102499832B1 (en) | 2020-12-18 | 2020-12-18 | An online report creation system with query binding function |
JP2021093534A JP7216377B2 (en) | 2020-12-18 | 2021-06-03 | Online reporting system with query binding capabilities |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200178176A KR102499832B1 (en) | 2020-12-18 | 2020-12-18 | An online report creation system with query binding function |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220087789A KR20220087789A (en) | 2022-06-27 |
KR102499832B1 true KR102499832B1 (en) | 2023-02-15 |
Family
ID=82165475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200178176A KR102499832B1 (en) | 2020-12-18 | 2020-12-18 | An online report creation system with query binding function |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7216377B2 (en) |
KR (1) | KR102499832B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101951719B1 (en) | 2018-07-26 | 2019-02-25 | (주)비아이매트릭스 | A web reporting design system with programming event handling by using graphic interface |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100497811B1 (en) | 2001-12-27 | 2005-07-01 | 삼성에스디에스 주식회사 | Reporting system linked with web environment |
KR100697155B1 (en) | 2004-12-03 | 2007-03-21 | (주)엠투소프트 | System and method for forming report using web service |
JP5645627B2 (en) * | 2010-12-08 | 2014-12-24 | 三菱電機株式会社 | Data input / output device |
US10824802B2 (en) * | 2011-12-29 | 2020-11-03 | Bibo Labs, Inc. | Spreadsheet-based programming language adapted for report generation |
KR20130126012A (en) | 2012-05-10 | 2013-11-20 | (주)네오위즈게임즈 | Method and apparatusfor providing report of business intelligence |
JP2015191258A (en) * | 2014-03-27 | 2015-11-02 | 富士通株式会社 | program, processing method and information processing apparatus |
KR101769857B1 (en) * | 2015-12-28 | 2017-08-22 | (주)비아이매트릭스 | An update system for the database by using spreadsheet interface |
KR101769853B1 (en) * | 2015-12-28 | 2017-08-22 | (주)비아이매트릭스 | A batch update system based on spreadsheet interface for the database by using query templates |
KR102034679B1 (en) * | 2018-01-17 | 2019-10-23 | (주)비아이매트릭스 | A data input/output system using grid interface |
-
2020
- 2020-12-18 KR KR1020200178176A patent/KR102499832B1/en active IP Right Grant
-
2021
- 2021-06-03 JP JP2021093534A patent/JP7216377B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101951719B1 (en) | 2018-07-26 | 2019-02-25 | (주)비아이매트릭스 | A web reporting design system with programming event handling by using graphic interface |
Also Published As
Publication number | Publication date |
---|---|
JP7216377B2 (en) | 2023-02-01 |
JP2022097358A (en) | 2022-06-30 |
KR20220087789A (en) | 2022-06-27 |
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 | |
US8479093B2 (en) | Metamodel-based automatic report generation | |
US9811604B2 (en) | Method and system for defining an extension taxonomy | |
RU2421797C2 (en) | Indication, definition and detection of electronic table document parameters | |
JP5570608B2 (en) | Excel-based analysis report creation system and method | |
WO2021073077A1 (en) | Method, apparatus and device for automatically generating spreadsheet, and storage medium | |
KR102230729B1 (en) | An online task system for an Excel file based on templates | |
KR20080042852A (en) | Markup based extensibility for user interfaces | |
CN110673848A (en) | Enterprise information management system configuration platform based on JavaWeb | |
CN104881275A (en) | Electronic spreadsheet generating method and device | |
US9817811B2 (en) | Web server system, dictionary system, dictionary call method, screen control display method, and demonstration application generation method | |
KR101951719B1 (en) | A web reporting design system with programming event handling by using graphic interface | |
WO2008107665A2 (en) | A graphical user interface for use in integrating programming functions with spreadsheet applications | |
JP7339628B2 (en) | Online report creation system using Excel tools | |
US7409642B2 (en) | Method and system for applying user interface elements to data | |
CN111752999A (en) | Configured report generation system and method | |
CN106407172A (en) | XML (Extensible Markup Language)-based report generating method | |
KR102499832B1 (en) | An online report creation system with query binding function | |
US20240037325A1 (en) | Ability to add non-direct ancestor columns in child spreadsheets | |
Barresse et al. | Excel Tables: A Complete Guide for Creating, Using and Automating Lists and Tables | |
KR20240105549A (en) | Method for supporting front-end development and system thereof | |
CN115328789A (en) | Test case editing method, device, equipment and medium | |
CN115543288A (en) | Code information generation method, device, equipment and storage medium | |
Leung | Visual Studio LightSwitch 2012 |
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 |