KR101977972B1 - 보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어 - Google Patents

보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어 Download PDF

Info

Publication number
KR101977972B1
KR101977972B1 KR1020147021271A KR20147021271A KR101977972B1 KR 101977972 B1 KR101977972 B1 KR 101977972B1 KR 1020147021271 A KR1020147021271 A KR 1020147021271A KR 20147021271 A KR20147021271 A KR 20147021271A KR 101977972 B1 KR101977972 B1 KR 101977972B1
Authority
KR
South Korea
Prior art keywords
spreadsheet
computer
report
software module
template
Prior art date
Application number
KR1020147021271A
Other languages
English (en)
Other versions
KR20140126311A (ko
Inventor
마이클 제이 첸
Original Assignee
바이보 랩스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 바이보 랩스, 인크. filed Critical 바이보 랩스, 인크.
Publication of KR20140126311A publication Critical patent/KR20140126311A/ko
Application granted granted Critical
Publication of KR101977972B1 publication Critical patent/KR101977972B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/183Tabulation, i.e. one-dimensional positioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates

Abstract

보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어를 구현하는 컴퓨터 기반 시스템, 소프트웨어, 및 방법이 개시되고, 상기 시스템은 프로세서, 실행가능 명령어를 수행하도록 구성된 운영체제, 및 메모리 장치를 포함한 선택적으로 네트워크된 컴퓨터와; 보고서 작성용 스프레드시트 기반 프로그래밍 언어를 구현하는 환경을 생성하도록 디지털 처리 장치에 의해 실행가능한 명령어를 포함한 컴퓨터 프로그램을 포함하고, 상기 환경은 스프레드시트 내의 하나 이상의 지정된 외부 데이터세트의 구조를 저장하는 소프트웨어 모듈- 각 데이터세트에 대한 참조는 셀 기반 공식을 통해 생성됨 -과; 보고서 설계 템플릿의 태그를 통해 지정되는 절차 함수를 해석하는 소프트웨어 모듈과; 보고서 작성을 위한 소프트웨어 모듈을 포함한다.

Description

보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어{SPREADSHEET-BASED PROGRAMMING LANGUAGE ADAPTED FOR REPORT GENERATION}
관련 출원에 대한 교차 참조
이 출원은 2011년 12월 29일자 출원한 미국 가특허 출원 제61/581,515호를 우선권 주장하며, 이 우선권 출원은 여기에서의 인용에 의해 그 전체 내용이 본원에 통합된다.
기존의 기업 리포팅 툴(reporting tool)은 제3자 애플리케이션 및 개발 환경의 설계 과정 전반에 걸쳐서 사용자가 밀접하게 개입할 필요가 있다. 사용자는 보고서를 생성하기 위해 소정의 정도로 소프트웨어 개발 분야에 숙련되어야 한다. 개발이 완료된 후에, 기존의 분배 수단은 제한된다. 만일 어떤 조직이 임의의 제3자 리포팅 툴(예를 들면, 크리스탈 리포트)을 채용하였으면, 관리자는 그 보고서에 대한 접근(access)뿐만 아니라 데이터베이스에 대한 직접 접근을 개통(opening)하는 각각의 개별 컴퓨터에 소프트웨어를 설치하여야 한다. 이 때문에 잠재적으로 애플리케이션의 지리적 위치를 제한하고 잠재적으로 보안 파괴의 기회를 만든다.
보고서 설계 및 보고서 자체에 대한 접근성을 증가시키는 단순한 기업 리포팅 개발 플랫폼, 환경 및 툴에 대한 오랜 숙원이고 충족되지 못한 필요성이 있다. 효과적인 기업 리포팅 툴은 설계를 용이하게 할 뿐만 아니라 단순하고 안전한 분배를 가능하게 한다. 여기에서 개시하는 발명은 사용자가 스프레드시트에 대한 자신의 기존 지식을 레버리지하고 그 지식 기반을 최대화하며 그 지식 기반을 마크업 태그 언어로 확장시킴으로써 보고서를 설계할 수 있게 한다. 시스템은 단순한 파일 시스템 구조를 이용하여 스토어 보고서(store report)의 계층을 표시하고 이러한 객체들을 웹 기반 사용자 인터페이스를 통해 디스플레이한다. URL(Uniform Resource Locator)의 분배시에 사용자는 데이터세트를 안전하게 필터링하고 분류하며, 일반 스프레드시트로 포맷할 수 있다.
따라서, 일 양태에 있어서, 보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어를 구현하는 컴퓨터 기반 시스템이 여기에서 개시되고, 이 시스템은 프로세서, 실행가능 명령어를 수행하도록 구성된 운영체제, 및 메모리 장치를 포함한 선택적으로 네트워크된 컴퓨터와; 보고서 작성용 스프레드시트 기반 프로그래밍 언어를 구현하는 환경을 생성하도록 디지털 처리 장치에 의해 실행가능한 명령어를 포함한 컴퓨터 프로그램을 포함하고, 상기 환경은 스프레드시트 내의 하나 이상의 지정된 외부 데이터세트의 구조를 저장하는 소프트웨어 모듈- 각 데이터세트에 대한 참조는 셀 기반 공식을 통해 생성됨 -과; 보고서 설계 템플릿의 태그를 통해 지정되는 절차 함수(prosedural function)를 해석하는 소프트웨어 모듈(예를 들면, 인터프리터)과; 보고서 작성을 위한 소프트웨어 모듈을 포함한다. 일부 실시형태에 있어서, 하나 이상의 외부 데이터세트는 데이터베이스이다. 추가의 실시형태에 있어서, 하나 이상의 데이터베이스는 관계형 데이터베이스, 비관계형 데이터베이스, 객체 지향형 데이터베이스, 오브젝트 데이터베이스, 엔티티 관계 모델 데이터베이스, 연합형(associative) 데이터베이스, 또는 XML 데이터베이스이다. 일부 실시형태에 있어서, 하나 이상의 외부 데이터세트는 표형식(tabular) 데이터세트이다. 추가의 실시형태에 있어서, 하나 이상의 표형식 데이터세트는 콤마 분리형 텍스트 파일, 탭 경계형 텍스트 파일, 또는 고유 데이터세트가 표형식 구조화 데이터세트와 함께 매립된 이진 파일이다. 일부 실시형태에 있어서, 하나 이상의 지정된 외부 데이터세트의 구조를 저장하는 소프트웨어 모듈은 상기 구조를 기호 참조문(symbolic reference)으로서 저장한다. 일부 실시형태에 있어서, 소프트웨어 인터프리터는 상기 절차 함수를 해석하여 쿼리(query)를 실행한다. 추가의 실시형태에 있어서, 쿼리는 검색 파라미터와 분류 파라미터 중의 어느 하나 또는 양자를 선택적으로 포함한다. 일부 실시형태에 있어서, 상기 환경은 차후 실행을 위해 쿼리를 세이브하기 위한 소프트웨어 모듈을 또한 포함한다. 추가의 실시형태에 있어서, 각각의 세이브된 쿼리는 활성화된 때 상기 쿼리를 실행하는 URL에 의해 표시된다. 일부 실시형태에 있어서, 상기 보고서 설계 템플릿은 스프레드시트이다. 추가의 실시형태에 있어서, 상기 스프레드시트는 마이크로소프트 엑셀의 임의 버전이다. 다른 실시형태에 있어서, 상기 스프레드시트는 오픈오피스 캘크(OpenOffice Calc)의 임의 버전 및 파생물이다. 다른 실시형태에 있어서, 상기 스프레드시트는 로터스(Lotus) 1-2-3의 임의 버전 및 파생물이다. 일부 실시형태에 있어서, 상기 보고서 작성용 소프트웨어 모듈은 보고서 설계 템플릿의 속성을 보고서에 적용한다. 일부 실시형태에 있어서, 상기 보고서 작성용 소프트웨어 모듈은 보고서를 하나 이상의 스프레드시트, XML 문서, HTML 문서, 리포팅 소프트웨어 문서, 워드프로세서 문서, 또는 프리젠테이션 소프트웨어 문서 형태의 이진 데이터(binary data)로서 작성한다.
다른 양태에 있어서, 리포팅 환경을 생성하기 위해 컴퓨터에 의해 실행가능한 명령어를 포함한 컴퓨터 프로그램으로 인코드된 컴퓨터 판독가능 매체가 여기에서 개시되고, 상기 리포팅 환경은 스프레드시트 내의 하나 이상의 지정된 외부 데이터세트의 구조를 저장하는 소프트웨어 모듈- 각 데이터세트에 대한 참조는 셀 기반 공식을 통해 생성됨 -과; 보고서 설계 템플릿의 태그를 통해 지정되는 절차 함수를 해석하는 소프트웨어 인터프리터와; 보고서 작성용 소프트웨어 모듈을 포함한다. 일부 실시형태에 있어서, 상기 보고서 작성용 소프트웨어 모듈은 보고서 설계 템플릿의 속성을 보고서에 적용한다. 일부 실시형태에 있어서, 상기 인코딩은 영속적, 실질적으로 영속적, 반영속적, 또는 비영속적이다. 일부 실시형태에 있어서, 상기 소프트웨어 인터프리터는 상기 절차 함수를 해석하여 쿼리를 실행한다. 추가의 실시형태에 있어서, 쿼리는 검색 파라미터와 분류 파라미터 중의 어느 하나 또는 양자를 선택적으로 포함한다. 일부 실시형태에 있어서, 상기 리포팅 환경은 차후 실행을 위해 쿼리를 세이브하기 위한 소프트웨어 모듈을 또한 포함한다. 추가의 실시형태에 있어서, 각각의 세이브된 쿼리는 활성화된 때 상기 쿼리를 실행하는 URL에 의해 표시된다.
다른 양태에 있어서, 보고서를 작성하는 컴퓨터 구현 방법이 여기에서 개시되고, 이 방법은 컴퓨터 메모리에 보유된 스프레드시트 내의 하나 이상의 지정된 외부 데이터세트의 구조를 저장하는 단계와; 컴퓨터 메모리에 보유된 상기 스프레드시트 내의 셀 기반 공식을 통해 각 데이터세트를 참조하는 단계와; 출력을 포맷하기 위해 하나 이상의 보고서 설계 템플릿을 소프트웨어 모듈에 의해 해석하는 단계를 포함한다. 일부 실시형태에 있어서, 출력을 포맷하기 위해 하나 이상의 보고서 설계 템플릿을 해석하는 단계는 하나 이상의 템플릿을 메모리에 읽어들이는 단계와; 프로그래밍 명령어를 규정하는 하나 이상의 태그를 메모리에 읽어들이는 단계와; 하나 이상의 데이터세트를 메모리에 읽어들이는 단계와; 새로운 스프레드시트를 생성하는 단계와; 상기 템플릿의 속성을 상기 새로운 스프레드시트에 적용하는 단계와; 행과 열을 각 데이터세트에 기초하여 상기 새로운 스프레드시트에 삽입하는 단계와; 규정된 프로그래밍 명령어를 수행하는 단계와; 상기 새로운 스프레드시트를 이진 데이터 포맷으로 출력하는 단계를 포함한다. 일부 실시형태에 있어서, 상기 출력은 보고서이다. 추가의 실시형태에 있어서, 상기 보고서는 하나 이상의 스프레드시트, XML 문서, HTML 문서, 리포팅 소프트웨어 문서, 워드프로세서 문서, 또는 프리젠테이션 소프트웨어 문서 형태의 이진 데이터이다.
다른 양태에 있어서, 리포팅 환경을 생성하기 위해 컴퓨터에 의해 실행가능한 명령어를 포함한 컴퓨터 프로그램으로 인코드된 컴퓨터 판독가능 매체가 여기에서 개시되고, 상기 리포팅 환경은 스프레드시트 내의 셀 기반 공식을 통하여 하나 이상의 데이터세트를 참조하는 소프트웨어 모듈과; 출력을 포맷하도록 하나 이상의 보고서 설계 템플릿을 해석하는 소프트웨어 모듈을 포함하고, 절차 함수는 태그를 통하여 보고서 설계 템플릿에서 지정된다. 일부 실시형태에 있어서, 상기 셀 기반 공식은 어느 정도까지 사용자에 의해 입력된다. 일부 실시형태에 있어서, 상기 셀 기반 공식은 어느 정도까지 자동 생성 마법사를 통해 컴퓨터 시스템에 의해 입력된다. 일부 실시형태에 있어서, 절차 함수는 어느 정도까지 사용자에 의해 입력된다. 일부 실시형태에 있어서, 절차 함수는 어느 정도까지 자동 생성 마법사를 통해 컴퓨터에 의해 입력된다. 일부 실시형태에 있어서, 상기 출력은 보고서이다. 일부 실시형태에 있어서, 상기 인코딩은 영속적, 실질적으로 영속적, 반영속적, 또는 비영속적이다.
다른 양태에 있어서, 보고서 작성을 위한 프로그래밍 명령어를 식별하는 컴퓨터 구현 방법이 여기에서 개시되고, 이 방법은 입력을 지정하는 단계; 출력을 지정하는 단계; 수학적 계산을 지정하는 단계; 명령어의 조건적 실행을 지정하는 단계; 및 명령어의 반복을 지정하는 단계로 이루어진 그룹으로부터 선택된 프로그래밍 명령어를 식별하기 위해 컴퓨터 메모리, 예를 들면 비휘발성 메모리 및 비일시적 메모리에 스프레드시트의 특정 태그를 저장하는 단계를 포함한다. 일부 실시형태에 있어서, 하나 이상의 태그는 여는 태그(opening tag)와 닫는 태그(closing tag)로 구성된 태그 쌍으로 활용된다. 일부 실시형태에 있어서, 하나 이상의 태그는 단일 태그로서 활용된다.
도 1은 보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어를 구현하는 비제한적인 처리, 이 경우에는 메타데이터 워크시트 및 설계 템플릿 워크시트가 스프레드시트에 저장되고 출력이 스프레드시트 형태의 보고서인 처리를 보인 도이다.
도 2는 스프레드시트 공식의 비제한적인 예를 보인 도이다.
도 3은 간단한 템플릿, 이 경우에는 기본 고객 데이터에 대한 템플릿의 비제한적인 예를 보인 도이다.
도 4는 인터프리터를 통해 외부 데이터세트를 가동하고 태그에 따라 사적 절차 언어를 연출한 후에 도 3의 템플릿의 출력의 비제한적인 예를 보인 도이다.
도 5는 복잡한 보고서 템플릿, 이 경우에는 추가의 <detail></detail> 태그에 의해 표시되는 포대기형 루프를 가진 보고서 템플릿의 비제한적인 예를 보인 도이다.
도 6은 외부 데이터세트에 대한 참조문이 하이라이트된 도 5의 템플릿의 비제한적인 예를 보인 도이다.
도 7은 외부 데이터세트가 인터프리터에 폴링된 후에 도 5 및 도 6의 템플릿으로부터의 결과적인 보고서의 비제한적인 예를 보인 도이다.
도 8은 결과적인 외부 데이터세트 및 반복을 위한 각각의 행 삽입에 기초하여 셀 값의 인터프리터 성찰 및 재조정을 나타내는 도 7로부터의 새로 형성된 공식의 비제한적인 예를 보인 도이다.
도 9는 스프레드시트 내의 검색 및 분류 파라미터의 정의 및 메타시트의 비제한적인 예를 보인 도이다.
도 10은 외부 데이터세트를 필터링 및 분류하기 위해 HTML 형태로 연출되는 검색 및 분류 파라미터, 이 예에서는 쿼리 마크로서 또한 세이브되고 URL에 의해 참조될 수 있는 파라미터의 비제한적인 예를 보인 도이다.
도 11은 템플릿, 이 경우에는 실시예 1에서 제공된 스프레드시트 마크업 언어를 포함하는 템플릿의 비제한적인 예를 보인 도이다.
도 12는 실시예 1에서 제공된 보고서, 이 경우에는 이미지 및 바코드가 각각의 셀에 매립된 보고서의 비제한적인 예를 보인 도이다.
도 13은 메타데이터 시트, 이 경우에는 실시예 5에서 설명하는 것처럼 교차 데이터베이스 쿼리를 수행하기 위해 교차 데이터베이스 쿼리 엔진에 의해 발행되는 상이한 쿼리의 리스트를 저장하는 메타데이터 시트의 비제한적인 예를 보인 도이다.
도 14 내지 도 16은 실시예 5에서 설명하는 것과 같은 교차 데이터베이스 쿼리의 컴포넌트 서브쿼리- 이 경우에 메타데이터 시트는 오라클, 세일즈포스 및 몽고를 포함한 복수의 다른 데이터 소스로부터 오는 것임 -의 비제한적인 예를 보인 도이다.
도 17은 실시예 5에서 설명하는 것과 같은 교차 데이터베이스 테이블 메타데이터 시트의 비제한적인 예를 보인 도이다.
도 18은 실시예 5에서 설명하는 것과 같은 교차 데이터베이스 필드 선택의 비제한적인 예를 보인 도이다.
다르게 규정되지 않는 한, 여기에서 사용되는 모든 기술적 용어는 본 발명이 속하는 기술 분야에 통상의 지식을 가진 사람이 일반적으로 이해하는 것과 동일한 의미를 갖는다. 이 명세서 및 첨부된 특허 청구범위에서 사용되는 바와 같이, 단수 표현의 용어는 문맥에서 다른 방식으로 명확히 구술하지 않는 한 복수의 의미를 포함한다. 여기에서 "또는"의 표현은 다르게 설명되지 않는 한 "및/또는"을 포함하는 것으로 의도된다.
여기에서 사용하는 용어 "데이터세트"는 행(row) 또는 기록(record)의 집합을 의미한다.
여기에서 사용되는 용어 "워크시트"는 스프레드시트 프로그램의 단일 페이지 또는 시트를 의미한다.
여기에서 사용되는 용어 "행"은 테이블, 워크시트, 스프레드시트 또는 데이터베이스 내의 단일의 단일의 내재적으로 구성된 데이터 기록을 의미한다. 일부 실시형태에 있어서, 데이터의 행은 워크시트에서 수평으로 진행하는 셀들의 집합이다.
여기에서 사용되는 용어 "열"(column)은 워크시트에서 수직 진행하는 셀들의 집합을 의미한다.
여기에서 사용되는 용어 "셀"은 데이터가 테이블, 워크시트, 스프레드시트 또는 데이터베이스에 입력되는 곳을 표시한다. 일부 실시형태에 있어서, 셀은 행과 열 사이의 교차점에 위치한다.
여기에서 사용되는 용어 "공식"은 소정의 값을 계산하기 위해 사용되는 수학식을 의미한다.
스프레드시트 기반 프로그래밍 언어
일부 실시형태에 있어서, 여기에서 개시되는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 스프레드시트 기반 프로그래밍 언어를 생성 또는 활용한다. 일부 실시형태에 있어서, 스프레드시트 프로그래밍 언어는 외부 인터프리터가 태그 및 함수를 다른 유형의 프로그램적 함수 또는 엔티티로 요약할 수 있게 하는 스프레드시트 내에서 소정의 태깅(tagging) 방법을 따르는 언어이다.
일부 실시형태에 있어서, 적당한 스프레드시트는 스프레드시트 내의 복수의 워크시트로 구성된다. 추가의 실시형태에 있어서, 하나의 지정된 워크시트는 외부 데이터 세트(들) 및 데이터세트(들)로부터 검색하는 수단을 표시한다. 다른 추가의 실시형태에 있어서, 필요할 때 메타데이터 워크시트를 참조하는 템플릿 설계용으로 사용되는 스프레드시트 내의 추가의 워크시트가 있다.
도 1은 스프레드시트 기반 프로그래밍 언어를 구현함으로써 보고서를 작성하는 비제한적인 예시적 처리를 보인 것이다. 도 1의 예시적 처리는 사용자 입력을 수용하도록 파라미터 기반 웹 형태를 연출(rendering)하는 제1 단계를 포함한다. 일부 실시형태에 있어서, 시스템은 스프레드시트(105)를 메모리에 로드하고 스프레드시트에 포함된 메타데이터 시트를 내관(introspect)한다(100). 시스템은 메타데이터 시트로부터 필터링 및 분류용으로 사용되는 각각의 필드를 찾는다. 추가의 실시형태에 있어서, 시스템은 그 다음에, 분류될 이용가능 필드를 디스플레이하는 웹 페이지를 연출한다(110). 이 파라미터들은 사용자가 보고서 작성을 실행할 때 인터프리터에 공급하기 위해 준비된다(120).
도 1의 예시적인 처리는 하기의 (A)-(G) 단계로 이루어진 다단계인 제2의 보고서 작성 단계를 또한 포함한다.
(A) 시스템은 사용자 규정 파라미터에 기초하여 외부 데이터세트(들)을 검색한다. 일부 실시형태에 있어서, 시스템은 보고서에서 이용가능한 모든 파라미터들을 끌어들여서 쿼리의 수단을 통해 외부 데이터 소스로부터 데이터를 추출한다(130). 추가의 실시형태에 있어서, 쿼리는 비제한적인 예를 들자면 관계형 데이터베이스, 온라인 웹 서비스, LDAP 데이터베이스 및 플랫 파일을 포함한 각종의 상이한 데이터 소스에서 실행된다. 특수한 실시형태는 관계형 데이터베이스(예를 들면, 오라클(Oracle))에 대한 SQL 스테이트먼트의 실행이다. 이 실시형태에 있어서, SQL 스테이트먼트는 인터프리터에 의해 오라클 RDBMS에게 제공되고, RDBMS는 사용자가 파라미터 페이지에서 규정한 파라미터들로 분류되는 필터링된 결과 집합을 반환한다(예를 들면, HTML 형태).
(B) 인터프리터는 템플릿 워크시트를 메모리에 읽어들인다. 일부 실시형태에 있어서, 시스템은 각각의 이용가능한 템플릿 워크시트를 메모리에 읽어들인다(140). 일부 실시형태에 있어서, 하나 이상의 템플릿 워크시트는, 예를 들면, 메타데이터 워크시트(105)와 동일한 스프레드시트 내에 있다. 다른 실시형태에 있어서, 하나 이상의 템플릿 워크시트는, 예를 들면, 별도의 스프레드시트(145) 내에 있다. 추가의 실시형태에 있어서, 각각의 템플릿 워크시트는 비제한적인 예를 들자면 페이지 방위, 프린트 포맷, 페이지 사이즈, 워크시트 명칭, 디폴트 폰트, 배경색, 및 다른 함수를 포함한 다수의 속성들을 갖는다. 이 속성들은, 일부 실시형태에 있어서, 목표로 정해진 결과적인 이진수 출력에 적용되도록 메모리에서 유지된다.
(C) 인터프리터는 각 워크시트를 통하여 해부하고 모든 태그를 메모리에 읽어들인다. 일부 실시형태에 있어서, 인터프리터가 각 워크시트를 횡단할 때, 인터프리터는 스프레드시트 내의 모든 템플릿 워크시트에 대한 각각의 태그를 판독한다(160). 추가의 실시형태에 있어서, 인터프리터는 그 다음에 절차 함수들이 들어가는 행 및 열을 식별 및 표시한다.
(D) 인터프리터는 새로운 보고서를 생성하고 각 워크시트를 템플릿으로부터 메타데이터 시트를 제외한 새로운 지정된 보고서에 복사한다. 일부 실시형태에 있어서, 인터프리터는 사용자에게 전달될 결과적인 보고서의 기초로서 사용할 새로운 스프레드시트를 생성한다. 추가의 실시형태에 있어서, 시스템은 메타데이터 워크시트를 제외하고 목표 보고서에서 하나의 새로운 워크시트를 생성한다. 다른 실시형태에 있어서, 인터프리터는 모든 시스템 속성들을 각각의 소스 시트로부터의 템플릿으로부터 목표 보고서의 새로 형성된 워크시트로 복사한다.
(E) 인터프리터는 지정된 태그 및 외부 데이터세트의 크기와 관련된 행 및 열을 삽입한다. 일부 실시형태에 있어서, 인터프리터는 워크시트당 외부 데이터세트의 크기에 기초하여 필요한 행의 수를 재계산한다. 예를 들어서, 만일 템플릿이 3으로서 루프(loop)되는 규정된 수의 행을 갖고 있고 결과 집합이 10개의 결과를 내포하면, 인터프리터는 목표 워크시트에 30개의 행을 삽입할 것이다. 추가의 실시형태에 있어서, 시스템은 결정된 수의 행과 열을 목표 워크시트에 삽입한다. 시스템이 행과 열을 삽입함에 따라, 시스템은 최초의 것과 관련된 행 번호 및 열 번호를 식별하기 위한 지수(index)를 메모리에 생성한다.
(F) 인터프리터는 데이터 행 및 열이 삽입된 후에 각 셀을 내관한다 . 일부 실시형태에 있어서, 시스템은 그 다음에 셀 파서(parser)를 통해 각 셀을 스캔하여 셀이 공식을 갖는지 여부를 결정한다(180). 추가의 실시형태에 있어서, 만일 셀이 공식을 가지면, 본 발명은 하나 이상의 외부 데이터세트가 참조되었는지 여부를 알기 위해 셀 참조를 분해한다. 다른 추가의 실시형태에 있어서, 만일 하나 이상의 외부 데이터세트가 참조되었으면, 그 다음에 데이터는 외부 데이터세트(들)로부터 복사되고 공식 내의 셀 값을 대체한다. 다른 실시형태에 있어서, 만일 셀 참조가 외부 데이터세트를 참조하지 않았으면, 셀 행과 열은 현재 위치와 관련하여 재계산된다. 예를 들면, 참조 템플릿에 있어서, 셀 C5에서의 원래 공식은 잠재적으로 "=A5+B2"를 표시할 수 있지만, 삽입된 행의 수 때문에, 셀 C105에서의 공식은 "=B105+B102"의 새로운 공식을 필요로 한다.
(G) 정화( Cleanup ). 일부 실시형태에 있어서, 최종 단계는 지정된 보고서를 정화하는 것이다. 추가의 실시형태에 있어서, 절차 함수에 대한 참조를 위해 사용되었거나 외부 데이터세트에 대한 참조로서 사용된 목표 행에 남아 있는 임의의 마크업 태그는 제거된다. 이것은 각각의 로세트(rowset)의 위치를 표시 및 지정하기 위해 필요한 지수를 구축하면서 외부 데이터세트를 각각의 셀에 통합하고 지정된 반복을 통해 가동되는 깨끗한 스프레드시트를 남긴다.
외부 데이터세트
일부 실시형태에 있어서, 여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 하나 이상의 지정된 외부 데이터세트의 구조를 액세스, 판독 및 저장한다. 일부 실시형태에 있어서, 하나의 데이터세트의 구조가 액세스, 판독 및 저장된다. 다른 실시형태에 있어서, 복수의 데이터세트의 구조가 동시에, 실질적으로 동시에 또는 연속하여 액세스, 판독 및 저장된다. 각종 실시형태에 있어서, 그 증분을 포함하여 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 2000, 3000, 4000, 5000개 또는 그 이상의 데이터세트의 구조가 액세스, 판독 및 저장된다.
일부 실시형태에 있어서, 각 데이터세트의 구조는 스프레드시트 내에 저장된다. 다른 추가의 실시형태에 있어서, 각 데이터세트에 대한 참조는 스프레드시트 내의 셀 기반 공식을 통하여 생성된다. 많은 데이터세트는 여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법에 따른 사용에 적합하다. 비제한적인 예를 들자면, 적당한 데이터세트는 표형식 데이터세트 및 객체 지향형 데이터세트를 포함한다.
일부 실시형태에 있어서, 적당한 표형식 데이터세트는 오라클, 마이크로소프트 SQL 서버, 인포믹스, 사이베이스(Sybase) 및 MySQL과 같은 데이터베이스를 포함한다. 다른 적당한 데이터베이스는, 예를 들면, IBM DB2, 포스트그레스(Postgres) 및 디베이스(dBASE)를 포함한다. 일부 실시형태에 있어서, 적당한 표형식 데이터세트는 문자 경계형 플랫 파일(예를 들면, CSV, 탭 경계형 등), 고정 길이 플랫 파일(예를 들면, COBOL), 이진 플랫 파일 및 사적 ASCII 플랫 파일(예를 들면, DBF)와 같은 플랫 파일들을 포함한다.
일부 실시형태에 있어서, 적당한 객체 지향형 데이터세트는 비제한적인 예를 들자면 XML 및 JSON을 포함한다.
적당한 데이터세트는 임의의 크기를 갖는다. 예를 들면, 데이터세트의 크기는 잠재적으로 시스템이 데이터세트를 필터링 및 분류하기 전에 수억 개의 행이다. 각종 실시형태에 있어서, 데이터세트는, 비제한적인 예를 들자면, 그 증분을 포함해서, 1, 10, 1×102, 1×103, 1×104, 1×105, 1×106, 1×107, 1×108, 1×109, 1×1010, 1×1011, 1×1012, 1×1013, 1×1014, 1×1015, 1×1016, 1×1017, 1×1018, 1×1019, 1×1020, 또는 그 이상의 행이다.
적당한 데이터세트는 다양한 위치에 존재한다. 일부 실시형태에 있어서, 데이터세트는 로컬 데이터베이스 또는 플랫 파일이다. 추가의 실시형태에 있어서, 데이터세트는 여기에서 설명하는 소프트웨어와 동일한 메모리 또는 기억 장치에 존재한다. 추가의 실시형태에 있어서, 데이터세트는 여기에서 설명하는 소프트웨어와 동일한 네트워크(예를 들면, LAN 또는 WAN)에 존재한다. 일부 실시형태에 있어서, 데이터세트는 인터넷을 통해 접근할 수 있다. 추가의 실시형태에 있어서, 데이터세트는 제3자 데이터 소스(예를 들면, 클라우드 공급자)와 함께 존재한다.
교차 데이터베이스 쿼리 기능
일부 실시형태에 있어서, 여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 하나 이상의 지정된 외부 데이터세트의 구조를 액세스, 판독 및 저장한다. 소정의 추가 실시형태에 있어서, 하나 이상의 외부 데이터세트는 어떠한 데이터베이스 저장 메카니즘도 유지하고 있지 않은 "인메모리"(in memory) 데이터베이스에 유지된다. 일부 실시형태에 있어서, 시스템은 메타데이터 객체의 쿼리의 완전한 리스트를 유지하고, 여기에서 각 쿼리는 단일 테이블로서 기호적으로 표시된다. 추가의 실시형태에 있어서, 쿼리가 가동될 때, 모든 독립 결과 집합이 테이블로 변환된 후에, 시스템은 쿼리에 대한 최종 결과 집합을 반환하기 위해 추가의 처리에서 테이블과 층을 합체한다. 다른 추가의 실시형태에 있어서, 최종 결과 집합은 보고서를 생성하기 위해 사용된다.
비제한적인 예로서, 이러한 교차 데이터베이스 쿼리는 복수의 동시 쿼리를 개시하고, 각 쿼리는 단일 테이블로서 기호적으로 표시된다. 각종 실시형태에 있어서, 교차 데이터베이스 쿼리는 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20개 또는 그 이상의 동시 쿼리를 개시한다. 각종 실시형태에 있어서, 교차 데이터베이스 쿼리는 그 증분을 포함해서, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100개 또는 그 이상의 동시 쿼리를 개시한다. 각종의 추가 실시형태에 있어서, 교차 데이터베이스 쿼리는 그 증분을 포함해서, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000개 또는 그 이상의 동시 쿼리를 개시한다. 다른 각종의 추가 실시형태에 있어서, 교차 데이터베이스 쿼리는 그 증분을 포함해서, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000개 또는 그 이상의 동시 쿼리를 개시한다. 여기에서 제공되는 설명에 비추어, 이 기술에 숙련된 사람이라면 여기에서 설명하는 교차 데이터베이스 쿼리가 메타데이터 객체에서 임의의 적당한 수의 쿼리의 리스트를 유지하고 임의의 적당한 수의 동시 쿼리를 개시한다는 것을 이해할 것이다. 또 다른 예로서, 각각의 결과 집합은 테이블 객체로서 인메모리 데이터베이스 내에 존재하고, 테이블 객체는 그 다음에 최종 결과 집합을 모으기 위해 교차 데이터베이스 엔진을 통해 처리 및 가동된다.
일부 실시형태에 있어서, 교차 데이터베이스 쿼리는 교차 데이터베이스 쿼리 엔진에 의해 발행되는 상이한 쿼리의 리스트 또는 분류에 기초를 둔다. 추가의 실시형태에 있어서, 이 쿼리들은 메타데이터 시트에 저장된다. 다른 추가의 실시형태에 있어서, 각 서브쿼리에 대한 쿼리 집합체는 메타데이터 시트의 필드 라벨에 기초를 두고, 각각의 서브쿼리 또는 자식 쿼리는 데이터베이스에 대한 직접 쿼리이다.
일부 실시형태에 있어서, 교차 데이터베이스 쿼리는 앨리어스 테이블(aliased table)로서 참조 쿼리를 저장한다. 추가의 실시형태에 있어서, 합체 지점은 필드가 잠재적으로 끌어내질 수 있는 곳으로부터 대응하는 필드를 참조하기 위해 등호를 활용하는 스프레드시트 참조 공식을 이용하여 규정된다. 다른 추가의 실시형태에 있어서, 교차 데이터베이스 쿼리 엔진이 각각의 데이터 소스를 모두 검색 및 질의(query)한 후에, 엔진은 새로운 결과 집합을 구성한다. 일부 실시형태에 있어서, 새로운 결과 집합은 메타데이터 시트에서 규정된 필드 맵핑에 기초를 두고, 필드는 여기에서 설명하는 참조 공식 방법론을 통하여 메타데이터 시트를 참조한다.
셀 기반 공식
일부 실시형태에 있어서, 여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 각각의 외부 데이터세트를 참조하기 위해 셀 기반 공식을 활용한다. 마이크로소프트 엑셀, 오픈 오피스 캘크 및 구글 스프레드시트와 같은 스프레드시트 프로그램의 셀 기반 공식은 수학식을 이용하여 소정의 값을 계산한다. 여기에서 제공하는 설명에 비추어, 이 기술에 숙련된 사람이라면 이 프로그램들이 전형적으로 등호(=)를 가진 공식을 지정한다는 것을 이해할 것이다. 셀 기반 공식은 예를 들면 다른 셀에 대한 참조 또는 계산의 일부 유형을 나타내는 문자열(string)이다. 도 2를 참조한다. 예를 들면, 셀 참조 공식은 셀 "A1"에서 "=B2"를 구성할 수 있다. 이것은 단순히 참조 공식이다. 다른 예로서, 공식은 수학적 함수 "=1+2"를 또한 구성할 수 있다. 공식은 또한 수학적 함수 "=C12*13*C83"을 취급하기 위해 활용되는 셀의 혼합(mix) 및 정합(match)으로 구성될 수 있다. 각각의 스프레드시트는 이러한 공식의 결과적인 편집을 디스플레이하기 위해 셀 기반 인터프리터를 통합한다.
도 3을 참조하면, 예를 들면, A3의 하이라이트된 셀은 "=H2"를 내포한 공식을 갖는다. 이 비제한적인 실시형태에 있어서, 셀 H2는 외부 데이터세트를 참조하기 위한 대표 샘플 데이터로서 지정된다. 추가의 예로서, 이 참조된 셀은 목표 보고서에 삽입된 때 외부 데이터세트로부터의 데이터 맵핑 위치를 기호화한다.
절차 함수
일부 실시형태에 있어서, 여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 보고서의 내용 및 형식을 특정하기 위한 절차 함수를 포함한다.
일부 실시형태에 있어서, 절차 함수는 1회 실행된다. 다른 실시형태에 있어서, 절차 함수는 루프된다. 루프는 처리 또는 스테이트먼트를 특정 횟수 또는 특정의 이벤트가 생성할 때까지 반복하는 방법이다. 추가의 실시형태에 있어서, 루프는 행이 시작하고 종료하는 곳을 표시하는 식별자를 갖는다. 다른 추가의 실시형태에 있어서, 루프는 하나 이상의 루프가 다른 루프에 매립되도록 포개진다.
추가의 실시형태에 있어서, 절차 함수는 보고서 설계 템플릿 내의 태그를 통해 지정된다. 각종 실시형태에 있어서, 태그는 문자(letter), 숫자, 부호, 단어, 구(phrase), 또는 기호이다. 추가의 각종 실시형태에 있어서, 태그는 괄호(예를 들면, <,>, [,], {,}, (,), 등)와 같은 구별 문자 또는 일련의 문자에 의해 에워싸지거나 괄호로 묶어진다. 일부 실시형태에 있어서, 태그는 쌍으로 활용된다. 추가의 실시형태에 있어서, 한 쌍의 태그는 열기 태그와 닫기 태그를 포함한다. 다른 실시형태에 있어서, 태그는 단독으로 사용된다. 일부 실시형태에 있어서, 절차 함수는 하나의 태그에 의해 지정된다. 다른 실시형태에 있어서, 절차 함수는 2개 이상의 태그에 의해 지정된다.
하기의 것은 적당한 태그 및 관련 절차 함수의 비제한적인 예를 보인 것이다.
<i> 또는 <item> 어느 태그도 루프의 시작을 표시한다.
</i> 또는 </item> 어느 태그도 루프의 닫기를 표시한다.
<d> 또는 <detail> 어느 태그도 포대기형 루프의 시작을 표시한다.
</d> 또는 </detail> 어느 태그도 포대기형 루프의 끝을 표시한다.
</p> 또는 </pagebreak> 어느 태그도 페이지 분리(page break)를 표시한다.
일부 실시형태에 있어서, 여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 절차 함수를 해석하기 위한 소프트웨어 인터프리터를 포함한다. 추가의 실시형태에 있어서, 소프트웨어 인터프리터는 보고서 설계 템플릿의 태그를 판독함으로써 절차 함수를 해석한다.
일부 실시형태에 있어서, 인터프리터는 태그를 시스템에 읽어들이고 예를 들면 하기의 기능을 수행할 수 있다.
1. 데이터세트를 필터링 및 제한(narrow)하고 및/또는 결과적인 데이터세트를 분류하는 능력을 사용자에게 제공하는 파라미터 기반 형태를 연출한다; 및
2. 템플릿을 도입하고 템플릿을 외부 데이터세트와 합병한다. 추가의 실시형태에 있어서, 인터프리터는 그 다음에 새로운 지정된 스프레드시트에서 실행하기 위한 절차 함수를 이해하기 위해 모든 태그를 판독한다. 다른 추가의 실시형태에 있어서, 절차 함수가 적용되고 새로 지정된 스프레드시트가 셀, 행, 열, 워크시트 및 스프레드시트를 포함한 각각의 템플릿으로부터의 속성을 물려받는다.
보고서 설계 템플릿
여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 임의의 적당한 보고서 설계 템플릿을 활용한다. 일부 실시형태에 있어서, 적당한 템플릿은 외부 데이터세트의 속성을 내포하는 메타데이터 시트로서 단일 워크시트를 예약하는 명시적인 구조를 따른다. 추가의 실시형태에 있어서, 루프의 시작 및 끝을 규정하는 태그와 함께, 규정된 외부 데이터세트에 대한 공식을 통하여 참조하는 다른 템플릿 워크시트가 있다.
일부 실시형태에 있어서, 보고서 설계 템플릿은 보고서를 설계하기 위해 사용자 또는 개발자가 생성하는 초기 캔버스이다. 추가의 실시형태에 있어서, 템플릿은 하기의 것으로 구성된다.
1. 메타데이터 시트; 및
2. 템플릿 워크시트.
일부 실시형태에 있어서, 각 템플릿 워크시트는 외부 데이터세트에 대한 태그 및 기호 참조문을 갖는다. 예를 들면, 템플릿 워크시트는 사용자가 스프레드시트에 의해 지원되는 합산, 평균, 비율 또는 다른 복잡한 계산에 관한 보고서를 작성하기 위해 활용하는 로직을 내포한다.
일부 실시형태에 있어서, 각 템플릿은 결과적인 출력 보고서가 샘플 데이터와 함께 보여지는 양식을 표시한다. 도 3은 행 2와 4 및 열 G와 H에서 하이라이트된 시스템 예약 태그 행을 가진 예시적인 고객 보고서 템플릿을 보인 것이다. 이 실시형태에 있어서, 시스템 예약 행은 절차 함수(<item></item> 태그를 가진 행 2와 4) 또는 외부 데이터세트(열 G와 H)를 표시한다. 일부 실시형태에 있어서, 템플릿은 하기와 같은 4개의 주요 함수를 표시한다.
1. 보고서의 심미적 표시;
2. 루프형 로세트 범위;
3. 외부 데이터세트; 및
4. 공식의 형태로 셀에 매립된 로직.
일부 실시형태에 있어서, 인터프리터가 로드되고 가동될 때, 각 템플릿은 그 각각의 페이지, 행, 열 및 셀 속성을 유지하면서 지정된 출력 스프레드시트에 복사된다. 추가의 실시형태에 있어서, 인터프리터는 하나 이상의 외부 데이터세트를 판독하고, 이 외부 데이터세트를 최초의 템플릿 워크시트로부터 설계된 심미적 및 논리적 기능을 유지하면서 지정된 출력 스프레드시트 내의 각각의 목표 정해진 템플릿 워크시트에 맵핑한다.
도 4는 도 3의 예시적인 보고서 템플릿에 기초하여 작성된 예시적인 고객 보고서를 보인 것이다. 이 예에서, 외부 데이터 세트는 인터프리터를 통해 가동되었고, 절차 언어가 템플릿의 태그에 따라 연출되었다.
도 5는 사실상 더 복잡한 예시적인 보고서 템플릿을 보인 것이다. 이 예에서, 보고서 템플릿은 추가의 <detail></detail> 태그에 의해 표시되는 포대기형 루프를 포함한다.
도 6은 외부 데이터세트에 대한 참조문이 하이라이트된 도 5의 템플릿의 비제한적인 예를 보인 것이다.
도 7은 외부 데이터세트가 인터프리터에 폴링된 후에 도 5 및 도 6의 템플릿으로부터의 결과적인 보고서의 비제한적인 예를 보인 것이다.
도 8은 인터프리터가 결과적인 외부 데이터세트 및 반복을 위한 각각의 행 삽입에 기초하여 셀 값을 내관 및 재조정하는 것을 나타내는 도 7로부터의 새로 형성된 공식의 비제한적인 예를 보인 것이다.
메타데이터 시트
일부 실시형태에 있어서, 템플릿 스프레드시트는 하나 이상의 메타데이터 워크시트를 내포한다. 추가의 실시형태에 있어서, 각 메타데이터 워크시트는 하기의 것을 포함한다.
1. 하나 이상의 외부 데이터세트의 정의: 외부 데이터세트의 정의는 외부 관계형 DBMS로부터의 테이블 및 필드를 포함한다.
2. 검색 필터: 검색 필터는 줄이기(whittle)를 돕고 외부 데이터 소스로부터 반환되는 결과 집합을 사용자에게 더 가치있는 무언가로 제한한다.
3. 분류 필터: 분류 필터는 스트레이트 데이터 풀(pull)로부터의 데이터세트를 분류된 어레이 집합으로 배열하고 자리바꿈(reshuffle)한다.
도 9는 2개의 섹션을 내포한 예시적인 메타데이터 시트를 보인 것이다. 이 비제한적인 실시형태에 있어서, 하나의 섹션은 분류 옵션으로서 표시되어 있다. 분류 섹션은 행 27과 29 사이에 있다. 행 29는 사용자에게 이용가능한 보고서 양식에 의해 로드되는 가능한 분류 옵션을 나타낸다. 검색 섹션은 행 31-33을 통하여 사용자에게 이용가능으로 된다. 또한, 이 실시형태에서, 상기 섹션들은 각각 시스템 내로 읽어들여지고 사용자가 그들의 입력 파라미터를 규정하기 위해 HTML의 형태로 사용자에 대한 애플리케이션을 생성한다.
도 10은 이 특수한 실시형태에서의 결과적인 양식을 보인 것이다.
보고서 작성
여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 임의의 적당한 보고서를 생성한다. 일부 실시형태에 있어서, 보고서는 이진 형태로 인터프리터로부터 생성된 출력이다. 각종의 추가적 실시형태에 있어서, 상기 이진 형태는 비제한적인 예를 들자면 엑셀 95, 엑셀 97, 엑셀 2000, 엑셀 XP, 엑셀 2003, 엑셀 2007, 엑셀 2010, 오픈 오피스 캘크 1.0, 오픈 오피스 캘크 2.0, 및 오픈 오피스 캘크 3.0을 포함하는 스프레드시트 애플리케이션의 이진 포맷이다. 다른 실시형태에 있어서, 보고서의 이진 형태는 워드 프로세싱 애플리케이션의 이진 포맷이다. 일부 실시형태에 있어서, 보고서는 평문(plain text) 파일이다. 일부 실시형태에 있어서, 보고서는 PDF 파일이다.
사용 및 애플리케이션
여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 보고서를 작성하기 위한 각종 데이터 소스에 대한 임의 유형의 임시 쿼리(ad hoc query)에 적합하다. 일부 실시형태에 있어서, 적당한 쿼리는 보고서를 작성하기 위한 광범위한 다른 외부 데이터세트에 대조된다. 추가의 실시형태에 있어서, 적당한 쿼리는 교차 데이터베이스 쿼리이고, 여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 복수의 동시 쿼리를 개시하고, 각 쿼리는 단일 테이블로서 기호적으로 표시된다.
컴퓨터
일부 실시형태에 있어서, 여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 컴퓨터(예를 들면, 디지털 처리 장치) 또는 컴퓨터의 사용을 포함한다. 추가의 실시형태에 있어서, 컴퓨터는 장치의 기능들을 실행하는 하나 이상의 하드웨어 중앙 처리 장치(CPU)를 포함한다. 다른 추가의 실시형태에 있어서, 컴퓨터는 실행가능 명령어를 수행하도록 구성된 운영체제를 또한 포함한다. 일부 실시형태에 있어서, 컴퓨터는 선택적으로 컴퓨터 네트워크에 접속된다. 추가의 실시형태에 있어서, 컴퓨터는 월드 와이드 웹(World Wide Web)에 접근하기 위해 인터넷에 선택적으로 접속된다. 다른 추가의 실시형태에 있어서, 컴퓨터는 클라우드 컴퓨팅 하부구조에 선택적으로 접속된다. 다른 실시형태에 있어서, 컴퓨터는 인트라넷에 선택적으로 접속된다. 다른 실시형태에 있어서, 컴퓨터는 데이터 기억 장치에 선택적으로 접속된다.
여기에서의 설명에 따라서, 적당한 컴퓨터는, 비제한적인 예를 들자면, 서버 컴퓨터, 데스크톱 컴퓨터, 랩톱 컴퓨터, 노트북 컴퓨터, 서브노트북 컴퓨터, 넷북 컴퓨터, 넷패드 컴퓨터, 셋톱 컴퓨터, 핸드헬드 컴퓨터, 인터넷 기기, 모바일 스마트폰, 태블릿 컴퓨터 및 개인용 정보 단말기를 포함한다. 이 기술에 숙련된 사람이라면 많은 스마트폰이 여기에서 설명하는 시스템에서 사용하기에 적합하다는 것을 이해할 것이다. 이 기술에 숙련된 사람이라면 선택적인 컴퓨터 네트워크 접속성이 있는 선택 텔레비전, 비디오 플레이어 및 디지털 뮤직 플레이어가 여기에서 설명하는 시스템에서 사용하기에 적합하다는 것을 또한 이해할 것이다. 적당한 태블릿 컴퓨터는 이 기술 분야에서 공지된 소책자(booklet), 슬레이트 및 변환가능 구성을 가진 것들을 포함한다.
일부 실시형태에 있어서, 컴퓨터는 실행가능 명령어를 수행하도록 구성된 운용체제를 포함한다. 운영체제는, 예를 들면, 장치의 하드웨어를 관리하고 애플리케이션의 실행을 위한 서비스를 제공하는 프로그램 및 데이터를 포함한 소프트웨어이다. 이 기술에 숙련된 사람이라면 적당한 서버 운영체제는, 비제한적인 예를 들자면, FreeBSD, OpenBSD, NetBSD®, 리눅스, 애플® 맥 OS X 서버®, 오라클® 솔라리스®, 윈도즈 서버®, 및 노벨® 넷웨어®를 포함한다는 것을 이해할 것이다. 이 기술에 숙련된 사람이라면 적당한 퍼스널 컴퓨터 운영체제는, 비제한적인 예를 들자면, 마이크로소프트® 윈도즈®, 애플® 맥 OS X®, 유닉스®, 및 GNU/리눅스®와 같은 유닉스형 운영체제를 포함한다는 것을 이해할 것이다. 일부 실시형태에 있어서, 운영체제는 클라우드 컴퓨팅에 의해 제공된다. 이 기술에 숙련된 사람이라면 적당한 모바일 스마트폰 운영체제는, 비제한적인 예를 들자면, 노키아® 심비안® OS, 애플® iOS®, 리서치 인 모션® 블랙베리 OS®, 구글® 안드로이드®, 마이크로소프트® 윈도즈폰® OS, 마이크로소프트® 윈도즈 모바일® OS, 리눅스®, 및 팜® 웹OS®를 포함한다는 것을 또한 이해할 것이다.
일부 실시형태에 있어서, 컴퓨터는 스토리지 및/또는 메모리 장치를 포함한다. 스토리지 및/또는 메모리 장치는 데이터 또는 프로그램을 일시적으로 또는 영구적으로 저장하기 위해 사용되는 하나 이상의 물리적 장치이다. 일부 실시형태에 있어서, 장치는 휘발성 메모리이고, 저장된 정보를 유지하기 위해 전력을 필요로 한다. 일부 실시형태에 있어서, 장치는 비휘발성 메모리이고 디지털 처리 장치에 전력이 공급되지 않는 때에도 저장된 정보를 유지한다. 추가의 실시형태에 있어서, 비휘발성 메모리는 플래시 메모리를 포함한다. 일부 실시형태에 있어서, 비휘발성 메모리는 다이나믹 랜덤 액세스 메모리(DRAM)를 포함한다. 일부 실시형태에 있어서, 비휘발성 메모리는 강유전체 랜덤 액세스 메모리(FRAM)를 포함한다. 일부 실시형태에 있어서, 비휘발성 메모리는 상변화 랜덤 액세스 메모리(PRAM)를 포함한다. 다른 실시형태에 있어서, 장치는, 비제한적인 예를 들자면, CD-ROM, DVD, 플래시 메모리 장치, 자기 디스크 드라이브, 자기 테이프 드라이브, 광디스크 드라이브 및 클라우드 컴퓨팅 기반 스토리지를 포함한 스토리지 장치이다. 추가의 실시형태에 있어서, 스토리지 및/또는 메모리 장치는 여기에서 설명하는 것과 같은 장치들의 조합이다.
일부 실시형태에 있어서, 컴퓨터는 사용자에게 시각적 정보를 전송하는 디스플레이를 포함한다. 일부 실시형태에 있어서, 디스플레이는 음극선관(CRT)이다. 일부 실시형태에 있어서, 디스플레이는 액정 표시장치(LCD)이다. 추가의 실시형태에 있어서, 디스플레이는 박막 트랜지스터 액정 표시장치(TFT-LCD)이다. 일부 실시형태에 있어서, 디스플레이는 유기 발광 다이오드(OLED) 표시장치이다. 각종의 추가 실시형태에 있어서, OLED 표시장치는 수동 매트릭스 OLED(PMOLED) 또는 능동 매트릭스 OLED(AMOLED) 표시장치이다. 일부 실시형태에 있어서, 디스플레이는 플라즈마 디스플레이이다. 다른 실시형태에 있어서, 디스플레이는 비디오 프로젝터이다. 다른 추가의 실시형태에 있어서, 디스플레이는 여기에서 설명하는 것과 같은 장치들의 조합이다.
일부 실시형태에 있어서, 컴퓨터는 사용자로부터 정보를 수신하는 입력 장치를 포함한다. 일부 실시형태에 있어서, 입력 장치는 키보드이다. 일부 실시형태에 있어서, 입력 장치는 비제한적인 예를 들자면 마우스, 트랙볼, 트랙패드, 조이스틱, 게임 컨트롤러 또는 스타일러스를 포함한 포인팅 장치이다. 일부 실시형태에 있어서, 입력 장치는 터치 스크린 또는 멀티터치 스크린이다. 다른 실시형태에 있어서, 입력 장치는 음성 또는 다른 음향 입력을 포착하는 마이크로폰이다. 다른 실시형태에 있어서, 입력 장치는 모션 또는 시각적 입력을 포착하는 비디오 카메라이다. 다른 추가의 실시형태에 있어서, 입력 장치는 여기에서 설명하는 것과 같은 장치들의 조합이다.
비일시적 컴퓨터 판독가능 매체
일부 실시형태에 있어서, 여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 디지털 처리 장치의 운영체제에 의해 실행가능한 명령어를 포함한 프로그램으로 인코드된 하나 이상의 비일시적 컴퓨터 판독가능 매체를 포함한다. 추가의 실시형태에 있어서, 컴퓨터 판독가능 매체는 디지털 처리 장치의 유형체 컴포넌트(tangible component)이다. 다른 추가의 실시형태에 있어서, 컴퓨터 판독가능 매체는 디지털 처리 장치로부터 선택적으로 제거할 수 있다. 일부 실시형태에 있어서, 컴퓨터 판독가능 매체는, 비제한적인 예를 들자면, CD-ROM, DVD, 플래시 메모리 장치, 고체 메모리, 자기 디스크 드라이브, 자기 테이프 드라이브, 광디스크 드라이브, 클라우드 컴퓨팅 시스템 및 서비스 등을 포함한다. 각종 실시형태에 있어서, 인코딩은 영속적, 실질적으로 영속적, 반영속적 또는 비일시적이다.
컴퓨터 프로그램
일부 실시형태에 있어서, 여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은 하나 이상의 컴퓨터 프로그램을 포함한다. 컴퓨터 프로그램은 특정의 태스크를 수행하도록 기록된, 디지털 처리 장치의 CPU에서 실행가능한 명령어 시퀀스를 포함한다. 여기에서 제공된 설명에 비추어, 이 기술에 숙련된 사람이라면 컴퓨터 프로그램이 각종 언어의 각종 버전으로 기록될 수 있다는 것을 이해할 것이다. 적당한 프로그래밍 언어는, 비제한적인 예를 들자면, 자바, VB, VB.NET, C#, C, C++, CFML, Python, 펄, 루비, PHP, 오브젝티브 C, 자바스크립트, 델피, 리스프, 파스칼, 아다, 어셈블리, ABAP, 및 코코아, 또는 이들의 조합을 포함한다. 일부 실시형태에 있어서, 컴퓨터 프로그램은 소프트웨어 프레임워크에서 생성된다. 적당한 소프트웨어 프레임워크는, 비제한적인 예를 들자면, 스프링, 스트러츠, 디장고(Django), 루비 온 레일즈(Ruby on Rails), ASP.NET, 스트러츠, 리프트, 테입스트리, 심(Seam), 위켓, 심포니, 이(Yii), 드루팔, 줌라, 그레일즈, 제이보스(JBoss), 세일(Shale), 에스링(Sling), 이크립스 RAP, 오라클 ADF, OpenXava, 리치페이스, 구글 웹 툴키트, 아이스페이스, 웹오브젝트, 터보기어스, 좁(Zope), 콜드퓨전, BFC, 닷넷누크(DotNetNuke), 모노레일, 플렉스, 및 AJAX, 또는 이들의 조합을 포함한다.
일부 실시형태에 있어서, 컴퓨터 프로그램은 하나의 명령어 시퀀스를 포함한다. 일부 실시형태에 있어서, 컴퓨터 프로그램은 복수의 명령어 시퀀스를 포함한다. 각종 실시형태에 있어서, 컴퓨터 프로그램은 파일, 코드 섹션, 프로그래밍 오브젝트, 프로그래밍 구조, 또는 이들의 조합을 포함한다. 추가의 각종 실시형태에 있어서, 컴퓨터 프로그램은 복수의 파일, 복수의 코드 섹션, 복수의 프로그래밍 오브젝트, 복수의 프로그래밍 구조, 또는 이들의 조합을 포함한다. 일부 실시형태에 있어서, 컴퓨터 프로그램은 하나의 위치로부터 전달된다. 다른 실시형태에 있어서, 컴퓨터 프로그램은 복수의 위치로부터 전달된다. 또 다른 실시형태에 있어서, 컴퓨터 프로그램은 클라우드 컴퓨팅 플랫폼 또는 서비스로부터 전달된다. 각종 실시형태에 있어서, 컴퓨터 프로그램은 하나 이상의 소프트웨어 모듈을 포함한다. 각종 실시형태에 있어서, 컴퓨터 프로그램은 부분적으로 또는 전체적으로 하나 이상의 웹 애플리케이션, 하나 이상의 모바일 애플리케이션, 하나 이상의 독립형 애플리케이션, 하나 이상의 웹 브라우저 플러그-인, 확장판, 애드인, 또는 애드온, 또는 이들의 조합을 포함한다.
소프트웨어 모듈
여기에서 설명하는 시스템, 플랫폼, 환경, 애플리케이션 및 방법은, 각종 실시형태에 있어서, 소프트웨어, 서버, 및 데이터베이스 모듈을 포함한다. 여기에서 제공된 설명에 비추어, 소프트웨어 모듈은 업계에 공지된 머신, 소프트웨어 및 언어를 이용하여 업계에 공지된 기술에 의해 생성된다. 여기에서 설명하는 소프트웨어 모듈은 다수의 방법으로 구현된다. 각종 실시형태에 있어서, 소프트웨어 모듈은 파일, 코드 섹션, 프로그래밍 오브젝트, 프로그래밍 구조, 또는 이들의 조합을 포함한다. 추가의 각종 실시형태에 있어서, 소프트웨어 모듈은 복수의 파일, 복수의 코드 섹션, 복수의 프로그래밍 오브젝트, 복수의 프로그래밍 구조, 또는 이들의 조합을 포함한다. 각종 실시형태에 있어서, 하나 이상의 소프트웨어 모듈은, 비제한적인 예를 들자면, 웹 애플리케이션, 모바일 애플리케이션 및 독립형 애플리케이션을 포함한다. 일부 실시형태에 있어서, 소프트웨어 모듈은 하나의 컴퓨터 프로그램 또는 애플리케이션 내에 있다. 다른 실시형태에 있어서, 소프트웨어 모듈은 2개 이상의 컴퓨터 프로그램 또는 애플리케이션 내에 있다. 일부 실시형태에 있어서, 소프트웨어 모듈은 하나의 머신에서 호스트된다. 다른 실시형태에 있어서, 소프트웨어 모듈은 2개 이상의 머신에서 호스트된다. 추가의 실시형태에 있어서, 소프트웨어 모듈은 클라우드 컴퓨팅 플랫폼에서 호스트된다. 일부 실시형태에 있어서, 소프트웨어 모듈은 하나의 위치에 있는 하나 이상의 머신에서 호스트된다. 다른 실시형태에 있어서, 소프트웨어 모듈은 2개 이상의 위치에 있는 하나 이상의 머신에서 호스트된다.
실시예
하기의 예시적인 실시예는 여기에서 설명한 소프트웨어 애플리케이션, 시스템 및 방법의 실시형태를 나타내지만, 어떤 식으로든 제한하는 것으로 의도되지 않는다.
실시예 1 - 세이브된 보고서의 생성
회사의 CEO는 그의 영업 팀장에게 그들의 최상위의 2명의 고객에 대한 보고서를, 고객의 신용한도, 작년 매출, 회수가능한 신용거래 비율을 포함하고 보고서의 하부에 총 신용한도, 총 작년 매출, 매출에 대한 평균 신용거래 비율 등의 총계를 기재하여 단일 보고서로 작성하도록 요청한다. 영업 팀장은 하기의 사항을 행한다.
I. 사전제작된 템플릿을 끌어온다;
II. 보고서의 열 헤드부를 식별한다(도 11 참조);
III. 행의 시작부와 종단부를 태그한다(도 11 참조);
IV. 신용 한도, 작년 매출에 대하여 하부에서 합산을 위한 공식을 생성하고 매출에 대한 평균 신용거래 비율을 가산한다;
V. 출력을 애플리케이션 폴더에 세이브한다; 및
VI. 검색막대에 "General Motors Company, Pepperdine Demo"를 타이프해 넣고, 쿼리를 세이브하며, 세이브된 쿼리를 가진 지정된 페이지에 대한 링크를 CEO에게 보낸다.
CEO는 이 북마크된 링크를 열고, 개발자, 관리자 또는 스탭의 개입 없이 자신이 편리한 때 보고서를 동작시킨다. 도 12를 참조한다. 이 단순한 처리는 개발자가 새로운 절차 언어를 이해할 것을 요구하지 않고 새로운 보고서를 개발하는데 약 5-10분이 걸린다.
실시예 2 - 세이브된 보고서를 이용하여 사양 시트 생성하기
제품 개발 설계자는 최종 상품을 생산할 모든 각각의 컴포넌트에 대한 무게, 비용 및 분량을 포함하는 재료의 리스트를 가진 사양 시트(specification sheet)를 원한다. 설계자는 시스템에 대한 URL을 로드하고 제품의 재고 관리 단위(stock-keeping unit, SKU) 번호를 검색 형태로 타이프하며 그 결과 보고서를 검색한다. 보고서는 제조자 사양에 따라서 포맷된다. 설계자는 그 데이터가 모두 정확한 것인지 체크하고 검증한다. 스프레드시트는 추가의 제품 개발을 위하여 제조자에게 이메일로 보내진다.
실시예 3 - 1일 수출 보고서
화물 수송 회사는 각 국가별로 나누어서 하루 동안 그들이 수출한 모든 컨테이너의 계산을 원한다. 회사의 대표는 그 특정 날짜의 시작일 및 종료일을 가진 보고서를 작동한다. 이 시스템은 그 동일한 주문으로 분류된 모든 SKU, 컨테이너, 선박 및 국가를 목록으로 만든다.
실시예 4 - 판매 보고서
회사의 판매 관리자는 판매 부서에 지불할 모든 수수료의 월말 보고서를 편집할 필요가 있다. 판매 관리자는 판매원에 의해 분류된 보고서의 시작일로서 12/1/2011을 및 종료일로서 12/31/2011을 입력한다. 이 보고서는 모두 달러 총액 및 수수료율을 표 형태로 갖고 각 라인 아이템은 양(quantity) *가격* 수수료율의 소계를 포함한다. 스프레드시트의 하부에는 그 달에 선적된 총 단가의 합계, 그 달에 판매된 모든 상품의 평균 소매가격, 및 그달에 지불될 총 수수료율을 포함한 다수의 계산치가 기재된다.
실시예 5 - 교차 데이터베이스 쿼리
교차 데이터베이스 쿼리는 임의의 데이터베이스 스토리지 메카니즘을 유지하지 않는 인메모리 데이터베이스를 활용한다. 시스템은 메타데이터 객체에 완전한 쿼리 리스트를 유지한다. 각 쿼리는 단일 테이블로서 기호적으로 표시된다. 모든 독립적인 결과 집합들이 테이블로 변환된 후에, XDB 데이터베이스는 최종적인 결과 집합을 반환하기 위해 추가의 처리에서 테이블 및 층들을 합체한다.
기본적 개관
특수한 실시형태는 다음과 같은 2개의 쿼리를 수반한다.
쿼리 1: SELECT customer_id, customer_name FROM customer
테이블 별명: xdb1
결과적인 결과 집합은 하기와 같은 데이터세트를 산출할 것이다.
고객 ID(customer_id) 고객명(customer_name)
1 Coke
2 Pepsi
3 KFC
4 Nestle
5 Dell
6 HP
쿼리 2: SELECT order_id, customer_id, order_date FROM orders
테이블 별명: xdb2
결과적인 결과 집합은 하기와 같은 데이터세트를 산출할 것이다.
주문 ID(order_id) 고객 ID(customer_id) 주문일자(order_date)
1 1 12/12/2011
2 1 12/13/2011
3 2 12/14/2011
4 2 12/15/2011
5 3 12/16/2011
6 4 12/17/2011
각 쿼리는 테이블 별명이 주어진다. 이 예에서, 쿼리 1은 xdb1으로서 별명되고 쿼리 2는 xdb2로서 별명된다.
교차 데이터베이스 쿼리는 다음과 같다.
SELECT
xdb1.customer_name,
xdb2.order_date
FROM
xdb1
INNER JOIN xdb2 ON xdb1.customer_id = xdb2.customer_id
교차 데이터베이스 쿼리는 2개의 동시 쿼리를 개시한다. 각각의 결과 집합은 테이블 객체로서 인메모리 데이터베이스 내에 존재할 것이다. 그 다음에, 테이블 객체가 처리되고 최종의 결과 집합을 모으기 위해 XDB 데이터베이스 엔진을 통해 가동된다.
주문 ID(order_id) 고객명(customer_name) 주문일자(order_date)
1 Coke 12/12/2011
2 Coke 12/13/2011
3 Pepsi 12/14/2011
4 Pepsi 12/15/2011
5 KFC 12/16/2011
6 Nestle 12/17/2011
이 예의 작업흐름(workflow)은 다음과 같다.
먼저, 교차 데이터베이스 엔진이 쿼리를 수신한다.
SELECT
xdb1.customer_name,
xdb2.order_date
FROM
xdb1
INNER JOIN xdb2 ON xdb1.customer_id = xdb2.customer_id
둘째로, 교차 데이터베이스 엔진은 상이한 원격 데이터베이스에 대한 다음 쿼리를 발행한다.
쿼리 1: SELECT customer_id, customer_name FROM customer
쿼리 2: SELECT order_id, customer_id, order_date FROM orders
셋째로, 교차 데이터베이스 엔진은 쿼리 1 및 쿼리 2의 각각으로부터 동시에 결과 집합을 수신하고 XDB 클라이언트에게 역으로 보내기 위한 새로운 결과 집합을 수집한다. 시스템은 선택된 열의 수를 검토하고, 2개의 결과 집합이 내부 합체 스테이트먼트에 기초하여 합체된 후에, 행의 수에 따라 2개의 열 결과 집합(xdb1.customer_name, xdb2.order_date)을 구성한다.
메타데이터 시트에 관한 교차 데이터베이스 쿼리
교차 데이터베이스 쿼리는 교차 데이터베이스 쿼리 엔진에 의해 발행되는 상이한 쿼리의 리스트 또는 분류에 기초를 둔다. 이 쿼리들은 실제로 여기에서 설명하는 메타데이터 시트 내에 저장된다.
도 13을 참조하면, 특정 실시형태에 있어서, 메타데이터 시트는 시스템 내에서 "bibomd"의 접두사가 붙여진다.
각 서브쿼리에 대한 쿼리 집합체는 메타데이터 시트의 필드 라벨에 기초를 둔다. 각 서브쿼리 또는 자식 쿼리는 데이터베이스에 대한 직접 쿼리이다.
도 14 내지 도 16을 참조하면, 복수의 데이터 소스로부터 오는 복수의 메타데이터 시트가 도시되어 있다. 예를 들면, 도 14(오라클), 도 15(세일즈포스) 및 도 16(몽고)을 참조한다.
별명 필드 객체에 관한 교차 데이터베이스 쿼리
도 17을 참조하면, 여기에서 설명하는 교차 데이터베이스 쿼리는 열 D에 있는 것과 같은 앨리어스 테이블로서 참조 쿼리를 저장한다. 합체 지점은 필드가 잠재적으로 끌어내어지는 대응하는 필드를 참조하기 위해 등호를 이용하는 마이크로소프트 엑셀 참조 공식을 이용하여 규정된다. 이 특수한 예에 있어서, 테이블 별명은 위에서 선언된 메타데이터 시트명과 동일하다. 이들은 말 그대로 이름이 일치한다. 하이라이트된 셀(F26)은 셀 E84에 대한 "bibomd_sforce" 표시 내의 다른 워크시트에 대한 공식을 내포한다. 이 참조/맵핑은 열 D에서 별명된 결과적인 데이터세트를 테이블로서 "합체"하기 위해 사용된다.
교차 데이터베이스 쿼리 필드 선택 및 구성
XDB가 각각의 데이터 소스를 모두 검색 및 질의한 후에, XDB 엔진은 아주 새로운 결과 집합을 구성할 필요가 있다. 새로운 결과 집합은 메타데이터 시트에서 규정된 필드 맵핑에 기초를 둔다. 필드는 참조 공식 방법론을 통하여 메타데이터 시트를 참조한다.
도 18을 참조하면, 만일 계좌번호를 세일즈포스 결과 집합으로부터의 필드로서 맵핑해야 하면, 시스템은 셀 E90에 목표 정해진 "bibomd_sforce" 워크시트에 대하여 참조 공식을 이용할 것이다. 맵핑 처리는 상이한 데이터 소스로부터의 집성된 결과 집합을 함께 다룰 것이다.
지금까지 본 발명의 양호한 실시형태를 도시 및 설명하였지만, 이 기술에 숙련된 사람에게는 그러한 실시형태가 단지 예로서만 제공된다는 것이 명백할 것이다. 이 기술에 숙련된 사람이라면 본 발명으로부터 벗어나지 않고 많은 수정, 변경 및 치환이 가능할 것이다. 여기에서 설명한 본 발명의 실시형태에 대한 각종 대안 예들이 본 발명을 실시할 때 사용될 수 있다는 점을 이해하여야 한다.

Claims (33)

  1. 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템으로서,
    a. 프로세서, 실행가능 명령어를 수행하도록 구성된 운영체제 및 메모리 장치를 포함하는 네트워크화된 컴퓨터와,
    b. 보고서 작성용의 스프레드시트 기반 프로그래밍 언어를 실행하는 환경을 만들기 위해, 디지털 처리 장치에 의해 실행가능한 명령어를 포함하는 컴퓨터 프로그램을 구비하고,
    상기 환경은 스프레드시트에 매립되지 않으며 또한 관련되지 않은 독립된 구문 해석 툴 및 인터프리터로서, 상기 환경은,
    i. 하나 이상의 템플릿 워크시트 혹은 하나 이상의 메타데이터 워크시트를 포함하는 복수의 템플릿·스프레드시트로서, 상기 메타데이터 워크시트는 하나 이상의 외부의 데이터시트의 정의, 검색 필터, 분류 필터로 이루어지며, 보고서 설계용 템플릿으로서 이용되는 복수의 템플릿·스프레드시트;
    ii. 절차 함수를 해석하도록 구성되는 제1 소프트웨어 모듈로서, 절차 함수가 보고서의 콘텐츠 및 포맷을 규정하며, 복수의 템플릿·스프레드시트 중 하나 이상의 템플릿·스프레드시트 내에서 정의된 태그에 의해 지정되고, 데이터세트를 필터로 필터링하는 능력과 결과로서 생기는 데이터세트를 분류할 능력 중 적어도 하나를 사용자에게 부여하는 파라미터 기반 형식을 렌더링하고, 템플릿을 임포트하고, 상기 템플릿을 외부 데이터세트와 합병하여, 사용자에게 배치하기 위해 보고서의 베이스로서 새로운 스프레드시트를 부여하는 제1 소프트웨어 모듈;
    iii. 제2 소프트웨어 모듈로서, 새롭게 만들어진 스프레드시트 내의 1 이상의 지정된 외부 데이터 기반 구조에 액세스하여, 읽어들이기 및 저장할 수 있도록 구성되고, 상기 지정된 각각의 외부 데이터 기반 참조는 셀 기반 식을 통해 생성되는 제2 소프트웨어 모듈; 및
    iv. 보고서를 작성하도록 구성된 제3 소프트웨어 모듈로서, 상기 제3 소프트웨어 모듈에서는, 상기 보고서가 스프레드시트 애플리케이션, 워드 프로세싱 애플리케이션, 플레인 텍스트 파일 혹은 PDF 파일, 또는 이들의 조합의 이진 형태 내의 절차 함수로부터의 출력이 생기도록 구성되어 있는 제3 소프트웨어 모듈,
    을 포함하는 것을 특징으로 하는 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  2. 제1항에 있어서, 1 이상의 지정된 외부의 데이터세트는 데이터베이스인 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  3. 제2항에 있어서, 1 이상의 데이터베이스는 관계형 데이터베이스, 비관계형 데이터베이스, 객체 지향형 데이터베이스, 객체 데이터베이스, 엔티티 관계 모델 데이터베이스, 연합형(associative) 데이터베이스, 또는, XML 데이터베이스를 포함하는 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  4. 제1항에 있어서, 1 이상의 지정된 외부의 데이터세트는 표형식 데이터세트인 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  5. 제4항에 있어서, 1 이상의 표형식 데이터세트는 표형식 구조의 데이터세트가 매립된 본래의 데이터세트를 구비한, 콤마 분리형 텍스트 파일, 탭 경계형 텍스트 파일, 또는 이진 파일인 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  6. 제1항에 있어서, 제2 소프트웨어 모듈은 기호 참조문으로서 상기 구조를 저장하는 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  7. 제1항에 있어서, 제1 소프트웨어 모듈은 쿼리를 실행하는 상기 절차 함수를 해석하도록 구성되어 있는 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  8. 제7항에 있어서, 상기 쿼리는 검색 및 분류의 파라미터 중 하나 또는 양자를 선택적으로 포함하는 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  9. 제7항에 있어서, 차후에 실행하기 위한 쿼리를 저장하는 소프트웨어 모듈을 더 포함하는, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  10. 제9항에 있어서, 각각의 저장된 쿼리는 활성화된 때에 쿼리를 실행하는 URL에 의해 표시되는 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  11. 제1항에 있어서, 상기 보고서는 스프레드시트로서 설계된 템플릿으로 구성되는 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  12. 제11항에 있어서, 스프레드시트는 마이크로소프트 엑셀의 임의의 버전, 오픈오피스 캘크(OpenOffice Calc)의 임의의 버전 및 파생물, 또는, 로터스(Lotus) 1-2-3의 임의의 버전 및 파생물인 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  13. 제1항에 있어서, 상기 제3 소프트웨어 모듈은 또한, 보고서에 보고서 설계용 템플릿의 특성을 적용하도록 구성된 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  14. 제1항에 있어서, 상기 제1 소프트웨어 모듈은 1 이상의 스프레드시트, XML 문서, HTML 문서, 보고서 작성 소프트웨어 문서, 워드프로세서 문서, 또는 프레젠테이션 소프트웨어 문서의 형태의 이진 데이터로서 보고서를 작성하도록 구성된 것인, 보고서의 작성에 알맞은 스프레드시트 기반 프로그래밍 언어를 실행시키기 위한 컴퓨터 기반 시스템.
  15. 보고서 작성 환경을 만들기 위해 컴퓨터에 의해 실행가능한 명령어를 포함하는 컴퓨터 프로그램으로 인코드된, 비일시적인 컴퓨터 판독가능 매체로서,
    a. 복수의 템플릿·스프레드시트를 작성하기 위한 소프트웨어 모듈로서, 복수의 템플릿·스프레드시트는 1 이상의 템플릿 워크시트 및 1 이상의 메타데이터 워크시트를 포함하며, 메타데이터 워크시트는 1 이상의 외부의 데이터시트의 정의, 검색 필터, 분류 필터로 이루어지고, 복수의 템플릿 시트는 보고서 설계용 템플릿을 이용하는 소프트웨어 모듈;
    b. 절차 함수를 해석하기 위한 소프트웨어 모듈로서, 절차 함수가 보고서의 콘텐츠 및 포맷으로 특정되고, 복수의 템플릿·스프레드시트 중 하나 이상의 템플릿·스프레드시트 내에서 정의된 태그에 의해 지정되고, 데이터세트를 필터로 필터링하는 능력과 결과로서 생기는 데이터세트를 분류할 능력 중 적어도 하나를 사용자에게 부여하는 파라미터 기반 형식을 렌더링하고, 및 템플릿을 임포트하고, 상기 템플릿을 외부 데이터세트와 합병하여, 사용자에게 배치하기 위해 보고서의 베이스로서 새로운 스프레드시트를 부여하는 소프트웨어 모듈;
    c. 새롭게 만들어진 스프레드시트 내의 1 이상의 지정된 외부 데이터 기반 구조에 액세스하여, 읽어들이기 및 저장하기 위한 소프트웨어 모듈로서, 상기 지정된 각각의 외부 데이터 기반 참조는 셀 기반 식을 통해 생성되는 소프트웨어 모듈; 및
    d. 보고서를 생성시키기 위한 소프트웨어 모듈로서, 상기 보고서가 스프레드시트 애플리케이션, 워드 프로세싱 애플리케이션, 플레인 텍스트 파일 혹은 PDF 파일, 또는 이들의 조합의 이진 형태 내의 절차 함수로부터의 출력이 생기도록 구성되어 있는 소프트웨어 모듈,
    을 포함하는 것을 특징으로 하는 비일시적인 컴퓨터 판독가능 매체.
  16. 제15항에 있어서, 차후에 실행하기 위한 쿼리를 저장하는 소프트웨어 모듈을 더 포함하는, 비일시적인 컴퓨터 판독가능 매체.
  17. 제16항에 있어서, 각각의 저장된 쿼리는 활성화된 때에 쿼리를 실행하는 URL에 의해 표시되는 것인, 비일시적인 컴퓨터 판독가능 매체.
  18. 컴퓨터에 의해 실행되는 보고서를 작성하는 방법으로서,
    a. 복수의 템플릿·스프레드시트를 작성하는 공정으로서, 복수의 템플릿·스프레드시트는 1 이상의 템플릿 워크시트 및 1 이상의 메타데이터 워크시트를 포함하고, 메타데이터 워크시트는 1 이상의 외부 데이터시트의 정의, 검색 필터 및 분류 필터로 이루어지며, 복수의 템플릿 시트는 보고서 설계용 템플릿으로서 이용되는 공정;
    b. 절차 함수를 해석하는 공정으로서, 절차 함수가 보고서의 콘텐츠 및 포맷으로 특정되고, 복수의 템플릿·스프레드시트 중 하나 이상의 템플릿·스프레드시트 내에서 정의된 태그에 의해 지정되고, 데이터세트를 필터로 필터링하는 능력과 보고서의 데이터세트를 분류할 능력 중 적어도 하나를 사용자에게 부여하는 파라미터 기반 형식을 렌더링하고, 템플릿을 임포트하고, 상기 템플릿을 외부 데이터세트와 합병하여, 사용자에게 배치하기 위해 보고서의 베이스로서 새로운 스프레드시트를 부여하는 공정,
    c. 새롭게 만들어진 스프레드시트 내의 1 이상의 지정된 외부 데이터 기반 구조에 액세스하여, 읽어들이기 및 저장하는 공정으로서, 상기 지정된 각각의 외부 데이터 기반 참조는 셀 기반 식을 통해 생성되는 공정; 및
    d. 보고서를 생성시키는 공정으로서, 상기 보고서가 스프레드시트 애플리케이션, 워드 프로세싱 애플리케이션, 플레인 텍스트 파일 혹은 PDF 파일, 또는 이들의 조합의 이진 형태 내의 절차 함수로부터의 출력이 생기도록 구성되어 있는 공정,
    을 포함하는 것을 특징으로 하는, 컴퓨터에 의해 실행되는 보고서를 작성하는 방법.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
KR1020147021271A 2011-12-29 2012-12-27 보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어 KR101977972B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161581515P 2011-12-29 2011-12-29
US61/581,515 2011-12-29
PCT/US2012/071788 WO2013101914A1 (en) 2011-12-29 2012-12-27 Spreadsheet-based programming language adapted for report generation

Publications (2)

Publication Number Publication Date
KR20140126311A KR20140126311A (ko) 2014-10-30
KR101977972B1 true KR101977972B1 (ko) 2019-05-14

Family

ID=48698608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147021271A KR101977972B1 (ko) 2011-12-29 2012-12-27 보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어

Country Status (9)

Country Link
US (1) US10824802B2 (ko)
EP (1) EP2798487A4 (ko)
JP (1) JP6134737B2 (ko)
KR (1) KR101977972B1 (ko)
CN (1) CN104285209B (ko)
AU (1) AU2012362383B2 (ko)
CA (1) CA2862387C (ko)
HK (1) HK1205303A1 (ko)
WO (1) WO2013101914A1 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483456B2 (en) 2011-09-19 2016-11-01 Jeffrey Dean Honsowetz Grid data management
US9292571B1 (en) * 2013-01-18 2016-03-22 Microstrategy Incorporated Joining database tables
US9244971B1 (en) 2013-03-07 2016-01-26 Amazon Technologies, Inc. Data retrieval from heterogeneous storage systems
US9189515B1 (en) * 2013-03-08 2015-11-17 Amazon Technologies, Inc. Data retrieval from heterogeneous storage systems
US9164977B2 (en) * 2013-06-24 2015-10-20 International Business Machines Corporation Error correction in tables using discovered functional dependencies
US9600461B2 (en) * 2013-07-01 2017-03-21 International Business Machines Corporation Discovering relationships in tabular data
USD748664S1 (en) * 2013-07-19 2016-02-02 Robert Bosch Gmbh Display screen with a graphical user interface
US9830314B2 (en) 2013-11-18 2017-11-28 International Business Machines Corporation Error correction in tables using a question and answer system
US10013396B2 (en) * 2015-01-29 2018-07-03 Dropbox, Inc. Modifying native documents with formulas in a preview
US10095740B2 (en) 2015-08-25 2018-10-09 International Business Machines Corporation Selective fact generation from table data in a cognitive system
JP1553723S (ko) * 2015-10-30 2016-07-11
JP1553722S (ko) * 2015-10-30 2016-07-11
CN105488019B (zh) * 2015-11-30 2018-05-29 云南电网有限责任公司电力科学研究院 一种电能质量监测装置检测报告自动生成方法
CN106021303B (zh) * 2016-05-05 2019-12-17 北京轻元科技有限公司 一种用于持续集成报告发布的系统和方法
KR102035277B1 (ko) * 2016-10-28 2019-10-22 단국대학교 천안캠퍼스 산학협력단 화장품 노출인자 분석 장치 및 방법
CN106446598A (zh) * 2016-11-15 2017-02-22 上海派森诺生物科技股份有限公司 项目报告自动生成方法
US10540153B2 (en) 2016-12-03 2020-01-21 Thomas STACHURA Spreadsheet-based software application development
US11726753B2 (en) 2016-12-03 2023-08-15 Thomas STACHURA Spreadsheet-based software application development
US10216494B2 (en) * 2016-12-03 2019-02-26 Thomas STACHURA Spreadsheet-based software application development
JP1606618S (ko) * 2017-09-21 2018-06-11
CN107845033A (zh) * 2017-11-08 2018-03-27 上海壹账通金融科技有限公司 风控报告生成方法、装置、设备及计算机可读存储介质
US10705805B1 (en) 2017-12-12 2020-07-07 Amazon Technologies, Inc. Application authoring using web-of-sheets data model
CN110083339A (zh) * 2018-01-26 2019-08-02 拜椰特(上海)软件技术有限公司 一种新型计算机编程语言
US11216706B2 (en) * 2018-03-15 2022-01-04 Datorama Technologies Ltd. System and method for visually presenting interesting plots of tabular data
CN108647196B (zh) * 2018-04-16 2022-10-25 北京航空航天大学 数字飞行器仿真报告中表格的人工智能生成方法和装置
US11586603B1 (en) 2018-05-23 2023-02-21 Amazon Technologies, Inc. Index sheets for robust spreadsheet-based applications
CN109241514A (zh) * 2018-09-10 2019-01-18 深圳市泰洲科技有限公司 数据自动导入方法、装置、计算机设备及存储介质
US11429558B2 (en) 2018-10-11 2022-08-30 Dealvector, Inc. Mapping tests of spreadsheets in server-browser environments
CN110427599A (zh) * 2019-06-06 2019-11-08 北京辰森世纪科技股份有限公司 报表小计的统计方法及装置、存储介质、电子装置
CN111126019B (zh) * 2019-11-28 2024-01-05 泰康保险集团股份有限公司 基于模式定制的报表生成方法、装置和电子设备
CN111178027B (zh) * 2019-12-09 2023-03-31 北京尊冠科技有限公司 基于在线创建模板和在线指定数据的报告生成系统和方法
CN111144082B (zh) * 2019-12-23 2023-05-12 中国建设银行股份有限公司 多表格迭代计算方法、装置、电子设备及存储介质
CN111158650B (zh) * 2019-12-25 2023-06-27 中国建设银行股份有限公司 报表模板、报表的生成方法、装置
CN111241091B (zh) * 2019-12-29 2023-05-16 云帐房网络科技有限公司 一种商业报表数据的分布式列式数据存储转换方法及系统
TWI796545B (zh) * 2020-01-15 2023-03-21 訊光科技系統股份有限公司 文件式智能程式產生方法及其電子裝置
USD974370S1 (en) * 2020-04-03 2023-01-03 Markup Llc Display screen portion with graphical user interface
CN111680478B (zh) * 2020-06-17 2024-04-16 华自科技股份有限公司 基于组态软件的报表生成方法、装置、设备和存储介质
CN111723129B (zh) * 2020-06-24 2024-03-29 中国工商银行股份有限公司 报表生成方法、报表生成装置和电子设备
KR102230729B1 (ko) * 2020-08-31 2021-03-23 (주)비아이매트릭스 템플릿 기반 엑셀 문서 온라인 작업 시스템
CN112233498B (zh) * 2020-10-14 2023-01-06 烟台鼎钰电子科技有限公司 一种表格式可编程显示控制器
USD957452S1 (en) * 2020-11-19 2022-07-12 Autel Intelligent Technology Corp., Ltd. Display screen or portion thereof of a device with transitional graphical user interface
CN112541033B (zh) * 2020-12-01 2023-05-05 山东师范大学 Vba栈结构的演示方法、系统、存储介质及计算机设备
KR102499832B1 (ko) * 2020-12-18 2023-02-15 (주)비아이매트릭스 쿼리 바인딩 기능을 구비한 온라인 보고서 작성 시스템
CA3150102A1 (en) * 2021-02-24 2022-08-24 Think Research Corporation Systems, methods and devices for structured dynamic electronic forms
US11797430B2 (en) 2021-12-03 2023-10-24 T-Mobile Usa, Inc. Configuration-driven data conversion and hosting for software development systems and methods
US11599718B1 (en) 2022-03-23 2023-03-07 Acuitive Solutions, Inc. Database system for storing electronic spreadsheets
CN117454862A (zh) * 2023-12-25 2024-01-26 青岛民航凯亚系统集成有限公司 一种基于引擎模式的报表生成方法及自助bi系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003098500A1 (en) 2002-05-16 2003-11-27 Decision Curve Limited Method and apparatus for automatically producing spreadsheet-based models
US20040221233A1 (en) 2003-04-29 2004-11-04 David Thielen Systems and methods for report design and generation
JP2007249328A (ja) 2006-03-14 2007-09-27 Internatl Business Mach Corp <Ibm> 表計算などの処理を行うシステムおよびその方法
US20110295945A1 (en) 2010-05-26 2011-12-01 Lord Daniel J Automated Report Service Tracking System and Method

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11161656A (ja) 1997-11-27 1999-06-18 Asahi Chem Ind Co Ltd データベース検索・抽出システムおよびデータベース検索・抽出用制御プログラムを記録した記録媒体
US6078924A (en) * 1998-01-30 2000-06-20 Aeneid Corporation Method and apparatus for performing data collection, interpretation and analysis, in an information platform
US6631497B1 (en) 1999-07-19 2003-10-07 International Business Machines Corporation Binding data from data source to cells in a spreadsheet
US6816630B1 (en) * 2000-05-22 2004-11-09 Electro-Sensors, Inc. System and method for creating and processing data forms
US7251776B2 (en) * 2001-07-13 2007-07-31 Netview Technologies, Inc. System and method for efficiently and flexibly utilizing spreadsheet information
US20040111666A1 (en) * 2002-12-05 2004-06-10 Hollcraft James G. Software replicator functions for generating reports
US6965978B2 (en) * 2003-05-15 2005-11-15 Microsoft Corporation Memory tracking tool
US7197696B1 (en) * 2003-06-05 2007-03-27 Pavan Vidyadhar Muzumdar System, method and computer program product to populate data into spreadsheets and execute functions and programs within the same
US7694315B2 (en) * 2004-02-13 2010-04-06 Microsoft Corporation Schema-based machine generated programming models
US20060085444A1 (en) * 2004-10-19 2006-04-20 Microsoft Corporation Query consolidation for retrieving data from an OLAP cube
US7426688B2 (en) * 2004-11-02 2008-09-16 Hewlett-Packard Development Company, L.P. Embedded spreadsheet commands
US7487446B2 (en) 2004-11-10 2009-02-03 Microsoft Corporation Using a word processor with accounting data
US20060107196A1 (en) * 2004-11-12 2006-05-18 Microsoft Corporation Method for expanding and collapsing data cells in a spreadsheet report
US7647551B2 (en) * 2004-12-15 2010-01-12 Microsoft Corporation System and method for formatting a cell in response to data stored in a separate location
US20060136436A1 (en) * 2004-12-22 2006-06-22 At&T Corp. Arrangement enabling thin client to access and present data in custom defined reports
US7792847B2 (en) * 2005-09-09 2010-09-07 Microsoft Corporation Converting structured reports to formulas
US7805433B2 (en) * 2005-10-14 2010-09-28 Microsoft Corporation Multidimensional cube functions
US20080104542A1 (en) * 2006-10-27 2008-05-01 Information Builders, Inc. Apparatus and Method for Conducting Searches with a Search Engine for Unstructured Data to Retrieve Records Enriched with Structured Data and Generate Reports Based Thereon
JP2008234370A (ja) * 2007-03-21 2008-10-02 Just Syst Corp 文書処理装置及び文書処理方法
US8095870B2 (en) * 2007-06-06 2012-01-10 Oracle International Corporation Extensible document transformation language: an innovative way of generating business document and report
US20090055341A1 (en) * 2007-08-22 2009-02-26 American Express Travel Related Services Company, Inc. Regulatory Survey Automation System (RSAS)
US8407668B2 (en) * 2007-10-26 2013-03-26 Microsoft Corporation Model based spreadsheet scripting language
US8341512B2 (en) * 2007-10-31 2012-12-25 Microsoft Corporation Method for capturing design-time and run-time formulas associated with a cell
US8856182B2 (en) * 2008-01-25 2014-10-07 Avaya Inc. Report database dependency tracing through business intelligence metadata
US9104738B2 (en) * 2008-06-19 2015-08-11 Tropare, Inc. Leveraging collaborative cloud services to build and share apps
US8788928B2 (en) * 2009-07-15 2014-07-22 Clandscale, Inc. System and methodology for development of stream processing applications utilizing spreadsheet interface
AU2010201974A1 (en) * 2009-10-23 2011-05-12 Iconstruct (Aus) Pty Ltd System and Method for Managing Information
CN102053975A (zh) * 2009-10-30 2011-05-11 国际商业机器公司 数据库系统和跨数据库查询优化方法
US20110173529A1 (en) * 2010-01-11 2011-07-14 Microsoft Corporation Template processing engine for business systems
JP2011227631A (ja) * 2010-04-16 2011-11-10 Wincube Co Ltd 業務管理用システム
US8677230B2 (en) * 2011-09-15 2014-03-18 Morgan Stanley Network-based data consolidation, calculation and reporting engine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003098500A1 (en) 2002-05-16 2003-11-27 Decision Curve Limited Method and apparatus for automatically producing spreadsheet-based models
US20040221233A1 (en) 2003-04-29 2004-11-04 David Thielen Systems and methods for report design and generation
JP2007249328A (ja) 2006-03-14 2007-09-27 Internatl Business Mach Corp <Ibm> 表計算などの処理を行うシステムおよびその方法
US20110295945A1 (en) 2010-05-26 2011-12-01 Lord Daniel J Automated Report Service Tracking System and Method

Also Published As

Publication number Publication date
HK1205303A1 (en) 2015-12-11
EP2798487A1 (en) 2014-11-05
US20130290822A1 (en) 2013-10-31
CA2862387A1 (en) 2013-07-04
CN104285209B (zh) 2018-01-30
KR20140126311A (ko) 2014-10-30
WO2013101914A1 (en) 2013-07-04
CN104285209A (zh) 2015-01-14
CA2862387C (en) 2023-03-14
US10824802B2 (en) 2020-11-03
AU2012362383B2 (en) 2018-05-10
EP2798487A4 (en) 2015-09-09
JP6134737B2 (ja) 2017-05-24
AU2012362383A1 (en) 2014-07-24
JP2015504213A (ja) 2015-02-05

Similar Documents

Publication Publication Date Title
KR101977972B1 (ko) 보고서 작성용으로 적응된 스프레드시트 기반 프로그래밍 언어
US20130166550A1 (en) Integration of Tags and Object Data
US8819075B2 (en) Facilitation of extension field usage based on reference field usage
CN101971176B (zh) 用于建立可扩展业务应用的类型系统
US9477786B2 (en) System for metadata management
US20110072340A1 (en) Modeling system and method
US20120054147A1 (en) System and method for extract, transform, and load workflow generation
US20160259831A1 (en) Methodology supported business intelligence (BI) software and system
US8407235B2 (en) Exposing and using metadata and meta-metadata
US9779135B2 (en) Semantic related objects
US9208195B2 (en) Retrieving information from a relational database using user defined facets in a faceted query
Mueller Microsoft ADO. NET Entity Framework Step by Step
Sattar et al. Incorporating nosql into a database course
Oliveira et al. ETL standard processes modelling-a novel BPMN approach
Langit Foundations of SQL Server 2005 Business Intelligence
Birgi et al. Data Model: A Blueprint for Data Warehouse
Bogusławski et al. Creating Database Models in Rational Data Architect
Jennings Microsoft Access 2010 in depth
Paplanus et al. EMDS 5.0 and Beyond
Willman et al. Introduction to Handling Databases
Laranjeiro et al. ONDA: ONline Database Architect
Leonard et al. Metadata Automation
García Sanz Foodie environment MEAN web application
Coxall Oracle Quick Guides-Part 2-Oracle Database Design
Curland et al. The norma tool for orm 2

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant