KR101312881B1 - 스프레드시트 문서의 파라미터의 지정, 설정 및 발견 - Google Patents
스프레드시트 문서의 파라미터의 지정, 설정 및 발견 Download PDFInfo
- Publication number
- KR101312881B1 KR101312881B1 KR1020087005475A KR20087005475A KR101312881B1 KR 101312881 B1 KR101312881 B1 KR 101312881B1 KR 1020087005475 A KR1020087005475 A KR 1020087005475A KR 20087005475 A KR20087005475 A KR 20087005475A KR 101312881 B1 KR101312881 B1 KR 101312881B1
- Authority
- KR
- South Korea
- Prior art keywords
- parameter
- parameters
- spreadsheet
- list
- cells
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Document Processing Apparatus (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
독립형 스프레드시트 애플리케이션 및/또는 웹-기반 스프레드시트 서비스의 경우, 스프레드시트 문서에 대한 파라미터를 지정, 발견 및 설정하는 기능이 제공된다. 스프레드시트 문서를 생성할 때, 어떤 셀 또는 셀의 범위를 스프레드시트에 대한 파라미터로서 지정하는 기능이 인에이블된다. 게다가, 독립형 스프레드시트 애플리케이션에서 또는 웹 서비스를 통해서 보든지 간에, 사용자 인터페이스 또는 개체 모델을 통해 이들 파라미터를 발견하는 기능이 제공된다. 한번에 하나씩 또는 대량으로 이들 파라미터를 설정 또는 변경하고 그 변화를 계산 모델 내에 집어넣는 기능도 제공된다. 그에 따라, 독립형 스프레드시트 애플리케이션에서 또는 웹 렌더링 서비스를 통해 보든지 간에, 사용자에 의해 입력되는 파라미터의 효과가 한꺼번에 계산되고 보여질 수 있다. 현재의 파라미터 세트 등의 모든 관련 값이 획득될 때까지 워크북의 재계산을 일시 정지시키는 기능도 역시 인에이블된다.
스프레드시트, 셀, 워크북, 웹 렌더링
Description
본 발명은 스프레드시트 또는 워크북 등의 문서의 파라미터를 지정, 설정 및 발견하는 것에 관한 것이다.
MICROSOFT의 EXCEL 소프트웨어 등의 스프레드시트 소프트웨어는, 때때로 워크시트(worksheet) 또는 워크북(workbook)이라고도 하는 종이 스프레드시트를 시뮬레이트하는 동작을 하며, 이 스프레드시트에서 숫자들의 열은 예산, 계획, 모델 및 다른 작업에 대해 수학적으로 처리된다. 예를 들어, 합산, 곱셈 등이 행해진다. 통상적인 스프레드시트 소프트웨어 사용자 인터페이스는 화면 상에 행과 열의 행렬로서 나타나며, 이들의 교차점은 "셀"이라고 한다. 이들 셀은 라벨, 숫자값, 또는 공식으로 채워질 수 있다. 라벨은 "임대" 및 "총 매출액" 등의 설명적 텍스트이다. 값은 실제 숫자 데이터이고, 공식은 값들에 기초하여 특정의 계산을 수행하도록 스프레드시트에 명령한다. 예를 들어, 공식 SUM CELLS A5 TO A10은 스프레드시트 소프트웨어로 하여금 열 A, 행 5 내지 10에서 발견되는 셀들을 합산하도록 할 수 있다. 공식은 셀들의 상호 관계(interrelationship)를 허용하며, 공식을 생성하기는 쉽다. 예를 들어, 단지 셀을 가리키고 클릭한 다음에 그 셀에 영향을 주기 위한 임의의 산술 연산의 키(+, -, 기타)를 누를 수 있다. 예를 들어, 공식의 생성은 "이 셀의 내용 + 이 셀의 내용 / 좌측에 있는 그 다음 셀의 내용"일 수 있다.
숫자들이 추가 또는 변경된 후에, 이 공식은 일반적으로 자동적으로 또는 사용자의 시작으로, 예를 들어, 키를 누름으로써 데이터를 재계산한다. 이것은 다수의 셀 전체에 걸쳐 재계산 "파급(ripple)" 효과를 생성할 수 있다. 임의의 셀의 내용이 임의의 다른 셀로 계산될 수 있거나 임의의 다른 셀로 복사될 수 있기 때문에, 하나의 열의 총계가 다른 열에서의 세부 항목으로서 사용될 수 있다. 예를 들어, 비용 항목들의 열로부터의 총계는 모든 비용을 보여주는 개요 열로 이월될 수 있다. 세부 열에 있는 셀의 내용이 변하면, 그의 열 총계가 변하고, 이는 이어서 개요 열로 복사되고, 개요 총계가 변한다.
은행업자, 주식 중개인, 경제학자 등을 위한 강력한 도구가 사용자로 하여금 계획 또는 모델을 생성하게 하고, 그 모델에 관한 서로 다른 가정을 플러그인하게 하며, 즉 파라미터를 변경하게 하며, 하단 라인에 대한 영향을 즉각 알게 한다. 이러한 "가정(what if?)" 기능은 스프레드시트를 예산, 계획 및 다른 방정식-기반 작업에 필요불가결하게 만들어준다. "가정" 기능은 따라서 사용자가 시간에 따른 은행 계좌의 증가 등의 수학적 모델의 이율 등의 기본 파라미터를 변경할 수 있게 해준다. "가정"은 이와 유사하게 사용자가 시작 은행 잔고 등의 기본적인 사실, 이율을 복리로 지불하는 공식으로 또는 공식 없이 이율을 계산하는 것 등의 셀들을 상호 연관시키는 공식, 및 심지어 서로 다른 수학적 시나리오를 언급하는 셀들의 이름을 변경할 수 있게 해준다.
따라서, 현재, 스프레드시트의 셀들에 관한 임의의 정보가 사용자에 의해 변경될 수 있으며, 그에 따라 사용자는 그 변경이 모델 전체에서 어떻게 행해지는지를 알 수 있다. 그렇지만, 현실은 일반적으로 모델이 설치되면 그 모델의 어떤 측면들은 변경하도록 되어 있지는 않다. 예를 들어, 상기한 증가 예에서, 사용자라면 시작 은행 계좌 잔고가 $2000이고 이러한 사실이 변하지 않을 것이라는 것을 알 수 있다. 따라서, 이러한 사실이 변경될 수 있다는 것이 스프레드시트의 불필요한 기능인 것처럼 보인다. 이와 마찬가지로, 그 안에 라벨을 가지고 있는 셀들은, 변경가능하지만, 증가 공식 계산의 결과를 변경하지 않는다. 즉, 어떤 열 또는 값이 "증가율"이라고 표시되어 있는지 "이율"로 표시되어 있는지는 기본적인 공식과는 관련이 없다. 따라서, 현재의 스프레드시트 모델에서는 다른 가정 하에서 트위킹(tweaking)을 위한 파라미터로서 의도된 셀과 모델의 변경가능하지 않은 픽스처(fixture) 또는 주어진 부분으로서 의도된 셀 간을 구별하는 것이 어려운 것처럼 보인다.
이것이 문제의 스프레드시트의 작성자에게는 좋은 경향이 있는데, 그 이유는 작성자가 일반적으로 관련 파라미터가 어느 것을 트위킹하기 위한 것인지를 기억하고 있기 때문이다. 그렇지만, 그의 작성과 관련없는 제3자 사용자가 스프레드시트 및 그것이 나타내는 모델을 보자마자, 그 제3자 사용자는 어느 셀이 파라미터로서 의도된 것이고 어느 것이 아닌지를 확인하는 어려운 훈련을 거쳐야만 한다. 이러한 제3자 사용자는, 예를 들어, $2000 시작 잔고가 모델의 주어진 부분이라는 것을 모를 수 있다. 게다가, 수학적 모델이 여기에 주어진 증가예보다 중요하기 때문에, 모델의 작성자 조차도 문서의 어느 부분이 파라미터이고 어느 부분이 그렇지 않은지를 기억하는 데 어려움을 겪을 수 있다.
그에 따라, 현재, 스프레드시트의 사용자는 스프레드시트의 셀을 파라미터로서 명시적으로 지정할 수 없다. 비슷한 이유로, 사용자는 스프레드시트의 어느 부분이 파라미터인지를 발견할 수 없다. 게다가, 비슷한 이유로, 사용자는, 파라미터가 아닌 모델의 부분과 구별되는 파라미터를 그 자체로서 변경 또는 설정할 수 없다. 상기한 스프레드시트 문서의 파라미터와 연관된 이들 단점이 기술 분야에 해결되지 않은 채로 있다.
게다가, 역사적으로, 스프레드시트는 독립형 애플리케이션이었으며, 여기서 사용자는 로컬 컴퓨터 상에 설치된 스프레드시트 소프트웨어를 실행하는 프로세서를 갖는 로컬 컴퓨터와 공존하고 있으며, 이는 상기한 시나리오들 중 임의의 것에 대한 경우일 수 있다.
그렇지만, 인터넷의 등장과 급증에 따라, 컴퓨터 사용자는 거의 모든 장소로부터 거의 모든 종류의 전자 문서에 편리하게 액세스하는 것에 익숙해져 있다. 특히, 월드 와이드 웹("웹") 및 웹 브라우저 애플리케이션 프로그램의 확산은 텍스트 및 그래픽 문서 등의 많은 종류의 문서에 액세스하는 것을 아주 편리하게 해주었다. 웹 브라우저 애플리케이션 프로그램을 통해, 사용자는 스프레드시트 문서를 비롯하여, 임의의 부가적인 소프트웨어를 필요로 하지 않고 많은 유형의 전자 문서에 액세스하고 그를 볼 수 있다.
따라서, 예를 들어, 사용자는 로컬 머신 상에서 스프레드시트 문서를 작성하고, 그 스프레드시트 문서를 서버에 "게시(publish)"할 수 있으며, 그로부터 허가된 사용자라면 누구라도 웹 브라우저를 통해 스프레드시트 문서를 볼 수 있다. 웹 브라우저에서 렌더링될 때, 스프레드시트는 스프레드시트 애플리케이션 프로그램에 의해 디스플레이될 때의 스프레드시트와 유사한 방식으로 디스플레이된다. 그렇지만, 현재, 상기한 클라이언트 애플리케이션 결점과 유사하게, 사용자는 웹 브라우저 상에 디스플레이하기 위해 스프레드시트 문서를 작성할 때 어떤 셀도 파라미터로서 지정할 수 없다. 유사한 이유로, 사용자는 어느 파라미터가 스프레드시트에 적용되는지를 발견할 수 없으며 그 파라미터들을 설정 또는 변경할 수 없다.
그에 따라, 현재 사용자가 스프레드시트에서 모델을 잠그고(lockdown) 어떤 셀만을 편집가능하게 만드는 것이 가능하지 않다. 이들 셀은 사실상 변경될 수 있는 "함수" 파라미터이다. 스프레드시트 모델은 함수 또는 함수들을 나타낸다. 현재 스프레드시트를 잠그고 어떤 셀만을 편집가능하게 만드는 방법이 있지만, 이것은 사용자 인터페이스(UI) 위주의 잠금이며, 어떤 셀을 스프레드시트에 대한 파라미터로서 명시적으로 지정하는 메카니즘이 없거나 그 메카니즘으로 하여금 이동하는 셀 및 변하는 워크북을 추적하게 하는 메카니즘이 없다. 셀을 파라미터로서 지정하는 방법이 없기 때문에, 스프레드시트에 이용가능한 파라미터가 있는지 쿼리하기 위해 스프레드시트를 호출하는 방법도 없다. 게다가, 기존의 스프레드시트 서버 제품의 경우에, 셀을 편집하는 것이 아직도 가능하지 않다. 본 명세서에 기술된 스프레드시트 기능의 이들 및 다른 문제점이 기술 분야에 미해결 문제로 남아 있다.
<발명의 요약>
이상의 내용을 고려하면, 독립형 스프레드시트 애플리케이션 및/또는 웹-기반 스프레드시트 서비스의 경우, 본 발명은 스프레드시트 문서의 파라미터를 지정, 발견 및 설정하는 기능을 제공한다. 다양한 비제한적인 실시예들에서, 스프레드시트 문서를 작성할 때, 본 발명은 어떤 셀 또는 어떤 범위의 셀을 스프레드시트에 대한 파라미터로서 지정하는 기능을 제공한다. 게다가, 독립형 스프레드시트 애플리케이션에서 또는 웹 서비스를 통해 보든지 간에, 본 발명은 사용자 인터페이스 또는 개체 모델을 통해 이들 파라미터를 발견하는 기능을 제공한다. 게다가, 한번에 하나씩 또는 대량으로 이들 파라미터를 설정 또는 변경하고 그 변화를 계산 모델에 집어 넣는 기능도 제공된다. 그에 따라, 독립형 스프레드시트 애플리케이션에서 또는 웹 서비스를 통해 보든지 간에, 사용자에 의해 입력된 파라미터의 효과가 한꺼번에 계산되고 보여질 수 있다. 본 발명은 또한 파라미터 등의 모든 관련 값이 획득될 때까지 워크북의 재계산을 일시 정지시키는 기능도 지원한다.
본 발명의 다른 특징들에 대해 이하에서 기술한다.
본 발명에 따른 스프레드시트 문서에 대한 파라미터의 지정, 발견 및 설정에 대해 첨부 도면을 참조하여 추가로 설명한다.
도 1은 본 발명이 구현될 수 있는 예시적이고 비제한적인 컴퓨터 시스템 환경을 나타낸 블록도이다.
도 2는 본 발명에 구현될 수 있는 예시적인 네트워크 환경을 나타낸 블록도이다.
도 3A 및 도 3B는 모두 본 발명의 다양한 구현에 따른, 독립형 애플리케이션 및 웹 렌더링 서비스를 통해 스프레드시트 문서를 저작하고 보기 위한 예시적인 클라이언트 및 서버 아키텍처를 나타낸 도면이다.
도 4A 내지 도 4C는 본 발명에 따라 워크북 파라미터를 지정, 발견 및 설정하는 것의 여러가지 측면들의 예시적이고 비제한적인 스크린샷을 나타낸 도면이다.
도 5A, 도 5B, 도 5C, 도 5D, 도 5E, 도 5F, 도 5G, 도 5H, 도 5I, 도 5J 및 도 5K는 본 발명에 따른, 워크북을 작성하는 것 및 파라미터를 지정하는 것으로부터 문서와 연관된 파라미터 리스트를 발견하는 것 및 파라미터 리스트에 기술된 파라미터를 편집하는 것을 고려하여 웹을 통해 워크북을 렌더링하는 것까지의 예시적이고 비제한적인 스크린샷 시퀀스를 나타낸 도면이다.
도 6은 본 발명에 따라 사용자가 파라미터를 어떻게 지정, 발견 및 편집할 수 있는지를 나타낸 예시적인 흐름도이다.
도 7A, 도 7B, 도 8A, 도 8B, 도 9A, 도 9B, 도 10A, 도 10B, 도 11A, 도 11B, 도 12A 및 도 12B는 본 발명에 따른, 유사한 인터페이스 코드가 임의의 인터페이스(들)의 유사한 또는 등가의 목적(들)을 달성하기 위해 제공될 수 있는 예시적인 방법들을 나타낸 도면이다.
개요
상기한 바와 같이, 독립형 스프레드시트 애플리케이션 또는 웹 서버 스프레드시트 서비스에 기초하든지 간에, 사용자가 스프레드시트에서 모델을 잠그고(lockdown) 파라미터를 나타내는 셀만을 편집가능하게 만드는 것이 현재 가능하지 않다. 독립형 스프레드시트 애플리케이션에 있어서, 스프레드시트를 잠그고 어떤 셀들만을 편집가능하게 만드는 방법이 있지만, 이러한 기능은 그 자체로서 지정되는 파라미터와 관계없이 UI 위주로 되어 있다. 또한, 스프레드시트에 이용가능한 파라미터가 있는지 쿼리하기 위해 스프레드시트를 호출할 방법이 없다. 게다가, 스프레드시트 문서의 렌더링을 가능하게 해주는 웹 기반 스프레드시트 서버의 경우에, 셀들을 편집하는 것이 현재 전혀 가능하지 않다. 그에 따라, 본 발명은 설계 시에 스프레드시트의 어떤 셀들을 파라미터로서 지정하는 기능을 제공하며, 그에 따라 문서가 독립형 애플리케이션 또는 웹 기반 스프레드시트 서비스를 통해 보여질 때, 클라이언트 또는 서버가 각각 어느 셀이 파라미터인지를 발견하고 파라미터로서 특정하여 지정된 그 셀들 내의 값을 편집하기 위해 대안의 UI 또는 개체 모델(OM)을 제공할 수 있다.
예시적인 네트워크화된 분산 환경
이제 유사한 참조 번호가 유사한 구성요소를 나타내고 있는 도면들을 참조하여, 본 발명의 다양한 태양들에 대해 기술한다. 상세하게는, 도 1 및 대응하는 설명은 본 발명의 실시예들이 구현될 수 있는 적합한 컴퓨팅 환경에 대한 간략하고 전반적인 설명을 제공하기 위한 것이다. 본 발명이 일반적으로 서버 및 퍼스널 컴퓨터 시스템 상에서 실행되는 프로그램 모듈과 관련하여 기술될 것이지만, 당업자라면 본 발명이 또한 다른 유형의 컴퓨터 시스템 및 프로그램 모듈과 관련하여 구현될 수 있다는 것을 잘 알 것이다.
일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 및 다른 유형의 구조를 포함한다. 게다가, 당업자라면 본 발명이 핸드-헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램가능한 가전제품, 미니컴퓨터, 메인프레임 컴퓨터, 기타 등등을 비롯한 다른 컴퓨터 시스템 구성에서 실시될 수 있다는 것을 잘 알 것이다. 본 발명은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치 둘다에 위치할 수 있다.
이제 도 1과 관련하여, 본 발명의 다양한 실시예들에서 이용되는 컴퓨터(2)의 예시적인 컴퓨터 아키텍처에 대해 기술할 것이다. 도 1에 도시된 컴퓨터 아키텍처는 중앙 처리 장치(CPU)(5), 랜덤 액세스 메모리(RAM)(9) 및 판독 전용 메모리(ROM)(11)를 포함하는 시스템 메모리(7), 그리고 이 메모리를 CPU(5)에 연결시키는 시스템 버스(12)를 포함하는 종래의 데스크톱 또는 랩톱 컴퓨터를 나타낸 것이다. 시동 중과 같은 때에 컴퓨터 내의 구성요소들 간에 정보를 전송하는 것을 돕는 기본적인 루틴을 포함하는 기본 입/출력 시스템이 ROM(11)에 저장된다. 컴퓨터(2)는 또한 운영 체제(16), 애플리케이션 프로그램, 및 기타 프로그램 모듈을 저장하는 대용량 저장 장치(14)를 포함하며, 이에 대해서는 이하에서 더 상세히 기술된다.
대용량 저장 장치(14)는 버스(12)에 접속된 대용량 저장 장치 컨트롤러(도시 생략)를 통해 CPU(5)에 접속된다. 대용량 저장 장치(14) 및 그와 연관된 컴퓨터 판독가능 매체는 컴퓨터(2)에 대한 비휘발성 저장을 제공한다. 본 명세서에 포함된 컴퓨터 판독가능 매체에 대한 설명이 하드 디스크 또는 CD-ROM 드라이브 등의 대용량 저장 장치를 언급하고 있지만, 당업자라면 컴퓨터 판독가능 매체가 컴퓨터(2)에 의해 액세스될 수 있는 이용가능한 매체라면 어느 것이나 될 수 있다는 것을 잘 알 것이다.
제한이 아닌 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등의 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EPROM, EEPROM, 플래쉬 메모리 또는 기타 고상(solid state) 메모리 기술, CD-ROM, DVD(digital versatile disk), 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(2)에 의해 액세스될 수 있고 원하는 정보를 저장하는 데 사용될 수 있는 임의의 다른 매체를 포함하지만 이에 제한되는 것은 아니다.
본 발명의 다양한 실시예들에 따르면, 컴퓨터(2)는 인터넷 등의 네트워크(18)를 통해 원격 컴퓨터들로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 컴퓨터(2)는 버스(12)에 접속된 네트워크 인터페이스 유닛(20)을 통해 네트워크(18)에 접속할 수 있다. 네트워크 인터페이스 유닛(20)이 또한 다른 유형의 네트워크 및 원격 컴퓨터 시스템에 접속하는 데 이용될 수 있다는 것을 잘 알 것이다. 컴퓨터(2)는 또한 키보드, 마우스, 또는 전자 스타일러스(도 1에 도시되지 않음)를 비롯한 다수의 다른 장치들로부터 입력을 수신 및 처리하는 입/출력 컨트롤러(22)를 포함할 수 있다. 이와 유사하게, 입/출력 컨트롤러(22)는 디스플레이 화면, 프린터, 또는 다른 유형의 출력 장치에 출력을 제공할 수 있다.
이상에서 간략히 언급한 바와 같이, 네트워크화된 퍼스널 컴퓨터의 동작을 제어하기에 적당한 운영 체제(16)를 비롯한 다수의 프로그램 모듈 및 데이터 파일이 컴퓨터(2)의 대용량 저장 장치(14) 및 RAM(9)에 저장될 수 있다. 대용량 저장 장치(14) 및 RAM(9)은 또한 하나 이상의 프로그램 모듈을 저장할 수 있다. 상세하게는, 대용량 저장 장치(14) 및 RAM(9)은 웹 브라우저 애플리케이션 프로그램(10)을 저장할 수 있다. 당업자라면 잘 알고 있는 바와 같이, 웹 브라우저 애플리케이션 프로그램(10)은 HTML을 사용하여 포맷되어 있는 웹 페이지(24) 등의 전자 문서와의 상호작용을 요청, 수신, 렌더링 및 제공하는 동작을 한다. 게다가, 웹 브라우저 애플리케이션 프로그램(10)은 SUN MICROSYSTEMS, INC.의 JAVA SCRIPT 언어를 이용하여 표현되는 스크립트 등의 웹 페이지(24)에 포함된 스크립트를 실행하는 동작을 할 수 있다. 본 발명의 일 실시예에 따르면, 웹 브라우저 애플리케이션 프로그램(10)은 MICROSOFT CORPORATION의 INTERNET EXPLORER 웹 브라우저 애플리케이션 프로그램을 포함한다. 그렇지만, MOZILLA FOUNDATION의 FIREFOX 웹 브라우저 애플리케이션 등의 다른 제조업자의 다른 웹 브라우저 애플리케이션 프로그램이 본 발명의 여러가지 태양들을 구현하는 데 이용될 수 있다는 것을 잘 알 것이다.
이하에 더 상세히 기술되는 바와 같이, 웹 페이지(24)는 스프레드시트 문서의 볼 수 있는 표현(viewable representation)을 포함할 수 있다. 상세하게는, 웹 페이지(24)는, 웹 브라우저 애플리케이션(10)에 의해 디스플레이될 때, 스프레드시트에 대한 시각적 디스플레이(visual display)를 제공하는 HTML 및 스크립트를 포함할 수 있다. 게다가, 웹 페이지(24)에 포함된 스크립트는 컴퓨터의 사용자가 웹 브라우저 애플리케이션(10)에 의해 제공되는 디스플레이와 상호작용하여 스프레드시트를 수정할 수 있게 해준다. 웹 브라우저 애플리케이션(10)에 의해 제공되는 시각적 디스플레이로부터, 사용자는 또한 원래의 스프레드시트 파일이 스프레드시트 애플리케이션 프로그램(26)에 열리도록 요청할 수 있다. 이러한 요청에 응답하여, 스프레드시트 애플리케이션(26)이 기동되고, 웹 페이지(24)에 의해 표현되는 스프레드시트에 대응하는 원래의 스프레드시트 파일이 스프레드시트 애플리케이션 프로그램(26)에 의해 로드된다. 스프레드시트 애플리케이션 프로그램(26)은 MIROSOFT CORPORATION의 EXCEL 스프레드시트 애플리케이션 프로그램 또는 다른 제조업자의 다른 스프레드시트 애플리케이션 프로그램을 포함할 수 있다. 웹 브라우저 애플리케이션(10)과 관련하여 스프레드시트를 보고 그와 상호작용하는 프로세스에 관한 부가적인 상세가 이제부터 도 2와 관련하여 제공된다.
이제 도 2를 참조하면, 본 발명의 다양한 실시예들에 대한 운영 환경을 나타낸 네트워크 구조도에 대해 기술한다. 도 2에 나타낸 바와 같이, 컴퓨터(2)는 네트워크(18)에 접속된다. 또한, 애플리케이션 서버(30)도 네트워크(18)에 접속된다. 애플리케이션 서버(30)는 도 1과 관련하여 상기한 종래의 컴퓨팅 컴포넌트 중 일부 또는 그 전부를 포함할 수 있는 서버 컴퓨터를 포함한다. 그에 부가하여, 애플리케이션 서버(30)는 애플리케이션 서버(30)에 저장되어 있거나 서버(30)가 액세스가능한 문서들에 대한 요청을 수신하고 그에 응답하기 위해 웹 서버 애플리케이션을 실행하는 동작을 한다. 게다가, 애플리케이션 서버(30)는 웹 애플리케이션(34)에 의해 발생된 페이지들에 대한 요청을 수신하고 그에 응답하는 동작을 한다. 웹 애플리케이션(34)이 애플리케이션 서버(30)에서 실행가능한 코드, 다른 컴퓨터들과 통신하는 실행가능 코드를 포함할 수 있고 당업자라면 알고 있는 템플릿, 그래픽, 오디오 파일, 및 기타 컨텐츠를 포함할 수 있다는 것을 잘 알 것이다.
본 발명의 일 태양에 따르면, 웹 애플리케이션(34)은 네트워크(18)를 통해 액세스가능한 스프레드시트 또는 워크북과 상호작용하기 위해 컴퓨터(2)의 사용자에게 인터페이스를 제공하는 동작을 한다. 상세하게는, 웹 애플리케이션(34)은 서버 애플리케이션 프로그래밍 인터페이스(API)(38)를 이용한다. 본 발명의 이 실시예에 따르면, 서버 API(38)는 스프레드시트 계산 서버(32)와의 통신을 가능하게 해주는 동작을 한다. 스프레드시트 계산 서버(32)는 스프레드시트 계산 서버 프로그램(40)을 실행하는 동작을 한다. 스프레드시트 계산 서버 프로그램(40)은 데이터베이스(42)에 저장되어 있는 워크북(44) 등의 스프레드시트를 검색 및 계산하는 실행가능 프로그램을 포함한다. 본 명세서에 기술된 본 발명의 실시예들에서, 스프레드시트 계산 서버 프로그램(40)이 MICROSOFT CORPORATION의 EXCEL CALCULATION SERVER 프로그램 등의 계산 서버(본 명세서의 다른 곳에서 "CS"로 축약됨)를 포함한다는 것을 잘 알 것이다. 그렇지만, 서버 컴퓨터 상에서 스프레드시트를 계산하는 다른 프로그램들이 이용될 수 있다. 또한, 계산 서버(32)가 도 1과 관련하여 상기한 종래의 하드웨어 및 소프트웨어 컴포넌트 중 다수를 포함할 수 있다는 것을 잘 알 것이다.
이하에서 더 상세히 기술되는 바와 같이, 컴퓨터(2)는 웹 브라우저 애플리케이션(10)과 관련하여 워크북(44)을 보기 위해 애플리케이션 서버(30)로 요청을 전송할 수 있다. 이러한 요청에 응답하여, 웹 애플리케이션(34)은 서버 API(38)를 통해 계산 서버(32)와 통신을 한다. 상세하게는. 웹 애플리케이션(34)은 계산 서버(32)에 적절한 워크북(44)을 요청한다. 이하에서 더 상세히 기술되는 바와 같이, 이러한 요청에 응답하여, 계산 서버 프로그램(40)은 워크북(44)을 검색하고 워크북(44)을, XML-기반 문서 형식 등의 스프레드시트 문서 형식으로 변환한다. 당업자라면 잘 알 것인 바와 같이, XML-기반 형식은 스프레드시트의 컨텐츠를 표현하기 위해 마크업 언어 스키마를 포함한다. 스프레드시트 계산 서버 프로그램(40)이 요청된 워크북(44)을 스프레드시트 문서 형식으로 변환하였으면, 스프레드시트 문서 형식 파일이 웹 애플리케이션(34)으로 반환된다.
웹 애플리케이션(34)이 워크북(44)의 스프레드시트 문서 형식 표현을 계산 서버(32)로부터 수신하면, 애플리케이션 서버(30)는 스프레드시트 웹 렌더러(36)를 이용하여 형식화된 스프레드시트(formatted spreadsheet)를 웹 브라우저 애플리케이션(10)에 의해 렌더링될 수 있는 스프레드시트의 표현으로 변환한다. 상세하게는, 스프레드시트 웹 렌더러(36)는 형식화된 문서를 스프레드시트를 디스플레이하기 위해 웹 브라우저 애플리케이션(10)에 의해 렌더링될 수 있는 HTML을 포함하는 문서로 변환한다. 게다가, 본 발명의 실시예들에 따르면, 스프레드시트 웹 렌더러(36)는, 웹 브라우저 애플리케이션(10)에 의해 렌더링될 때, 동일한 워크북(44)을 보기 위해 이용될 때의 스프레드시트 애플리케이션(26)의 출력과 거의 유사하게 보이는 HTML을 출력할 수 있다. 스프레드시트 웹 렌더러(36)가 파일을 렌더링하는 일을 완료하면, 이는 애플리케이션 서버(30)에 의해 컴퓨터(2)로 반환되고, 이 컴퓨터(2)에서 웹 브라우저 애플리케이션(10)에 의해 렌더링될 수 있다.
또한 이하에서 더 상세히 논의되는 바와 같이, 스프레드시트 웹 렌더러(36)는 또한 컴퓨터(2)의 사용자가 웹 브라우저 애플리케이션(10)와 관련하여 스프레드시트와 상호작용할 수 있게 해주기 위해 하나 이상의 스크립트를 마크업 언어 파일로 렌더링하는 동작을 할 수 있다. 이 기능을 제공하기 위해, 스프레드시트 웹 렌더러(36)는 웹 브라우저 애플리케이션(10)에 의해 실행가능한 스크립트 코드를 반환된 웹 페이지로 렌더링하는 동작을 한다. 이 스크립트는, 예를 들어, 사용자가 스프레드시트의 많은 부분을 볼 수 있고 스프레드시트 내에 포함된 피벗 테이블(pivot table)을 수정할 수 있으며 스프레드시트의 원래의 버전을 스프레드시트 애플리케이션(26)에 로드할 수 있고 다른 기능들을 수행할 수 있게 해주는 기능을 제공할 수 있다.
웹 브라우저 애플리케이션(10)과 관련하여 스프레드시트와의 상호작용을 제공하기 위해, 웹 브라우저 애플리케이션(10)은 사용자 입력을 수신한다. 어떤 유형의 사용자 입력에 응답하여, 이 스크립트가 실행될 수 있다. 스크립트가 실행될 때, 행해진 상호작용의 유형을 식별하고 적절한 요소에 수행되어야만 하는 기능을 웹 애플리케이션(34)에 알려주기 위해, 영향을 받는 스프레드시트 내의 요소를 나타내는 응답이 애플리케이션 서버(30)로 전송될 수 있다. 이러한 요청을 수신한 것에 응답하여, 웹 애플리케이션은 갱신된 워크북(44)이 있는지 계산 서버(32)에 부가적인 요청을 할 수 있다. 그에 응답하여, 스프레드시트 계산 서버 프로그램(40)은 사용자 동작을 고려하여 워크북(44)을 재계산하고 갱신된 워크북의 스프레드시트 문서 형식 표현을 웹 애플리케이션(34)에 제공할 수 있다. 스프레드시트 웹 렌더러(36)는 이어서 갱신된 워크북을 웹 브라우저 애플리케이션(10)에 의해 렌더링가능한 형식으로 렌더링하는 동작을 한다. 웹 애플리케이션(34)은 이어서 갱신된 스프레드시트를 컴퓨터(2)로 전송하는 동작을 하고, 이 컴퓨터(2)에서 이는 웹 브라우저 애플리케이션(10)에 의해 렌더링될 수 있다. 이 프로세스는 사용자가 웹 브라우저 애플리케이션(10)과 관련하여 스프레드시트와 상호작용함에 따라 임의의 횟수 반복될 수 있다. 사용자가 웹 브라우저 애플리케이션(10) 내에서 스프레드시트를 편집하는 일을 끝마칠 때, 스프레드시트에 행해진 임의의 변경이 웹 애플리케이션(34), 계산 서버(32) 중 임의의 하나 이상을 거쳐 데이터베이스(42)에 저장된 워크북(44)으로 전파될 수 있다. 워크북 파라미터를 지정, 발견 및 설정하는 예시적인 구현을 포함한 이들 다양한 프로세스에 관한 부가적인 상세가 이하에 제공된다.
스프레드시트 문서 파라미터의 지정, 발견 및 설정
이제 도 3A 및 도 3B를 참조하면, 웹 브라우저 애플리케이션 프로그램과 관련하여 스프레드시트를 보고 그와 상호작용하는 프로세스를 나타낸 예시적인 루틴(300)이 기술되어 있다. 본 명세서에 기술된 본 발명의 실시예들이 웹 브라우저 애플리케이션 프로그램과 관련하여 제공되어 있지만, 본 발명이 마크업 언어 문서의 렌더링을 지원하는 다른 유형의 애플리케이션 프로그램에서 이용될 수 있다는 것을 잘 알 것이다. 예를 들어, 본 명세서에 기술된 본 발명의 실시예들이 전용의 애플리케이션 프로그램을 필요로 하지 않고 문서의 렌더링 및 그와의 상호작용을 가능하게 해주기 위해 개인 정보 관리자 애플리케이션 프로그램, 프리젠테이션 애플리케이션 프로그램, 드로잉 또는 CAD(computer-aided design) 애플리케이션 프로그램, 또는 데이터베이스 애플리케이션 프로그램 내에서 이용될 수 있다.
본 명세서에 제공된 루틴들에 대한 설명을 읽어보면, 본 발명의 여러가지 실시예들의 논리적 동작이 (1) 컴퓨팅 시스템 상에서 실행되는 컴퓨터 구현된 동작 또는 프로그램 모듈의 시퀀스로서 및/또는 (2) 컴퓨팅 시스템 내의 상호연결된 머신 논리 회로 또는 회로 모듈로서 구현된다는 것을 잘 알 것이다. 이 구현은 본 발명을 구현하는 컴퓨팅 시스템의 성능 요건에 의존하는 선택의 문제이다. 그에 따라, 도 3 및 도 6에 나타내고 본 명세서에 기술된 본 발명의 실시예들을 구성하는 논리적 동작들을 여러가지로 동작, 구조적 장치, 작용 또는 모듈이라고 한다. 당업자라면 이들 동작, 구조적 장치, 작용 및 모듈이 본 명세서에 첨부된 청구항들 내에 인용된 본 발명의 정신 및 범위를 벗어나지 않고 소프트웨어로, 펌웨어로, 특수 목적의 디지털 논리로, 그리고 이들의 임의의 조합으로 구현될 수 있다는 것을 잘 알 것이다.
루틴(300)은 클라이언트 컴퓨터(2)가 워크북(44)에 대한 요청을 애플리케이션 서버(30)로 전송하는 동작(302)에서 시작한다. 이 요청은 사용자가 웹 브라우저 애플리케이션(10)을 통해 웹 브라우저 애플리케이션(10) 내에서 보고 편집하기 위해 워크북(44)을 열어줄 것을 요청하는 것에 응답하여 컴퓨터(2)에 의해 전송될 수 있다. 애플리케이션 서버(30)가 사용자가 이용가능한 워크북을 볼 수 있게 해주고 또한 보고 편집하기 위해 워크북들 중 하나를 선택할 수 있게 해주는 웹 기반 인터페이스(30)를 제공할 수 있다는 것을 잘 알 것이다.
동작(302)으로부터, 루틴(300)은 애플리케이션 서버(30)가 계산 서버(32)로 워크북(44)에 대한 요청을 전송하는 동작(304)으로 계속된다. 상세하게는, 웹 애플리케이션(34)은 서버 API(38)를 이용하여 스프레드시트 계산 서버 프로그램(40)과 통신을 할 수 있다. 이 통신 경로를 통해, 워크북(44)에 대한 요청이 행해질 수 있다.
동작(304)으로부터, 루틴(300)은 스프레드시트 계산 서버 프로그램(40)이 요청된 워크북(44)을 데이터베이스(42)로부터 검색하는 동작(306)으로 계속된다. 스프레드시트 계산 서버 프로그램(40)은 이어서 단계(308)에서 워크북(44)의 컨텐츠를 계산한다. 계산 동작(308)은 워크북(44)을 재계산할 때 스프레드시트 애플리케이션(26)에 의해 수행되는 것들과 유사한 계산들을 포함할 수 있다.
계산 서버(32)가 워크북(44)을 계산하였으면, 스프레드시트 계산 서버 프로그램(40)은 또한 계산된 워크북을 XML-기반 형식 등의 적절한 형식으로 변환하는 동작을 한다. XML 또는 마크업 기반 형식은 스프레드시트의 컨텐츠를 기술하는 마크업 언어 스키마를 포함한다. 본 발명의 태양들에 따르면, 워크북(44)의 일부분만이 XML 형식으로 변환된다는 것을 잘 알 것이다. 이것은 스프레드시트의 디스플레이가능한 부분만이 컴퓨터(2)로 반환될 수 있게 해준다. 부가적인 부분들이 웹 페이지(24)에 의해 제공되는 인터페이스를 통해 요청될 수 있다. 다른 대안으로서, 워크북(44) 전체가 XML 형식으로 변환되어 애플리케이션 서버(30)로 반환될 수 있다.
동작(312)에서, 계산 서버(32)는 애플리케이션 서버(30)로부터의 요청에 XML 형식의 워크북으로 응답한다. 루틴(300)은 이어서 애플리케이션 서버(30) 상에서 실행되는 스프레드시트 웹 렌더러(36)가 XML 형식의 워크북을 웹 브라우저 애플리케이션(10)에 의해 렌더링 및 디스플레이될 수 있는 형식으로 변환하는 동작(314)으로 계속된다. 상세하게는, 스프레드시트 웹 렌더러(36)는 XML 워크북을 HTML 및 스크립트 둘다를 포함하는 웹 페이지(24)로 변환한다. HTML은 요청된 워크북(44)의 컨텐츠를 디스플레이하기 위해 웹 브라우저(10)에 의해 이용된다. 이 스크립트는 사용자가 웹 브라우저 애플리케이션(10)과 관련하여 스프레드시트의 렌더링된 버전과 상호작용할 수 있게 해주기 위해 웹 브라우저 애플리케이션(10)에 의해 이용된다.
동작(314)으로부터, 루틴(300)은 애플리케이션 서버가 워크북(44)에 대한 컴퓨터(2)로부터의 원래의 요청에 응답하는 동작(316)으로 계속된다. 상세하게는, 애플리케이션 서버(30)는 웹 브라우저 애플리케이션(10)과 관련하여 워크북(44)을 보고 그와 상호작용하는 데 필요한 HTML 및 스크립트를 포함하는 웹 페이지(24)를 컴퓨터(2)로 전송한다.
컴퓨터(2)가 웹 페이지(24)를 수신하였으면, 웹 브라우저 애플리케이션(10)은 웹 페이지(24)의 컨텐츠를 렌더링하는 동작을 한다. 상세하게는, 동일한 워크북(44)이 스프레드시트 애플리케이션(26)을 이용하여 열리는 경우에 스프레드시트 애플리케이션(26)에 의해 제공되는 것과 거의 유사한 워크북(44)의 보기를 제공하기 위해 HTML이 렌더링된다. 게다가, 웹 브라우저 애플리케이션(10)은 컴퓨터(2)의 사용자가 웹 브라우저 애플리케이션(10)과 관련하여 스프레드시트와 상호작용할 수 있도록 스크립트를 렌더링하는 동작을 한다.
이제 도 3B로 가서, 사용자가 웹 브라우저 애플리케이션(10)과 관련하여 렌더링되는 워크북과 상호작용할 수 있게 해주는 본 발명의 다양한 태양들을 나타낸 예시적인 루틴(320)이 기술되어 있다. 루틴(320)은 사용자가 스프레드시트와 상호작용할 수 있게 해주는 데 필요한 웹 페이지 및 스크립트를 디스플레이하는 데 필요한 HTML을 포함하는 웹 페이지(24)의 컨텐츠가 렌더링되는 동작(322)에서 시작한다. 이어서, 루틴(320)은 웹 브라우저 애플리케이션(10)이 디스플레이된 스프레드시트와 상호작용하기 위해 사용자 입력을 수신하는 동작(324)으로 계속된다. 예를 들어, 웹 브라우저 애플리케이션(10)은 스프레드시트에 대한 임의의 수정을 저장하기 위해 또는 다른 기능을 수행하기 위해, 피벗 테이블의 컨텐츠를 수정하고, 워크북 내의 다른 스프레드시트가 디스플레이되도록 요청하는 사용자 입력을 수신할 수 있다. 입력을 수신하고 상호작용이 수행되게 하는 데 필요한 애플리케이션 서버(30)와의 통신을 수행하기 위해 웹 브라우저 애플리케이션(10)에 의해 하나 이상의 스크립트가 실행될 수 있다는 것을 잘 알 것이다.
동작(324)에서 사용자로부터 입력이 수신되면, 적절한 스크립트가 동작(326)에서 사용자에 의해 취해지는 특정의 동작을 식별해주는 데이터를 애플리케이션 서버(30)로 전송한다. 동작(328)에서, 애플리케이션 서버(30)는 사용자에 의해 취해지는 특정의 동작을 결정한다. 요청된 동작이 식별되면, 애플리케이션 서버(30)는 특정의 동작이 특정의 워크북에 대해 행해지도록 요청하는 명령을 계산 서버(32)로 전송한다. 상기한 바와 같이, 애플리케이션 서버(30)는 서버 API(38)를 통해 계산 서버(32)와 통신을 한다.
현재의 워크북에 대해 명령을 수행하기 위해 애플리케이션 서버(30)로부터 요청을 수신한 것에 응답하여, 스프레드시트 계산 서버 프로그램(40)은 워크북(44)에 대해 요청된 동작을 수행한다. 예를 들어, 사용자가 피벗 테이블 내의 요소들이 재배열되도록 요청한 경우, 스프레드시트 계산 서버(40)는 요소들의 실제 재배열을 수행한다. 동작이 수행된 경우, 동작(332)에서 스프레드시트 계산 서버 프로그램(40)은 워크북을 재계산한다. 재계산된 워크북은 사용자에 의해 행해진 변경을 웹 브라우저 애플리케이션(10)을 통해 현재 열려 있는 워크북에 반영한다.
워크북(44)이 재계산되었으면, 단계(334)에서, 계산 서버(32)는 재계산된 워크북을 XML 형식으로 변환한다. 이 프로세스는 도 3A를 참조하여 이상에 기술되어 있다. 재계산된 워크북이 XML 형식으로 변환되었으면, 이 재계산된 워크북은 계산 서버(32)로부터 애플리케이션 서버(30)로 전송된다. 애플리케이션 서버(30)에서, 스프레드시트 웹 렌더러(36)는 재계산된 스프레드시트의 XML 버전을 웹 브라우저 애플리케이션(10)에 의해 렌더링가능한 형식으로 변환한다. 재계산된 스프레드시트의 렌더링가능한 버전은 이어서 웹 브라우저 애플리케이션(10)으로 전송되고, 이 곳에서 이 스프레드시트가 렌더링되어 사용자에게 디스플레이될 수 있다. 이 프로세스는 도 3A 및 동작(312-318)을 참조하여 이상에 기술되어 있다. 본 발명에 따라 워크북 파라미터를 지정, 설정, 편집 및 발견하는 프로세스에 대한 예시적이고 비제한적인 구현 상세에 대해 이제부터 이하에서 더 상세히 기술한다.
워크북 파라미터의 지정, 설정, 편집 및 발견
기술하는 바와 같이, 본 발명에 따르면, 워크북 작성자는 셀 및/또는 필터를 편집가능한 파라미터로서 지정할 수 있다. 서버, 예를 들어, 그 중에서도 특히, 웹 브라우저를 통해 디스플레이하기 위해 스프레드시트 문서를 렌더링하는 스프레드시트 애플리케이션 서버는 이어서 사용자 인터페이스(UI)를 통해 및 웹 서비스 애플리케이션 프로그래밍 인터페이스(API)를 통해 편집가능한 파라미터를 노출시킬 수 있다. 본 발명의 일 태양에서, 스프레드시트 클라이언트는 셀 및 필터를 파라미터로서 지정하는 것을 가능하게 해줌으로써 워크북 파라미터에 대한 경험을 작성하는 데 사용될 수 있다.
발명의 배경에서 언급한 바와 같이, 현재의 애플리케이션 서버에서는 셀 값의 인라인 편집(in-line editing)을 할 수 없지만, 셀 값의 특정의 서브셋을 변경할 수 있다면 효과적인 많은 고객 시나리오가 있다. 이것은, 예를 들어, 간단한 잘 정의된 계산 모델(예를 들어, 모기지 계산기) 및 가정 분석(what-if analysis)(예를 들어, 연간 수입의 연도별 증가율을 변경하는 것)을 포함한다. 이러한 특징은 특정의 파라미터 값을 발견, 검색, 및 설정/편집하기 위해 애플리케이션 서버 웹 렌더링 경험의 일부로서 값을 변경하고자 하는 최종 사용자에 의해서는 물론 웹 서비스 API에 의해서도 사용될 수 있다.
본 발명에 따른 스프레드시트 클라이언트 애플리케이션은 어느 셀이 파라미터인지를 지정하는 방법(들)을 사용자에게 제공한다. 사용자는 이어서 어느 셀이 파라미터인지를 발견하고 대응하는 셀을 편집할 수 있다. 본 발명의 일 실시예에서, 서버만이 파라미터를 노출시키지만(이 경우 클라이언트의 파라미터 지정 기능이 워크북을 서버에 게시하는 일의 일부가 됨), 본 발명은 스프레드시트 클라이언트 애플리케이션도 파라미터를 노출시키는, 즉 파라미터의 발견, 검색 및 설정을 가능하게 해주는 대안의 실시예들을 생각하고 있다.
본 명세서에는 워크북 작성자가 스프레드시트 클라이언트에서 특정의 셀을 파라미터로서 지정할 수 있게 해주는 기술들이 기술되어 있다. 애플리케이션 서버는 차례로 UI 또는 OM을 통해 이들 셀 내의 값들을 변경하는 것을 지원한다. 이러한 기능은 스프레드시트 클라이언트에 의해서도 지원될 수 있다.
당업자라면 잘 알 수 있는 바와 같이, 파라미터들을 사용자에게 노출시키는 다양한 방법들이 있다. 예를 들어, 한 예시적이고 비제한적인 실시예에서, 대쉬보드(dashboard)가 이용될 수 있다. 예를 들어, BI(business intelligence) 대쉬보드 등의 오늘날의 대쉬보드는 다양한 데이터 렌더링 웹 부분(예를 들어, SQL Server Reporting Services로부터의 OWC(Office Web Components))을 사용하여 작성되고, 모든 서로 다른 데이터 뷰들을 동기하여 필터링하는 것이 바람직하다. 이것은 모든 웹 부분들을 단일의 "파라미터" 값에 링크함으로써 달성될 수 있다.
스프레드시트 워크북은 따라서 워크북이 유사한 페이지 레벨 필터 및 파라미터를 몰아내어 이하의 시나리오들(이들 각각은 예시적이지 제한하는 것이 아님)을 가능하게 해줄 수 있도록 본 발명에 따라 이들 대쉬보드에 포함될 수 있다. (1) 어떤 셀을 파라미터로서 정의하기 위해 스프레드시트 클라이언트에서 UI 및 OM을 최종 사용자에게 제공한다. (2) 애플리케이션 서버가 UI 및 웹 서비스 API를 통해 파라미터들을 노출시킬 수 있도록 파라미터 정보를 스프레드시트 파일에 존속시킨다. (3) 그 기능이 스프레드시트 클라이언트/서버 시나리오를 위한 것임을 최종 사용자에게 명확히 해주도록 기능 UI 및 진입점을 설계한다. (4) 시스템의 부분들 간의 적절한 통신에 따라 워크북 파라미터들을 구동하기 위해 필터(또는 슬라이서) 웹 부분을 사용하여 BI 대쉬보드를 구축하는 것을 포함하는 애플리케이션 서버 시나리오를 가능하게 해준다. 일 태양에서, 본 발명은 따라서 파라미터에 값을 제공하는 슬라이서 컨트롤을 제공한다.
예를 들어, 회사가 데이터를 수집하고 제조업자, 월가 분석, 중개인 및 소매업자에 대한 판매 시점(Point of Sale) 데이터에 기초하여 스프레드시트 보고서를 작성하고 이들 보고서가 웹을 통해 HTML 파일로 배포되는 것으로 가정하자. HTML 파일로서, 이들 보고서는 완전히 정적이다. 즉, 비지니스 질문에 대한 대답을 찾기 위해 데이터를 필터링하거나 그 보고서 내의 데이터를 탐색하는 방법이 없다. 이 때문에, 그 회사는 고객이 거의 모든 생각가능한 보고서를 원하는 경우 그 보고서가 이용가능하도록 그의 고객들을 위해 100만부가 넘는 이들 보고서를 생성한다. 이것의 결과는 이들 등의 회사가 생성하는 보고서들 중 3-5%만이 일관성있게 사용되며, 이들 회사가 예상하지 않은 사소한 수정이 필요할 때, 분석가가 새로운 보고서를 수작업으로 작성하여 게재해야만 하는데, 이는 비용 및 시간이 많이 드는 프로세스이다.
본 발명의 애플리케이션 서버 및 스프레드시트 웹 부분에 의해, 이러한 회사들은 그의 고객들을 위해 생성되는 보고서의 수를 크게 감소시킬 수 있을 것이며, 이는 회사 돈을 절감해줌과 동시에 고객들이 찾고 있는 정보를 찾는 것을 용이하게 만들어준다. 고객이 원할 수 있는 생각가능한 보고서들 전부를 생성하는 대신에, 본 발명에 의해, 회사는 정확한 데이터 소스로부터 데이터를 뽑아내는 기본 보고서 세트를 생성하여 서버 상의 스프레드시트 워크북에 집어 넣을 수 있다. 이들 보고서가 현재의 수많은 보고서들("YTD 매출액 NW", "SW", "NE", "SE", "제품별", "제품별 NW", "제품별 SW", "제품별 SE" 등) 대신에 고객들이 쉽게 이해할 수 있는 "YTD 매출액" 등의 기본 보고서가 된다. 간단한 파라미터화로, 고객들은 가장 흥미를 끄는 정보를 보기 위해 이들 보고서를 커스터마이즈하고 다양한 치수에 따라 필터링할 수 있을 것이다. 게다가, 고객이 특정의 보고서의 드릴 다운(drill down) 또는 특정의 제품 라인에 대한 "상위 10개"를 보고자 하는 경우, 고객은 기존의 보고서 내에서 즉각 그렇게 할 수 있고 회사에 새로운 보고서를 생성하도록 요청할 필요가 없을 것이다.
본 발명의 다른 예시적인 사용에서, John은 그의 상위 관리자를 위해 주간 매출액 보고서를 생성한다. 오늘, John은 외부 데이터와의 연결을 갖는 워크북을 가지고 있으며, 매주마다 그는 그 데이터를 새로 고침하고, 이어서 몇몇은 그가 일하고 있는 다양한 지역에 대해 필터링된 워크북의 스냅샷을 가지고 있다. 이어서, 그는 이들 이미지를 이메일에 첨부하여 개요 메일을 관리자들에게로 전송한다.
그렇지만, 본 발명의 스프레드시트 소프트웨어를 설치한 후에, John은 그의 워크북이 이전보다 더 알아보기 쉽도록 하기 위해 그 워크북을 재작성한다. 그는 또한 그의 워크북의 상단에 지역을 말해주는 하나의 셀을 갖는다. 스프레드시트 서버에의 게시 동작 동안에, John은 어떤 셀을 파라미터로 설정하고 그 지역 셀을 워크북 파라미터로서 설정하기로 결정한다. 워크북이 애플리케이션 서버에 로드될 때, 그의 관리자들은 편집가능한 지역 필드를 포함하는 새로운 작업창이 나타나는 것을 본다. 관리자들은 다른 지역을 입력하고 적용(Apply)을 클릭하여 그들이 입력한 지역에 대한 갱신된 데이터 및 워크북을 볼 수 있다.
다른 예로서, Samantha는 그녀의 조직에서의 고위 VP에 대한 대쉬보드를 작성하고 있으며 그 대쉬보드가 주요 성과 지표(key performance indicator, KPI), 그래프, 및 데이터 시트(이들 모두 하나의 관리하기 쉬운 필터 컨트롤로 이루어짐)를 디스플레이하기를 원한다. Samantha는 몇개의 애플리케이션 서버, 몇몇 KPI 및 필터(슬라이서) 컨트롤을 갖는 페이지를 작성한다. Samantha는 이어서 다 마치고 나서 프로젝트 이름에 대한 필터값들을 페이지 상의 다양한 부분에 집어 넣기 위해 필터 컨트롤을 할당한다. 이것은 관리자가 다른 프로젝트로 필터링하고 대쉬보드 상의 모든 부분들이 그에 따라 업데이트되는 것을 볼 수 있게 해준다.
하나의 비제한적인 실시예에서, 셀들의 서브셋만이 파라미터로서 선택될 수 있다. 이들이 어떻게 선택되는지, 이용가능한 파라미터의 리스트가 언제 어디에 저장되는지, 및 파라미터 특징에 관련된 OM에 대해 이하에서 더 상세히 기술된다.
일 실시예에서, 문서를 게시하는 사용자에 의해 결정된 대화상자에서, 워크북 파라미터를 지정하는 UI는 2개의 대화 상자, 워크북 내의 기존의 정의된 파라미터를 보여주는 대화상자 및 파라미터에 대해 선택할 이용가능한 이름 참조의 리스트를 갖는 대화상자(모든 셀이 파라미터로서 선택될 수 있는 것은 아니지만, 상기한 바와 같이, 이러할 필요는 없음)를 포함한다.
이 대화상자는 게시/관리 서버 설정 대화상자의 일부로서 개시되고, 탭이 있는 대화상자, 기존의 정렬 대화상자(순서화 기능을 가짐) 등의 임의의 적당한 형태로 되어 있을 수 있다.
입력 시에, 현재의 워크북에 정의된 현재의 파라미터가 리스트에 로드된다. 현재의 워크북에 정의된 파라미터가 없는 경우, 리스트가 비어 있다. 어느 경우든지, 대화상자에 처음으로 들어갈 때 리스트에서 파라미터가 선택되지 않는다.
한 예시적이고 제한하는 것이 아닌 구현에서, 파라미터 리스트는 이하의 것들 중 임의의 하나 이상을 포함한다. (A) 이름(Name): 선택된 파라미터의 이름(기본값으로, 리스트는 이름에 의해 오름차순(A-Z)으로 정렬될 수 있음), (B) 값(Value): 문자열 상수(string constant), 이름이 말하는 현재값, 또는 에러 코드를 반환함, (C) 주석(comment): 이름과 연관된 임의의 주석, 및 (D) 참조(Refers to): 파라미터가 기초하고 있는 이름이 현재 참조하는 것.
하나의 비제한적인 실시예에서, 파라미터 리스트는 표준의 리스트 컨트롤처럼 기능한다. 예를 들어, (행의 어딘가에서) 파라미터를 한번 클릭함으로써 리스트에서 하나 이상의 파라미터를 선택하는 것이 가능하고, 마우스 및 키보드에 의한 통상의 리스트 제어 거동과 유사하게 다중 선택이 이용가능하다. 예를 들어, 파라미터가 (예를 들어, 마우스 포인터 또는 화살키로) 선택될 수 있고, 파라미터가 이미 선택된 임의의 다른 파라미터에 부가하여 선택될 수 있으며, 파라미터가 이미 선택된 임의의 다른 파라미터 및 이 선택과 이전의 선택 사이의 파라미터에 부가하여 선택될 수 있고, 파라미터들이 마우스 포인터로 클릭 드래그함으로써 선택될 수 있다.
다른 비제한적인 실시예에서, "Add(추가)" 버튼 또는 기능은 적어도 하나의 유효한 이름이 있는지를 알아보기 위해 검사를 하고 파라미터 부가 대화상자를 기동시키며, "Delete(삭제)" 버튼은 사용자가 이전에 추가되었던 하나 이상의 파라미터를 삭제할 수 있게 해준다. 이와 유사하게, 하나 이상의 파라미터가 선택되어 있을 때 "Delete" 버튼을 누르면 (리스트로부터 그리고 파일의 저장 시에) 그 파라미터들에 대한 삭제가 개시된다. 파라미터 추가 대화상자(add parameter dialog)로부터 복귀할 때, 한 예시적이고 비제한적인 실시예에서, 검사된 파라미터는 리스트의 하단에 파라미터 추가 대화상자에 나타난 것과 동일한 순서에 따라 정렬되어 있다.
한 예시적이고 비제한적인 실시예에서, 사용자는 위쪽 및 아래쪽 화살표 버튼을 사용함으로써, 또 다른 예시적이고 비제한적인 실시예에서, 파라미터가 파라미터를 순서화하는 수단으로 구현될 수 있는 경우 드래그/드롭함으로써 파라미터를 순서화할 수 있다.
파라미터를 저장하는 것과 관련하여, 지정된 파라미터를 저장하고 워크북과 관련시키는 임의의 공지된 수단이 이용될 수 있다. 예시적이고 비제한적인 구현에서, 워크북 파라미터는 숨겨진 문서 프로퍼티 등의 문서 프로퍼티에 및/또는 워크북 파일에 저장될 수 있다. 전자는 애플리케이션 서버에 의한 파라미터의 용이한 추출을 가능하게 해주고 슬라이서 컨트롤 및 부가적인 해결책을 갖는 대쉬보드를 설정하기 위한 고속 검색을 가능하게 해준다. 파일을 저장 또는 게시할 때 워크북 파라미터가 저장될 수 있다.
한 예시적이고 비제한적인 실시예에서, 각각의 파라미터에 대해 저장되는 정보는 각각의 사용자에 대해 입력되는 정보와 동일하지만, 부가적인 정보도 저장될 수 있다. 즉, 파라미터 저장 형식이 본 발명에 따라 확장가능하다. 각각의 파라미터에 대해 이하의 프로퍼티들, 정의된 이름, 애플리케이션 서버 UI 또는 OM에서 이름들이 나타나는 순서도 저장될 수 있다.
예시적이고 비제한적인 실시예에서, 워크북 레벨에서의 ServerParameter들의 ServerParameters 컬렉션은 표 1로부터의 이하의 것들을 포함할 수 있으며, ServerParameter 개체는 이하의 표 2에 있는 멤버들을 포함할 수 있다.
Add | 메서드 | Name, order | 컬렉션에 파라미터를 추가함. 선택된 이름이 유효한 파라미터가 아닌 경우, 추가는 에러를 반환함 |
Item | 개체 | iParameters | 사용자가 번호를 지정하고 이는 대응하는 파라미터를 반환함 |
Count | 프로퍼티 | 파라미터의 수를 반환하는 읽기 전용 프로퍼티 | |
Delete | 메서드 | Name | 컬렉션으로부터 파라미터를 삭제함. 컬렉션에 그 이름의 파라미터가 없는 경우 에러를 반환함 |
Clear | 메서드 | 모든 파라미터를 제거함 | |
Order |
Name | 프로퍼티 | 파라미터의 이름 |
Order | 프로퍼티 | 파라미터의 순서 |
Delete | 메서드 | 컬렉션으로부터 파라미터를 제거 |
애플리케이션 서버를 통해 셀의 컨텐츠를 편집
이 섹션은 일반적으로 사용자가 애플리케이션 서버를 거쳐, SPS(SharePoint Portal Server) 필터 또는 애플리케이션 서버 자신의 워크북 파라미터 작업창을 통해 셀의 컨텐츠를 편집하는 기능에 대해 기술한다. 그렇지만, 당업자라면 셀의 컨텐츠를 편집하는 대안의 공지의 메카니즘이 본 발명에 따라 이용될 수 있다는 것과 이하의 구현 상세가 예시를 위해 제공된다는 것을 잘 알 수 있다.
어떤 배경으로서, SPS가 스프레드시트 서버에 의해 수행되는 어떤 작업을 위해 사용된다. 본 명세서에서 예시적인 실시예들에 기술된 바와 같이, 애플리케이션 서버는, 그 중에서도 특히, 스프레드시트 워크북을, 예를 들어, DHTML(dynamic hypertext markup language)으로서 렌더링하는 웹 일부이다. CS(Calculation Server, 계산 서버)는 계산 엔진이고, 일반적으로 스프레드시트 서버의 백엔드 컴포넌트(backend component)를 포함한다. 본 명세서에 기술된 바와 같이, WFE(Web Front End, 웹 프런트 엔드)는 애플리케이션 서버, API(application programming interface) 및 프록시를 포함하는 스프레드시트 서버의 프런트 페이싱 컴포넌트(front facing component)를 포함한다.
이전의 섹션에서 기술된 바와 같이, 본 발명에 따른 워크북 파라미터는 워크북 작성자가 그의 워크북에서 셀의 서브셋을 선택하고 이들을 사용자에 의해 편집가능한 것으로 표시하는 방법을 포함한다. 이들 셀은 이어서 워크북의 문서 프로퍼티에 저장되고 애플리케이션 서버 자체 내의 작업창을 통해 또는 SPS 필터를 통해 최종 사용자에게 노출될 수 있다. 이 섹션은 그 해결책들을 위한 다양한 예시적이고 비제한적인 구현에 대해 기술한다.
도 4A는 본 발명에 따른 파라미터를 갖는 애플리케이션 서버를 나타낸 예시적이고 비제한적인 UI 스크린샷을 나타낸 것이다. 본 발명에 의해, 사용자는 컴포넌트 다운로드를 필요로 하지 않고 애플리케이션 서버를 사용하여 파라미터를 설정할 수 있다.
이 점에서, 본 발명은 사용자가 스프레드시트 클라이언트 소프트웨어로 복귀할 필요없이 통상의 작업을 완료할 수 있도록 다양한 파라미터화 시나리오를 지원한다. 예를 들어, 파라미터화는, 본 명세서에 기술된 바와 같이, SPS 슬라이서 인터페이스로 행해진다. 이 점에서, 본 발명은 사용자가 다른 웹 부분을 구동하기 위해 애플리케이션 서버로부터 파라미터를 획득할 수 있게 해준다.
본 발명의 애플리케이션 서버에 따라 달성될 수 있는 어떤 예시적이고 비제한적인 시나리오에서, 편집가능한 셀을 갖는 워크북을 작성하는 작업이 생각된다. 예를 들어, John이 그의 상사를 위해 주간 매출액 보고서를 작성하는 것으로 가정하자. 오늘, John은 외부 데이터와의 연결을 갖는 워크북을 가지고 있으며, 매주 그 데이터를 새로 고침하고, 이어서 몇개는 그들이 일하는 다양한 지역에 대해 필터링된 워크북의 스냅샷을 가지고 있다. 그는 이어서 이들 이미지를 이메일에 첨부하고 개요 메일을 관리자들에게 전송한다.
그렇지만, 적절한 소프트웨어를 설치한 후에, John은 시트 데이터에 편승하고 시트 데이터를 사용하여 그의 워크북이 이전보다 더 알아보기 쉽도록 하기 위해 이를 재작성한다. 그는 또한 그의 워크북의 상단에 지역을 말해주는 하나의 셀을 갖는다. 스프레드시트 서버에의 게시 동안에, John은 본 발명을 통해 어떤 셀을 파라미터로 설정할 수 있다는 것을 알고 그 지역 셀을 워크북 파라미터로서 설정하기로 결정한다. 워크북이 애플리케이션 서버에 로드될 때, John은 편집가능한 지역 필드를 포함하는 새로운 작업창이 나타나는 것을 보고 흥분한다. John은 'South'를 입력하고 "Apply"를 클릭하고 애플리케이션 서버가 남부 지역에 대해 모두 갱신된 데이터로 새로 고침하는 것을 본다. 이제, John은 이들 주간 상태 메일을 또다시 전송할 필요가 없다.
다른 시나리오에서, 본 발명은 대쉬보드의 작성을 가능하게 해준다. 예를 들어, Sam은 그의 조직 내의 상사 VP를 위해 대쉬보드를 작성하고 있으며 그 대쉬보드가 주요 성과 지표(KPI), 그래프 및 데이터 시트(이들 모두가 하나의 관리하기 쉬운 필터 컨트롤로 작성됨)를 디스플레이하기를 원한다. 본 발명에 따르면, Sam은 몇개의 '네이키드(naked)' 애플리케이션 서버, 몇몇 KPI 및 SPS 슬라이서 컨트롤을 갖는 페이지를 설정한다. Sam은 이어서 다 마치고 나서 페이지 상의 다양한 부분들 전부로부터 필터값으로 받아들일 슬라이스 컨트롤을 할당하고, 그들 각각을 하나의 "Report(보고서)" 컨트롤에 할당한다.
이제, VP가 대쉬보드 페이지로 가서 리스트로부터 보고서를 선택할 때, 시트, 그래프 및 KPI 지표 모두는 그 보고서에 있는 데이터를 반영하기 위해 갱신되는 데, 그 이유는 Sam이 모든 워크북을 선택된 보고서에 기초하여 필터링하도록 설정했기 때문이다.
본 발명의 예시적이고 비제한적인 구현에 따라, 워크북 파라미터가 문서 프로퍼티에 저장될 수 있고, CS가 워크북 프로퍼티에 대한 변경을 사설 API를 통해 CS에 적용하는 기능을 포함한다.
일 실시예에서, 본 발명은 사용자가 페이지를 전송할 때마다 변환기를 통해 파라미터 및 슬라이서 내의 그에 대해 설정된 값들에의 액세스를 제공하는 인터페이스를 제공한다.
SPS 슬라이서와 본 발명의 컨트롤 간의 연결을 설정하기 위해, 본 발명의 한 예시적이고 비제한적인 실시예에서, 사용자는 애플리케이션 서버가 있는 페이지에 대한 디자인 코드로 가서 "Filter web part zone(필터 웹 부분 구역)"에 필터 컨트롤을 드롭하기 시작한다. 사용자는 이어서 컨트롤의 우측 상부에 있는 화살표를 클릭하고, 이 드롭다운에서, 사용자는 Connection(연결)을 선택하고 Connection으로부터의 플라이아웃 메뉴(flyout menu)는 "Get Filter Values From(필터값 가져오기)" 옵션을 포함하며, 이 옵션은 {SpreadsheetWebRenderer}로의 플라이아웃(flyout)을 야기한다.
사용자가 애플리케이션 서버를 선택한 후에, 사용자는 애플리케이션 서버가 노출하고 있는 미할당된 파라미터의 리스트로부터 선택하도록 프롬프트되거나, 사용자가 다중값 필터 컨트롤로부터 연결을 설정하려고 시도한 경우, 사용자는 애플리케이션 서버가 어떤 다중값 파라미터도 노출시키고 있지 않다고 말해주는 메시지를 수신하고, 사용자는 그 필터 컨트롤을 사용하여 애플리케이션 서버에의 연결을 설정할 수 없다. 사용자가 단일값 컨트롤로부터 연결을 설정하려고 시도하고 있는 것으로 가정하면, 사용자는 이어서 리스트로부터 파라미터를 선택하고, 컨트롤이 이어서 설정된 것으로 간주된다. 하나의 비제한적인 실시예에서, 파라미터가 필터 컨트롤에 연결되고 워크북 파라미터 작업창이 보이는 경우, 파라미터가 작업창에서 디스에이블된다.
한 비제한적인 실시예에서, 단일 셀 파라미터가 슬라이서로부터 단일값을 받고, 그렇게 하는 이유는 모든 파라미터에 대해 본 발명이 "SupportsSingleValue" 플래그를 슬라이서로 전달하기 때문이다. 이것은 슬라이서가 단지 사용자가 단일값 필터 요소로부터 단일셀 파라미터로의 연결을 설정할 수 있게 해줄 수 있다는 것을 의미한다.
한 예시적이고 비제한적인 실시예에서, 값들이 이름-값 쌍으로서 CS로 전송되고, 따라서 파라미터들이 전부 CS로 전송될 필요가 있는 것은 아니며 이들의 순서도 중요하지 않다. 오동작의 경우에 본 발명에 따라 적절한 에러 핸들링이 적용될 수 있다.
본 발명의 예시적이고 비제한적인 실시예에서, 확장/축소 막대(Expand/Collapse Bar)가 워크북 파라미터 작업창의 옆에 제공되며, 예를 들어, 그의 좌측 또는 우측에(그렇지만, 각각 시트의 우측 또는 좌측) 있으며, 사용자가 작업창을 감추거나 보여줄 수 있게 해준다. 도구막대가 확장/축소 막대 및 워크북 파라미터 작업창 둘다의 상부에 배치될 수 있다.
확장/축소 막대는 작업창이 축소 또는 확장되는지에 의존하는 이미지를 포함하며, 이 이미지는 수직 및 수평 둘다에서 중앙에 있다. 예시적이고 비제한적인 실시예에서, 사용되는 이미지는 다음과 같다.
작업창이 보일 때 확장/축소 막대를 클릭하면 작업창을 감추게 되고, 확장/축소 막대를 애플리케이션 서버의 먼쪽에 있는 오른쪽 모서리(또는 RTL(right to left) 모드에서 좌측 모서리)로 이동시키고, 격자 및 시트 내비게이션 막대가 그와 함께 폭이 증가된다. 작업창이 숨겨져 있을 때 확장/축소 막대를 클릭하면 작업창을 드러나게 하고, 확장/축소 막대를 밖으로 이동시키며, 격자의 폭 및 시트 내비게이션 막대를 축소시킨다.
사용자는 또한 확장/축소 막대에 탭을 붙이고 ENTER 키를 사용하여 이를 작동시킬 수 있다.
축소되거나 확장된 작업장의 상태는 CS로의 포스트백(postback)을 통해 유지된다. 따라서, 사용자가 작업창을 축소시키고 이어서 CS로의 포스트백을 필요로 하는 동작을 수행하는 경우, 페이지가 재로드될 때, 작업창은 축소된 채로 있어야만 한다.
한 예시적이고 비제한적인 실시예에서, 워크북 파라미터 작업창이 도구막대(아래쪽에 위치함)를 제외한 애플리케이션 서버에서의 모든 컨트롤의 오른쪽(RTL 모드에서 왼쪽)에 보이기 시작한다.
대응하는 텍스트박스에서 디스플레이할 파라미터 및 디스플레이할 것이 CS에 의해 애플리케이션 서버로 전달된다. 다양한 비제한적인 실시예들에서, 워크북 파라미터 작업창의 보디에 명명된 범위 이름 및 사용자가 데이터를 입력할 수 있는 텍스트박스가 있다.
예시를 위해, 작업창에 대한 UI의 예시적인 구현이 도 4B에 도시되어 있다. 사용자가 처음으로 애플리케이션 서버를 열 때, 이 워크북에 대한 파라미터가 있고 워크북 파라미터 작업창이 웹 부분 프로퍼티를 통해 디스에이블되지 않은 경우, 워크북 파라미터 작업창이 보이기 시작한다. 일 실시예에서, 파라미터들은 이들이 CS에 의해 애플리케이션 서버로 전달되는 순서와 동일한 순서로 워크북 파라미터 작업창에 디스플레이된다.
다른 실시예들에서, 도 4C에 도시된 바와 같이, 사용자가 텍스트박스의 아이콘 위를 지나갈(hover) 때 설명 프로퍼티가 툴팁 TTIP으로서 보여진다. 사용되는 아이콘은 그 셀에 대한 주석이 있음을 사용자에게 알려주기 위해 스프레드시트에서 사용되는 것과 동일할 수 있다. 설명 프로퍼티(Description property)가 선택적이기 때문에, 설명 값이 제공되지 않는 경우, 이 아이콘이 보여지지 않으며, 툴팁이 보여지지 않는다. 마우스 커서는 선택에 따라서는 이 이미지의 상부에 있을 때 포인터인 채로 있을 수 있다.
작업창에 들어갈 수 있는 것보다 더 많은 파라미터가 있는 경우, 본 발명의 일 실시예에서, 파라미터 및 그의 값을 포함하는 작업창의 단지 일부분만을 담당하는 스크롤바가 나타난다. 사용자가 뷰어 페이지에 있는 파라미터를 갖는 워크북을 보고 있는 경우, 작업창이 보이게 된다. 사용자는 확장/축소 막대를 사용하여 이 작업창을 감추거나 보여줄 수 있다. 정보 막대는 2가지 상태, 페이지가 디자인 모드에 있을 때의 한 상태와 페이지가 보기 모드에 있을 때에 대한 또하나의 상태를 갖는다.
본 발명에 의해 지원될 수 있는 또하나의 유형의 파라미터는 다수의 값을 받을 수 있는 피벗테이블 페이지 필드(PivotTable Page Field)이다.
계산 서버의 동작 및 애플리케이션 서버와의 상호작용
상기한 바와 같이, 본 발명에 따르면, 스프레드시트 서버는 워크북이 파라미터화되는 기능을 포함하고 있다. 애플리케이션 서버를 통해 애플리케이션을 호출하는 것은 파라미터 리스트를 요청하고 그의 값을 설정하는 기능을 포함한다. 상기한 바와 같이, 애플리케이션 서버는 웹을 통해 워크북을 렌더링하는 웹 렌더러를 포함한다. 이 점에서, 파라미터는 워크북 작성자가 단일의 또는 다수의 파라미터의 값에 기초하여 그의 컨텐츠를 신속하게 변경할 수 있는 단일의 템플릿 스프레드시트를 생성할 수 있게 해준다.
예를 들어, 워크북 작성자는 모기지 계산기를 설계하고 이율, 원금, 및 계약금(down payment) 파라미터를 생성한다. 사용자는 파라미터를 적용하고 셀은 적절한 결과를 계산하여 반환한다. 파라미터는 또한 단일의 웹 페이지가 슬라이서의 값에 기초하여 모두가 동기되어 있을 수 있는 다수의 웹 부분들로 이루어져 있는 BI(business intelligence) 대쉬보드 시나리오에 애플리케이션 서버가 참여할 수 있게 해준다.
BI 대쉬보드는 상태 및 구동 동작을 전달하는 도구이며, 종종 보고서, 차트, 메트릭 및 주요 성과 지표로서 제공되는 정량적 정보와 제공된 정량적 데이터에 관한 대쉬보드 작성자의 주석으로서 제공되는 정성적 분석의 혼합이다.
워크북 파라미터는 애플리케이션 서버를 호출함으로써 발견되고 설정될 수 있는 워크북과 연관된 변수이다. 내부적으로, 파라미터는 파라미터로서 "태그"되어 있는 단일-셀 명명된 범위이다.
대쉬보드의 기능들 중 하나는 (슬라이서 웹 부분을 사용하여) 파라미터의 값에 기초하여 필터링 및 슬라이싱될 수 있다는 것이다. BI 대쉬보드의 일부인 애플리케이션 서버에서 렌더링되고 있는 워크북의 경우, 애플리케이션 서버는 BI 대쉬보드에 할당된 파라미터를 반영하기 위해 "갱신"되어야만 한다.
이를 달성하기 위해, 본 발명에 따라 웹 부분들이 어느 파라미터(들)를 포함하고 있는지를 웹 부분들이 전달하는 메카니즘 및 그 파라미터들의 값을 설정하는 메카니즘이 제공된다.
스프레드시트 서버가 이 시나리오에 참여하기 위해, 사용자가, 예를 들어, 쉐어포인트 슬라이서 부분(Sharepoint slicer part)에서 파라미터를 변경할 때, 애플리케이션 서버에 디스플레이되는 스프레드시트 워크북은 슬라이서(들)의 값을 반영한다.
본 명세서에 기술된 바와 같이, 호출하는 애플리케이션(애플리케이션 서버)는 워크북과 연관된 파라미터 리스트를 서버에 요구할 수 있다. 예시적인 실시예에서, 파라미터 값을 설정하는 것이 셀의 값을 설정하는 것과 실제적으로 등가이지만, 셀 값을 설정하는 것이 실패했다는 것이 아니라 파라미터 동작이 실패했다는 것을 전달하는 에러 메시지가 사용자에게 제공된다.
본 발명의 다른 태양에서, 파라미터를 설정하는 것과 관련된 워크북 동작들이 최적화된다. 예를 들어, 계산 모드에 상관없이 모든 파라미터값이 설정될 때까지 계산이 일시 정지된다. 그에 부가하여, 본 발명은 파라미터의 정의(예를 들어, 명명된 범위)가 워크북이 로드될 때 파라미터이기 위한 요건을 여전히 만족시키도록 보장해준다. 게다가, 호출하는 애플리케이션(애플리케이션 서버)는 파라미터의 값(단일값)을 설정할 수 있다.
이들 대쉬보드의 소비자는 대쉬보드로 내비게이션하고 파라미터 웹 부분에서 "프로젝트(project)" 파라미터를 변경할 수 있다. 프로젝트 파라미터가 변경되면, 페이지 상의 웹 부분들 전부는 대쉬보드 소비자가 선택한 프로젝트와 연관된 데이터를 반영하기 위해 갱신된다. 애플리케이션 서버의 경우, 파라미터 셀의 값을 함수에의 입력으로서 받는 시트 데이터 공식이 사용될 수 있다.
모기지 계산기는 월 지급금(monthly payment)을 결정하기 위해 몇개의 파라미터를 입력할 것을 요구한다. 이 시나리오에서, 누군가가 워크북을 작성하고 원금, 이율, 대출 기간, 및 계약금에 대한 명명된 범위를 생성한다. 사용자는 이어서 적용 버튼을 누르며, 워크북이 계산되어 사용자에게 그의 월 지급금을 보여준다.
파라미터 정보를 검색하는 것과 관련하여, 계산 서버(CS)는, 이하의 것들 중 하나 이상을 포함하는, 호출하는 애플리케이션이 파라미터 정보를 검색하는 수단을 제공한다. 파라미터 이름, 워크북에서의 파라미터의 순서(애플리케이션 서버가 이들을 제공된 순서로 열거하기 위해), 파라미터의 현재 값 및 파라미터 설명.
파라미터의 이름은 그 파라미터가 차지하는 명명된 범위의 이름이다. 파라미터 순서는 디스플레이하기 위한 파라미터 순서를 정의하고, 다양한 방법 및 형식으로 정의될 수 있다. CS는 이 정보를 호출하는 애플리케이션(애플리케이션 서버)으로 반환할 수 있다. 파라미터의 현재값에 부가하여, 각각의 파라미터는 CS가 호출하는 애플리케이션(애플리케이션 서버)으로도 전달할 수 있는 선택적인 설명을 갖는다.
CS는 애플리케이션 서버가 워크북 내의 각각의 파라미터에 대한 파라미터 값(들)을 설정하는 수단을 제공한다. CS에 대한 단일의 호출에서, 하나 이상의 파라미터 값이 설정될 수 있다. 언급한 바와 같이, 본 발명의 일 태양에서, 포스트백의 일부인 모든 파라미터 값이 설정될 때까지 계산이 일시 정지될 수 있다. 파라미터에 대한 값을 설정하는 것은 SetCell() 메서드를 통해 셀 내의 값을 설정하는 것과 등가이다.
선택에 따라서는, CS는 파라미터의 값에 기초하여 서버 상에서 숫자 형식을 암시적으로도 명시적으로도 변경하려고 하지 않는다.
워크북이 열려 있을 때 계산 및 데이터 새로 고침을 일시 정지하는 것과 관련하여, 본 발명의 CS는, 워크북의 계산 모드 또는 데이터 새로 고침 설정에 상관없이, 워크북이 계산되거나 데이터가 새로 고침되기 이전에 셀 값을 설정하는 기능을 지원한다. 파라미터가 설정되면, 워크북은 워크북이 작성되었던 계산 모드를 반환한다.
일 실시예에서, 애플리케이션 서버는 기본값을 갖는 슬라이서가 페이지 상에 있을 때 열려 있는 워크북의 일부로서 파라미터를 전달한다. 그렇지 않은 경우, 애플리케이션 서버는 워크북을 열라는 그의 요청의 일부로서 파라미터 값을 전달하지 않는다.
워크북이 수동 계산 모드에 있는 경우, 이것은 워크북이 잠재적으로 "더티(dirty)" 계산 상태에 있을 것임을 의미하며, 이 상태로부터 사용자는 파라미터값이 변경됨으로 인한 워크북에서의 변동을 알기 위해 계산을 개시할 수 있다.
모든 워크북 파라미터가 애플리케이션 서버에 의한 파라미터 설정 동작의 결과로서 설정되는 것이 필요 조건은 아니다. 이것은 웹 페이지 상의 슬라이서 부분이 워크북에 정의된 파라미터의 서브셋에 매핑되는 경우에 일어날 수 있다. 이 경우에, 워크북 내의 부가적인 파라미터는 그의 기본 셀 값을 유지한다.
본 발명의 예시적이고 비제한적인 실시예에서, 워크북이 CS에 의해 로드될 때, CS는 워크북에 정의된 파라미터가 파라미터이기 위한 정의된 기준을 여전히 만족시키는지를 검사한다. 이 조건이 만족되지 않는 경우, CS는 에러를 반환한다. 이 검사는 애플리케이션 서버가 설정하려고 시도했던 파라미터만이 아니라 워크북 내의 모든 파라미터에 적용된다. 파라미터이기 위한 기준이 시스템의 원하는 특성, 예를 들어, 파라미터가 무엇인지의 시스템 확실성의 균형 유지 및 파라미터의 설정에서의 사용자 유연성에 기초하여 여러가지로 설정될 수 있다는 것을 잘 알 수 있다.
CS의 계산 엔진에 의해 파라미터를 설정 및 검색하는 것과 관련하여, 파라미터의 설정은 셀 내의 값을 변경하고, 계산 모드에 따라, 워크북이 (수동, 자동)에 있고, 워크북이 계산을 하거나 계산을 하지 않는다.
예시적이고 비제한적인 스크린샷 시퀀스
도 5A 내지 도 5K는 증가(growth)(예를 들어, 은행 계좌의 이율)라고 하는 변수에 기초하여 매출액을 예견하는 워크북에 관한 웹 퍼블리싱 경험과 관련하여 본 발명의 능력을 보여주는 예시적인(비제한적인) UI 스크린샷 시퀀스의 일례를 나타낸 것이다.
도 5A에서, 워크북(500)은 "2005" 매출액이라고 표시되고 2005 매출액에 대해 값 $2000을 각각 제공하는 셀 B3 및 B4를 포함한다. 셀 C3 및 C4는, 각각 "2006" 매출액이라고 표시된 셀이며, 셀 F3에 나타내어진 값 10%을 갖는 "growth"(N2)라고 명명된 증가율에 기초하여 값 $2200을 예견한다. 셀 B3, C3, B4 및 C4는 N1으로 나타내어진 바와 같이 집합적으로 명명된 "Sales(매출액)"이다.
상기한 바와 같이, 워크북(500)이 생성되면, 도 5B는, 대화상자/메뉴(502a)를 통해, 사용자가 워크북을 스프레드시트 서버(추가적인 허가된 사용자가 이 서버로부터 웹 등의 네트워크를 통해, 브라우저 등의 애플리케이션을 통해 워크북을 볼 수 있음)에 게시할 수 있는 프로세스를 설명해주기 시작한다. 예시된 바와 같이, 사용자는 502a에서 워크북(500)을 웹 서버에 게시하는 옵션을 선택할 수 있다.
개시되면, 흐름은 도 5C로 이동하여, 대화상자/메뉴(502a)는 사용자가 워크북의 서브셋을 게시하기로 선택할 수 있다는 것, 즉 워크북(500)이 게시되면 특정의 워크시트 등의 워크북(500)의 일부분이 웹으로부터 액세스될 수 없도록 할 수 있다는 것을 나타낸다. 예를 들어, worksheet3에 위치하는 독점적 공식을 공유하는 것이 워크북 작성자의 관점에서 보면 바람직하지 않을 수 있지만, 이와 동시에, 워크북 작성자는 worksheet3으로부터의 하나 이상의 파라미터를 사용자에게 노출시키고자 할 수 있다.
이어서, 도 5D에 나타낸 바와 같이, 사용자는 502c에서 대화상자 메뉴에서 parameters 탭을 선택할 수 있으며, 이는 워크북(500)의 셀들을 파라미터로서 선택(지정)하는 UI를 실행한다. 선택에 따라서는, 처음에 도 5E에 나타낸 바와 같이 502d에서, UI는 파라미터가 어떻게 정의될 수 있는지에 따라 워크북(500)에 대한 모든 가능한 파라미터를 포함한다. 이어서, 예를 들어, 도 5F에 나타낸 바와 같이 증가 모델에 따르면, 사용자는 502e에서 "growth"를 파라미터로서 선택한다. growth가 이 예에서 유일한 파라미터이지만, 이것은 이해를 돕기 위한 것이다. 당업자라면 스프레드시트 모델 및 식, 그리고 연관된 가정들이 극도로 복잡하게 될 수 있고 따라서 수십개 이상의 파라미터를 관여시킬 수 있다.
502e에서 growth를 파라미터로서 선택하면, 도 5G의 502f에 나타낸 바와 같이, 사용자는 주 퍼블리싱 UI로 복귀되어, growth가 파라미터로서 지정된 것으로 보여진다. 마지막으로, 도 5H에 나타낸 바와 같이, 502g에서, 사용자는 대응하는 "퍼블리시(Publish)" UI 요소를 이용하여 문서를 스프레드시트 서버에 게시한다. 웹을 통해 워크북을 디스플레이하는 옵션을 선택하면, 도 5I에 나타낸 바와 같이, 클라이언트 애플리케이션을 통해 생성된 워크북(500)이 웹 워크북(504)으로서 디스플레이된다. 증가 파라미터(P) 및 편집 박스(EB)를 포함하는 파라미터 리스트(LP)가 워크북(504)의 오른쪽에 디스플레이된다는 것을 알 수 있다. 앞서 언급한 바와 같이, 일 실시예에서, 편집 박스(EB)에 대한 파라미터 값이 입력 및 적용될 때까지, 워크북(504)의 계산 및 디스플레이가 지연 또는 일시 정지될 수 있다. 도 5I에 도시된 비제한적인 스크린샷에서, 워크북(500)의 생성에서 기술된 값들이 기본값으로 디스플레이된다.
그 다음에, 도 5J에서, 사용자는 편집 박스(EB)에서 (도 5I의 계산 및 디스플레이에서 현재 사용되는 10% 대신에) 20%의 새로운 값을 입력하였다. 마지막으로, 사용자는 편집 박스(EB)에 입력된 새로운 값을 적용하고, 도 5K에 나타낸 바와 같이, 계산 서버는 20%의 새로운 파라미터 값에 기초하여 모델을 재계산하고, 워크북(506)은 웹-기반 문서를 디스플레이하기 위한 적절한 변환이 수행된 후에 디스플레이된다. 이 경우에, 10%에서 20%로의 증가율의 변경에 기초하여, 투영된 2006 값이 $2200에서 $2400으로 변경되었음을 알 수 있다. 따라서, 스프레드시트 문서를 서버에 게시하고 개개인의 필요에 기초하여 파라미터들을 개개인에게 노출시키는 것의 이점을 알 수 있다. 예를 들어, 모기지 회사는 자기 자본 계산기(net worth calculator)를 게시하고자 할 수 있으며, 여기서 다양한 파라미터가 전부 파라미터(주택 가치, 주식 가치, 은퇴 계좌, 기타)로서 입력될 수 있고, 따라서 사용자에 대한 계산을 개별적으로 조정할 수 있다. 동시에, 모기지 회사는 그의 사용자로부터 이러한 데이터를 수집할 수 있고 사용자에 대한 그의 전반적인 서비스 제공을 더 잘 조정할 수 있다.
게시 경험에 포함되어 있는 바와 같이 본 명세서의 몇몇 실시예에서 파라미터의 지정에 대해 기술되어 있지만, 독립형 클라이언트 애플리케이션도 역시 본 발명에 따른 파라미터의 지정으로부터 이득을 본다. 그에 따라, 본 발명은 워크북을 웹에 게시하는 시나리오로 제한되는 것으로 간주되어서는 안되며, 그 대신에 청구항의 범위 내에서 정의되는 것으로 간주되어야만 한다.
도 6은 어떤 제한하는 상세를 갖지 않는 상기한 시퀀스와 유사한 흐름도를 나타낸 것이다. 예를 들어, 600에서, 사용자는 워크북을 작성 또는 편집하기로 하고, 610에서, 사용자는 워크북의 파라미터를 지정(단계 620에서 행해질 수 있음)하는 사용자 인터페이스 컴포넌트를 호출한다. 선택에 따라서는, 워크북은 웹을 통해 스프레드시트 문서를 게시하는 스프레드시트 문서 웹 서버에 게시될 수 있다. 장래에, 지정된 파라미터를 포함하는 스프레드시트 문서가 클라이언트에 의해 열리거나 웹 렌더러를 통해 보여질 때, 사설 API는 630에서 스프레드시트 문서에 의해 표현되는 기본 모델을 파라미터화하는 파라미터 리스트를 포함하는 파라미터 정보를 스프레드시트 문서로부터 발견 및 추출하는 동작을 한다. 이어서, 640에서 문서는 디스플레이할 준비가 되어 있으며, 여기서 파라미터 리스트가 노출되고 파라미터 리스트 내의 파라미터를 편집하기 위한 사용자 인터페이스 컴포넌트가 제공된다. 이어서, 선택에 따라서는, 650에서, 워크북 자체가 워크북을 정의하는 파라미터에 대한 초기 값 세트에 기초하여 또는 다른 대안으로서 상기한 바와 같이 디스플레이될 수 있으며, 이러한 계산은 스프레드시트 문서와 연관된 모든 현재의 정보가 수신될 때까지 일시 정지될 수 있다. 660에서, 사용자는 파라미터 리스트 내의 파라미터들 중 하나 이상을 편집할 수 있고, 스프레드시트의 모델에 새로운 파라미터 값을 적용할 것을 요청할 수 있다. 그에 따라, 670에서, 계산 엔진은 사용자에 의해 입력된 새로운 파라미터 값에 기초하여 스프레드시트 문서를 재계산한다(또는 일시 정지된 경우 계산한다).
예시적인 인터페이스 구현
본 발명의 기술들에 따른 2개의 컴퓨터 간에 공유되는 파라미터 데이터 등의 데이터를 다수의 컴퓨터들 사이에서 교환하기 위해, 하드웨어 및/또는 소프트웨어로 구현될 수 있고, 요청 또는 제공되는 관련 애플리케이션 및 서비스에 따라, 어떤 방식으로 데이터를 수신, 전송 및/또는 처리하는 동작을 하는, 각각의 컴퓨터 상에 여러가지 동작들을 처리하는 인터페이스가 있다. 본 발명에 따라 마크업 데이터를 압축 및 압축 해제하는 시스템 및 방법의 임의의 일부분을 달성 또는 구현하기 위해 하나 이상의 인터페이스 개체가 제공될 수 있는 한, 본 발명은 모든 이러한 실시예를 포함하는 것으로 보아야 하며, 따라서 본 발명을 구현 또는 수행할 때 제공 또는 이용될 수 있는 여러 종류의 인터페이스에 대한 일반적인 설명이 이하에 주어진다.
프로그래밍 인터페이스(또는 보다 간단히 "인터페이스")는 하나 이상의 코드 세그먼트(들)가 하나 이상의 다른 코드 세그먼트(들)와 통신을 하거나 그에 의해 제공되는 기능에 액세스할 수 있게 해주는 임의의 메카니즘, 프로세스, 프로토콜로 볼 수 있다. 다른 대안으로서, 프로그래밍 인터페이스는 다른 컴포넌트(들)의 하나 이상의 메카니즘(들), 메서드(method)(들), 함수 호출(들), 모듈(들) 등과 통신 연결될 수 있는 시스템의 컴포넌트의 하나 이상의 메카니즘(들), 메서드(들), 함수 호출(들), 모듈(들), 개체(들) 등으로 볼 수 있다. 이전의 문장에서의 용어 "코드 세그먼트"는 하나 이상의 명령어 또는 코드 라인(line of code)을 포함시키기 위한 것이며, 적용되는 전문 용어 또는 코드 세그먼트가 개별적으로 컴파일되는지 여부 또는 코드 세그먼트가 소스 코드(source code), 중간 코드(intermediate code) 또는 오브젝트 코드(object code)로서 제공되는지, 코드 세그먼트가 런타임 시스템 또는 프로세스에서 이용되는지, 또는 이들이 동일한 또는 서로 다른 기계 상에 위치하는지 또는 다수의 기계에 걸쳐 분산되어 있는지, 또는 코드 세그먼트로 표현된 기능이 전적으로 소프트웨어로, 전적으로 하드웨어로, 또는 하드웨어와 소프트웨어의 조합으로 구현되는지에 상관없이, 예를 들어, 코드 모듈, 개체, 서브루틴, 함수 등을 포함한다.
개념상, 프로그래밍 인터페이스는 일반적으로 도 7A 또는 도 7B에 도시된 바와 같이 생각될 수 있다. 도 7A에서는 인터페이스(Interface1)를 도관(conduit)으로 나타내고 있는데, 이 도관을 통해 제1 및 제2 코드 세그먼트가 통신을 한다. 도 7B는 인터페이스를 인터페이스 개체(I1, I2)(제1 및 제2 코드 세그먼트의 일부일 수 있거나 그 일부가 아닐 수 있음)를 포함하는 것으로 나타내고 있으며, 이들 인터페이스 개체가 시스템의 제1 및 제2 코드 세그먼트로 하여금 매체(M)를 통해 통신을 할 수 있게 해준다. 도 7B를 보면, 인터페이스 개체(I1, I2)를 동일한 시스템의 개별적인 인터페이스로 볼 수 있으며, 또한 개체(I1, I2)와 매체(M)가 인터페이스를 구성하는 것으로도 볼 수 있다. 도 7A 및 도 7B가 양방향 흐름을 나타내고 이 흐름의 양쪽에 인터페이스를 나타내고 있지만, 어떤 구현은 단지 한쪽 방향으로의 정보 흐름만을 가질 수 있거나(또는 이하에 기술되는 바와 같이 정보 흐름이 없음) 단지 한쪽에만 인터페이스 개체를 가질 수 있다. 제한이 아닌 예로서, 응용 프로그래밍 인터페이스(API), 진입점(entry point), 메서드, 함수, 서브루틴, 원격 프로시저 호출(remote procedure call), 및 컴포넌트 개체 모델(component object model, COM) 인터페이스 등의 용어는 프로그래밍 인터페이스의 정의 내에 포함된다.
이러한 프로그래밍 인터페이스의 측면들은 제1 코드 세그먼트가 정보를 제2 코드 세그먼트로 전송하는 메서드(여기서, "정보"는 그의 최광의로 사용되며, 데이터, 명령, 요청 등을 포함함), 제2 코드 세그먼트가 그 정보를 수신하는 메서드, 및 그 정보의 구조, 시퀀스, 구문, 구성(organization), 스키마, 타이밍 및 내용을 포함할 수 있다. 이 점에서, 그 정보가 인터페이스에 의해 정의된 방식으로 전송되는 한, 기본적인 전송 매체 자체가 인터페이스의 동작에 중요하지 않을 수 있으며, 그 매체가 유선이나 무선이든 또는 이 둘의 조합이든 상관없다. 어떤 상황에서, 정보가 종래의 의미에서 한쪽 방향 또는 양쪽 방향으로 전달되지 않을 수 있는데, 그 이유는 정보 전송이 또 다른 메카니즘을 통하거나(예를 들어, 코드 세그먼트 간의 정보 흐름과 별도로 정보가 버퍼, 파일 등에 배치됨), 한 코드 세그먼트가 단지 다른 코드 세그먼트에 의해 수행되는 기능에 액세스하는 때와 같이, 정보 전송이 존재하지 않을 수 있기 때문이다. 이들 측면 중 임의의 것 또는 그 모두가, 예를 들어, 코드 세그먼트가 소결합된 구성(loosely coupled configuration) 또는 밀결합된 구성(tightly coupled configuration)에서 시스템의 일부인지에 따라, 주어진 상황에서 중요할 수 있으며, 따라서 이 리스트는 예시적인 것이지 제한하는 것이 아닌 것으로 보아야 한다.
프로그래밍 인터페이스의 이러한 개념은 당업자에게는 잘 알려져 있으며, 본 발명의 이상의 상세한 설명으로부터 분명하다. 그렇지만, 프로그래밍 인터페이스를 구현하는 다른 방식들이 있으며, 명시적으로 배제되지 않는 한, 이들도 역시 본 명세서의 끝부분에 서술되어 있는 청구 범위에 의해 포함되는 것으로 보아야 한다. 이러한 기타 방식들이 도 7A 및 도 7B에 극도로 단순화하여 나타낸 것보다 더 정교하거나 복잡한 것처럼 보일 수 있지만, 이들은 그럼에도 불구하고 동일한 전체적인 결과를 달성하기 위해 유사한 기능을 수행한다. 이제부터 프로그래밍 인터페이스의 몇몇 예시적인 대안 구현들에 대해 간략하게 기술한다.
A. 인수 분해
한 코드 세그먼트로부터 다른 코드 세그먼트로의 통신은 그 통신을 다수의 개별적인 통신으로 나눔으로써 간접적으로 달성될 수 있다. 이것은 도 8A 및 도 8B에 개략적으로 도시되어 있다. 도시된 바와 같이, 몇몇 인터페이스는 분할가능한 기능 세트의 관점에서 설명될 수 있다. 따라서, 마치 수학적으로 24 또는 2 x 2 x 3 x 2를 제공할 수 있는 것과 같이, 도 7A 및 도 7B의 인터페이스 기능이 동일한 결과를 달성하도록 인수분해될 수 있다. 따라서, 도 8A에 나타낸 바와 같이, 동일한 결과를 달성하면서 인터페이스의 통신을 다수의 인터페이스(Interface1A, Interface1B, Interface1C, 기타)로 변환하기 위해, 인터페이스(Interface1)에 의해 제공되는 기능이 세분될 수 있다. 도 8B에 나타낸 바와 같이, 인터페이스(I1)에 의해 제공되는 기능은 동일한 결과를 달성하면서 다수의 인터페이스(I1a, I1b, I1c, 기타)로 세분될 수 있다. 이와 유사하게, 제1 코드 세그먼트로부터 정보를 수신하는 제2 코드 세그먼트의 인터페이스(I2)는 다수의 인터페이스(I2a, I2b, I2c, 기타)로 인수분해될 수 있다. 인수분해를 할 때, 제1 코드 세그먼트에 포함된 인터페이스의 수가 제2 코드 세그먼트에 포함된 인터페이스의 수와 일치할 필요는 없다. 도 8A 및 도 8B의 경우 중 어느 하나에서, 인터페이스(Interface1, I1)의 기능상 핵심(functional spirit)은 도 7A 및 도 7B와 각각 여전히 동일하다. 인터페이스의 인수분해는 또한 결합(associative), 교환(commutative) 및 기타 수학적 성질을 따를 수 있으며, 따라서 인수분해를 알아내기가 어려울 수도 있다. 예를 들어, 동작의 순서는 중요하지 않을 수 있으며, 그 결과 인터페이스에 의해 수행되는 기능이 인터페이스에 도달하기 훨씬 이전에 다른 코드 또는 인터페이스에 의해 수행되거나 시스템의 별도의 컴포넌트에 의해 수행될 수 있다. 게다가, 프로그래밍 분야의 당업자라면 동일한 결과를 달성하는 서로 다른 함수 호출을 행하는 다양한 방식이 있다는 것을 잘 알 수 있다.
B. 재정의
어떤 경우에, 의도한 결과를 여전히 달성하면서 프로그래밍 인터페이스의 어떤 측면들(예를 들어, 파라미터)을 무시, 추가 또는 재정의하는 것이 가능할 수 있다. 이것이 도 9A 및 도 9B에 도시되어 있다. 예를 들어, 도 7A의 인터페이스(Interface1)가 함수 호출 Square(input, precision, output)(이 호출은 3개의 파라미터, input(입력), precision(정도(程度)) 및 output(출력)을 포함하고 제1 코드 세그먼트로부터 제2 코드 세그먼트로 발행됨)을 포함하는 것으로 가정하자. 중간 파라미터 precision이 주어진 시나리오에서 중요하지 않은 경우, 도 9A에 도시된 바와 같이, 이것도 역시 무시되거나 심지어 의미없는(이 상황에서) 파라미터로 대체될 수 있다. 또한, 중요하지 않은 부가의 파라미터를 추가할 수도 있다. 여하튼간에, 제2 코드 세그먼트에 의해 입력이 제곱된 후에 출력이 반환되는 한, 제곱의 기능이 달성될 수 있다. precision(정도)는 확실히 컴퓨터 시스템의 어떤 다운스트림 또는 다른 부분에 의미있는 파라미터일 수 있다. 그렇지만, 정도(precision)가 제곱을 계산하는 좁은 목적에 필요하지 않은 것으로 인식되는 경우, 이는 대체되거나 무시될 수 있다. 예를 들어, 유효한 정도(precision) 값을 전달하는 대신에, 결과에 악영향을 주지 않고 생일 등의 의미없는 값이 전달될 수 있다. 이와 유사하게, 도 9B에 도시된 바와 같이, 인터페이스(I1)가 인터페이스(I1')로 대체되고, 파라미터를 무시하거나 파라미터를 인터페이스에 추가하도록 재정의된다. 인터페이스(I2)도 이와 유사하게 인터페이스(I2')로 재정의될 수 있으며, 불필요한 파라미터 또는 다른 곳에서 처리될 수 있는 파라미터를 무시하도록 재정의될 수 있다. 여기서의 요점은 어떤 경우에 프로그래밍 인터페이스가 어떤 목적에 필요하지 않는 파라미터 등의 측면들을 포함할 수 있으며 따라서 이들이 무시 또는 재정의되거나 다른 목적으로 다른 곳에서 처리될 수 있다는 것이다.
C. 인라인 코딩
또한, 2개의 개별적인 코드 모듈의 기능의 일부 또는 그 전부를 병합하여 이들 간의 "인터페이스"의 형태가 변경되도록 하는 것이 가능할 수 있다. 예를 들어, 도 7A 및 도 7B의 기능이 도 10A 및 도 10B의 기능으로 각각 변환될 수 있다. 도 10A에서, 도 7A의 이전의 제1 및 제2 코드 세그먼트가 이들 둘다를 포함하는 모듈로 병합된다. 이 경우에, 이들 코드 세그먼트는 여전히 서로 통신을 할 수 있지만 그 인터페이스는 단일의 모듈에 더 적합한 형태로 개조될 수 있다. 따라서, 예를 들어, 형식적인 Call 및 Return문이 더 이상 필요하지 않을 수 있지만, 인터페이스(Interface1)에 따른 유사한 처리 또는 응답(들)은 여전히 유효할 수 있다. 이와 유사하게, 도 10B에 도시된 바와 같이, 도 7B로부터의 인터페이스(I2)의 일부(또는 그 전부)는 인터페이스(I1) 내에 인라인으로 작성되어 인터페이스(I1")를 형성할 수 있다. 도시된 바와 같이, 인터페이스(I2)는 I2a 및 I2b로 나누어지고, 인터페이스 부분(I2a)은 인터페이스(I1)에 인라인 코딩되어 인터페이스(I1")를 형성한다. 구체적인 예에 있어서, 도 7B로부터의 인터페이스(I1)가 함수 호출 square(input, output)를 수행하고, 이것이 인터페이스(I2)에 의해 수신되며, 인터페이스(I2)가, 제2 코드 세그먼트에 의해 (input(입력)을 제곱하기 위해) input(입력)으로 전달된 값을 처리한 후에, 제곱된 결과를 output(출력)으로 다시 전달하는 것을 생각해보자. 이러한 경우에, 제2 코드 세그먼트에 의해 수행되는 처리(input을 제곱하는 것)는 인터페이스에 대한 호출 없이 제1 코드 세그먼트에 의해 수행될 수 있다.
D. 분리
한 코드 세그먼트로부터 다른 코드 세그먼트로의 통신은 그 통신을 다수의 개별적인 통신으로 나눔으로써 간접적으로 달성될 수 있다. 이것은 도 11A 및 도 11B에 개략적으로 도시되어 있다. 도 11A에 도시된 바와 같이, 제1 인터페이스(Interface1)를 통한 통신을 다른 인터페이스(이 경우에, 인터페이스(Interface2A, Interface2B, Interface2C))에 부합하도록 그 통신을 변환하기 위해, 하나 이상의 미들웨어(들)(분리 인터페이스(divorce interface)(들). 왜냐하면 이들이 기능 및/또는 인터페이스 함수를 원래의 인터페이스로부터 분리시키기 때문임)가 제공된다. 이것은 예를 들어 Interface1 프로토콜에 따라, 이를테면, 운영 체제와 통신을 하도록 설계되어 있는 베이스 애플리케이션(base of application)이 설치되어 있지만 그 운영 체제가 다른 인터페이스(이 경우에, 인터페이스(Interface2A, Interface2B, Interface2C))를 사용하도록 변경되어 있는 경우에 행해질 수 있다. 여기서의 요점은 제2 코드 세그먼트에 의해 사용되는 원래의 인터페이스가 변경되어 더 이상 제1 코드 세그먼트에 의해 사용되는 인터페이스와 호환되지 않게 되고 따라서 이전의 인터페이스와 새로운 인터페이스가 호환되도록 하기 위해 매개물이 사용된다는 것이다. 이와 유사하게, 도 11B에 도시된 바와 같이, 제3 코드 세그먼트가 인터페이스(I1)로부터 통신을 수신하기 위해 분리 인터페이스(DI1)에 도입될 수 있고 인터페이스 기능을 예를 들어 인터페이스(I2a, I2b)(DI2에 대해 동작하지만 동일한 기능상 결과를 제공하도록 재설계되어 있음)로 전송하기 위해 분리 인터페이스(DI2)에 도입될 수 있다. 이와 유사하게, DI1 및 DI2는 협력하여 도 7B의 인터페이스(I1, I2)의 기능을 동일 또는 유사한 기능상 결과를 제공하면서 새로운 운영 체제에 맞게 변환시킬 수 있다.
E. 재작성
또 다른 가능한 변형예는 인터페이스 기능을 다른 무언가로 대체시키지만 동일한 전체적인 결과를 달성하는 코드를 동적으로 재작성하는 것이다. 예를 들어, 실행 환경(.Net 프레임워크, Java 런타임 환경 또는 다른 유사한 런타임 유형 환경에 의해 제공되는 것 등)에서 중간 언어(intermediate language)(예를 들어, Microsoft IL, Java ByteCode, 기타)로 제공되는 코드 세그먼트가 JIT(Just-in-Time) 컴파일러 또는 인터프리터(interpreter)에 제공되는 시스템이 있을 수 있다. JIT 컴파일러는 제1 코드 세그먼트로부터의 통신을 제2 코드 세그먼트로 동적으로 변환하도록, 즉 그 통신을 제2 코드 세그먼트(원래의 또는 다른 제2 코드 세그먼트 중 어느 하나)에 의해 필요로 될 수 있는 다른 인터페이스에 부합시키도록 작성될 수 있다. 이것은 도 12A 및 도 12B에 도시되어 있다. 도 12A에서 알 수 있는 바와 같이, 이 방식은 상기한 분리(Divorce) 시나리오와 유사하다. 이는, 예를 들어, 설치된 베이스 애플리케이션이 Interface1 프로토콜에 따라 운영 체제와 통신을 하도록 설계되어 있지만 운영 체제가 다른 인터페이스를 사용하도록 변경되는 경우에 행해질 수 있다. 설치된 베이스 애플리케이션으로부터의 동작 중인 통신을 운영 체제의 새로운 인터페이스에 부합시키기 위해 JIT 컴파일러가 사용될 수 있다. 도 12B에 도시된 바와 같이, 인터페이스(들)를 동적으로 재작성하는 이 방식은 또한 인터페이스(들)를 동적으로 인수분해하거나 다른 방식으로 변경하기 위해 적용될 수 있다.
또한 유의할 점은 대안적인 실시예를 통해 인터페이스와 동일한 또는 유사한 결과를 달성하기 위한 상기한 시나리오들이 또한 여러가지 방식으로, 직렬로 및/또는 병렬로, 또는 다른 중재 코드로 조합될 수 있다는 것이다. 따라서, 이상에 제공된 대안적인 실시예는 상호 배타적이지 않으며, 도 7A 및 도 7B에 제공된 일반적인 시나리오들과 동일한 또는 동등한 시나리오를 생성하기 위해 혼합(mix), 정합(match) 및 결합(combine)될 수 있다. 또한, 유의할 점은, 대부분의 프로그래밍 구조(programming construct)에서와 같이, 본 명세서에 기술되어 있지 않을 수 있지만 그럼에도 불구하고 본 발명의 정신 및 범위에 의해 표현되는 인터페이스의 동일 또는 유사한 기능을 달성하는 다른 유사한 방식들이 있다는 것이다. 즉, 유의할 점은 적어도 부분적으로 인터페이스에 의해 표현되는 기능 및 그에 의해 가능하게 되는 유익한 결과들이 인터페이스의 가치의 근간을 이룬다는 것이다.
본 발명을 구현하는 다수의 방법, 예를 들어, 애플리케이션 및 서비스가 본 발명의 워크북 파라미터를 제공하고 인에이블하는 시스템 및 방법을 사용할 수 있게 해주는 적절한 API, 툴 킷(tool kit), 드라이버 코드, 운영 체제, 컨트롤, 독립형 또는 다운로드가능한 소프트웨어 개체 등이 있다. 본 발명은 본 발명에 따라 다운로드된 프로그램을 수신하는 소프트웨어 또는 하드웨어 개체로부터 뿐만 아니라 API(또는 기타 소프트웨어 개체)의 관점에서 본 발명을 사용하는 것을 생각하고 있다. 따라서, 본 명세서에 기술된 본 발명의 다양한 구현이 전적으로 하드웨어인 측면, 부분적으로 하드웨어이고 부분적으로 소프트웨어인 측면은 물론 소프트웨어인 측면을 가질 수 있다.
상기한 바와 같이, 본 발명의 예시적인 실시예들이 다양한 컴퓨팅 장치 및 네트워크 아키텍처와 관련하여 기술되어 있지만, 기본적인 개념들이 워크북 파라미터를 갖는 것이 바람직한 임의의 컴퓨팅 장치 또는 시스템에 적용될 수 있다. 예를 들어, 본 발명의 알고리즘(들) 및 하드웨어 구현이 컴퓨팅 장치의 운영 체제에 적용될 수 있고, 장치 상의 별도의 개체로서, 다른 개체의 일부로서, 재사용가능한 컨트롤으로서, 서버로부터 다운로드가능한 개체로서, 장치 또는 개체와 네트워크 간의 "미들 맨(middle man)"으로서, 분산 개체로서, 하드웨어로서, 메모리에, 이상의 것들 중 임의의 것의 조합으로 제공된다. 예시적인 프로그래밍 언어, 이름 및 예들이 다양한 선택을 나타내는 것으로 본 명세서에서 선택되고 있지만, 이들 언어, 이름 및 예를 제한하는 것으로 보아서는 안된다. 당업자라면 본 발명의 다양한 실시예들에 의해 달성되는 동일한, 유사한 또는 등가의 기능을 달성하는 개체 코드 및 용어를 제공하는 수많은 방법이 있다는 것을 잘 알 것이다.
언급된 바와 같이, 본 명세서에 기술된 다양한 기술들이 하드웨어 또는 소프트웨어 또는, 적절한 경우, 이 둘의 조합과 관련하여 구현될 수 있다. 따라서, 본 발명의 방법 및 장치 또는 그의 어떤 태양 또는 일부분이, 플로피 디스켓, CD-ROM, 하드 드라이브, 또는 임의의 다른 기계-판독가능 저장 매체 등의, 유형 매체로 구현되는 프로그램 코드(즉, 명령어)의 형태를 가질 수 있으며, 여기서 프로그램 코드가 컴퓨터 등의 기계로 로드되어 그에 의해 실행될 때, 그 기계는 본 발명을 실시하는 장치가 된다. 프로그램가능 컴퓨터 상에서의 프로그램 코드 실행의 경우에, 컴퓨팅 장치는 일반적으로 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 요소를 포함함), 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치를 포함한다. 예를 들어, 데이터 처리 API, 재사용가능 컨트롤 등의 사용을 통해, 본 발명의 워크북 파라미터를 구현 또는 이용할 수 있는 하나 이상의 프로그램은 양호하게는 컴퓨터 시스템과 통신하기 위해 상위 레벨 절차적 또는 개체 지향 프로그래밍 언어로 구현될 수 있다. 그렇지만, 프로그램(들)은, 원하는 경우, 어셈블리 또는 기계어로 구현될 수 있다. 어쨋든, 이 언어는 컴파일된 또는 인터프리트된 언어일 수 있고 하드웨어 구현과 결합될 수 있다.
본 발명의 방법 및 장치는 또한 전기 배선 또는 케이블을 거쳐, 광 섬유를 통해, 또는 임의의 다른 형태의 전송을 통하는 등의 어떤 전송 매체를 통해 전송되는 프로그램 코드의 형태로 구현된 통신을 통해 실시될 수 있으며, 여기서 프로그램 코드는 EPROM, 게이트 어레이, PLD(programmable logic device), 클라이언트 컴퓨터 등의 기계에 의해 수신되고 그에 로드되어 실행될 때, 이 기계는 본 발명을 실시하는 장치가 된다. 범용 프로세서 상에서 구현될 때, 이 프로그램 코드는 프로세서와 결합하여 본 발명의 기능을 호출하는 동작을 하는 독자적인 장치를 제공한다. 그에 부가하여, 본 발명과 관련하여 사용되는 임의의 저장 기술이 항상 하드웨어 및 소프트웨어의 조합일 수 있다.
본 발명이 여러 도면들의 양호한 실시예와 관련하여 기술되어 있지만, 다른 유사한 실시예들이 사용될 수 있거나 본 발명을 벗어나지 않고 본 발명의 동일한 기능을 수행하기 위해 기술된 실시예들에 대해 변경 및 추가가 행해질 수 있다는 것을 잘 알 것이다. 예를 들어, 본 발명의 예시적인 네트워크 환경이 피어 투 피어 네트워크화된 환경 등의 네트워크화된 환경과 관련하여 기술되어 있지만, 당업자라면 본 발명에 그에 제한되지 않으며, 본 출원에 기술된 방법들이 게임 콘솔, 핸드헬드 컴퓨터, 휴대용 컴퓨터 등의 임의의 컴퓨팅 장치 또는 환경(유선이든 무선이든 상관없음)에 적용될 수 있고 통신 네트워크를 통해 접속되고 네트워크를 거쳐 상호작용하는 임의의 수의 이러한 컴퓨팅 장치들에 적용될 수 있다는 것을 잘 알 것이다. 게다가, 특히 무선 네트워크화된 장치의 수가 계속 급증함에 따라, 핸드헬드 장치 운영 체제 및 기타 애플리케이션 관련 운영 체제를 비롯한 다양한 컴퓨터 플랫폼이 생각된다는 것이 강조되어야만 한다.
예시적인 실시예가 특정의 프로그래밍 언어 구조와 관련하여 본 발명을 이용하는 것을 말하고 있지만, 본 발명은 그렇게 한정되지 않으며, 오히려 본 발명에 따라 워크북 파라미터를 제공하고 인에이블하기 위해 임의의 언어로 구현될 수 있다. 또한, 본 발명은 복수의 처리 칩 또는 장치에서 또는 그에 걸쳐 구현될 수 있으며, 저장도 이와 유사하게 복수의 장치들에 걸쳐 실시될 수 있다. 따라서, 본 발명은 임의의 하나의 실시예로 제한되어서는 안 되며, 오히려 첨부된 청구항들에 따라 폭 및 범위가 해석되어야만 한다.
Claims (20)
- 컴퓨터로 구현되며, 웹-기반 스프레드시트 서비스를 통해, 스프레드시트 문서로 표현되는 모델과 연관된 하나 이상의 파라미터의 리스트를 검출하는 방법에 있어서,클라이언트에 의해, 상기 클라이언트에서 상기 스프레드시트 문서를 디스플레이 디바이스 상에 디스플레이하도록 렌더링하기 위해 웹-기반 스프레드시트 서버에게 상기 스프레드시트 문서의 전송을 요청하는 단계 -상기 스프레드시트 문서는 복수의 셀을 포함하고, 상기 복수의 셀 중 제 1 서브셋은 상기 모델과 연관된 파라미터로서 지정되는 셀을 포함하고 상기 복수의 셀 중 제 2 서브셋은 상기 모델과 연관된 파라미터로서 지정되지 않는 셀을 포함하며, 상기 제 1 서브셋의 셀들 각각은 사용자로부터 상기 모델의 계산에 적용하기 위한 입력을 수신하도록 지정되고, 상기 제 2 서브셋의 셀들 각각은 상기 사용자로부터의 입력을 수신하도록 지정되지 않음- 와;상기 클라이언트에 의해, 상기 스프레드시트 문서로 표현된 상기 모델과 연관된 하나 이상의 파라미터의 리스트를 검색(retrieve)하는 단계 -상기 하나 이상의 파라미터의 리스트는 각각의 파라미터에 대한 이름(name) 및 각 파라미터 이름과 연관된 임의의 주석(comments)을 포함하고, 상기 하나 이상의 파라미터의 리스트 내의 각 파라미터는 상기 제 1 서브셋의 셀에 대응함- 와;상기 클라이언트에 의해, 상기 파라미터 리스트 내의 상기 하나 이상의 파라미터에 대응하는 상기 제 1 서브셋의 셀들 내의 값을 편집하는 사용자 인터페이스(UI; user interface) 컴포넌트를 제공하는 단계 -상기 제 1 서브셋의 셀들 각각 및 제 2 서브셋의 셀들 각각은 모두 상기 UI 컴포넌트에서 디스플레이되고, 상기 제 1 서브셋의 셀들 각각은 상기 제 2 서브셋의 셀들 각각과 상이하게(distinctly) 자동으로 디스플레이되어 상기 제 1 서브셋의 셀들 각각이 상기 사용자로부터 상기 모델의 계산에 적용하기 위한 입력을 수신하도록 지정됨을 나타냄- 를 포함하는파라미터 리스트 검출 방법.
- 제1항에 있어서,상기 검색하는 단계는 애플리케이션 프로그래밍 인터페이스를 통해 상기 파라미터 리스트를 찾아내는 단계를 포함하는파라미터 리스트 검출 방법.
- 제1항에 있어서,상기 사용자 인터페이스 컴포넌트는 상기 파라미터 리스트가 연관되는 상기 스프레드시트 문서에 인접하게 디스플레이되는파라미터 리스트 검출 방법.
- 제3항에 있어서,상기 사용자 인터페이스 컴포넌트는 작업창(taskpane)인파라미터 리스트 검출 방법.
- 제1항에 있어서,상기 검색하는 단계는 상기 사용자 인터페이스 컴포넌트를 통해 상기 파라미터 리스트를 요청하는 단계를 포함하는파라미터 리스트 검출 방법.
- 제5항에 있어서,상기 요청하는 단계는 상기 사용자 인터페이스 컴포넌트의 적어도 하나의 메뉴 명령을 통해 상기 파라미터 리스트의 디스플레이를 요청하는 단계를 포함하는파라미터 리스트 검출 방법.
- 제1항에 있어서,상기 검색하는 단계는 상기 파라미터 리스트를 파라미터 이름의 리스트로서 디스플레이하는 단계 및 사용자 인터페이스 컨트롤을 디스플레이하는 단계를 포함하고, 각각의 파라미터 이름은 상기 파라미터 이름으로 표현된 상기 스프레드시트 문서의 셀에 대한 상기 사용자에 의한 입력을 수신하기 위한 적어도 하나의 사용자 인터페이스 컨트롤과 연관되는파라미터 리스트 검출 방법.
- 컴퓨터로 구현되며, 웹-기반 스프레드시트 서비스를 통해, 스프레드시트 문서로 표현되는 모델과 연관된 하나 이상의 파라미터의 리스트의 파라미터 편집을 가능하게 하는 방법에 있어서,클라이언트에 의해, 상기 클라이언트에서 상기 스프레드시트 문서를 디스플레이 디바이스 상에 디스플레이하도록 렌더링하기 위해 웹-기반 스프레드시트 서버에게 상기 스프레드시트 문서의 전송을 요청하는 단계 -상기 스프레드시트 문서는 복수의 셀을 포함하고, 상기 복수의 셀 중 제 1 서브셋은 상기 모델과 연관된 파라미터로서 지정되는 셀을 포함하고 상기 복수의 셀 중 제 2 서브셋은 상기 모델과 연관된 파라미터로서 지정되지 않는 셀을 포함하며, 상기 제 1 서브셋의 셀들 각각은 사용자로부터 상기 모델의 계산에 적용하기 위한 입력을 수신하도록 지정되고, 상기 제 2 서브셋의 셀들 각각은 상기 사용자로부터 입력을 수신하도록 지정되지 않음- 와;상기 클라이언트에 의해, 상기 스프레드시트 문서로 표현된 상기 모델과 연관된 하나 이상의 파라미터의 리스트를 검색하는 단계 -상기 하나 이상의 파라미터의 리스트는 각각의 파라미터에 대한 이름(name) 및 각 파라미터 이름과 연관된 임의의 주석(comments)을 포함하고, 하나 이상의 파라미터의 리스트 내의 각 파라미터는 상기 제 1 서브셋의 셀에 대응함- 와;상기 클라이언트에 의해, 사용자 인터페이스(UI) 컴포넌트를 통해, 상기 스프레드시트 문서로 표현된 상기 모델과 연관된 하나 이상의 파라미터의 리스트 중 적어도 하나의 파라미터에 대한 편집을 수신하는 단계 -상기 제 1 서브셋의 셀들 각각 및 제 2 서브셋의 셀들 각각은 모두 상기 사용자 인터페이스(UI) 컴포넌트에서 디스플레이되고, 상기 제 1 서브셋의 셀들 각각은 상기 제 2 서브셋의 셀들 각각과 상이하게 자동으로 디스플레이되어 상기 제 1 서브셋의 셀들 각각이 상기 사용자로부터 상기 모델의 계산에 적용하기 위한 입력을 수신하도록 지정됨을 나타냄- 를 포함하는파라미터 편집을 가능하게 하는 방법.
- 제8항에 있어서,상기 클라이언트에 의해, 상기 수신된 편집에 관한 데이터를 상기 서버에게 전송하는 단계와;상기 클라이언트에 의해, 상기 편집에 관한 데이터에 기초하여 재계산된 모델을 수신하는 단계를 더 포함하는파라미터 편집을 가능하게 하는 방법.
- 제9항에 있어서,상기 클라이언트에 의해, 상기 재계산된 모델을 표현하는 스프레드시트 문서를 상기 서버로부터 수신하는 단계를 더 포함하고,상기 클라이언트는 상기 모델과 연관된 모든 정보가 상기 모델과 연관된 현재의 정보를 자동적으로 획득하는 것과 상기 편집을 통해 사용자로부터 상기 현재의 정보를 수신하는 것 중 하나 이상에 의해 현재의 것으로 될 때까지 상기 스프레드시트 문서의 디스플레이를 일시 정지하는파라미터 편집을 가능하게 하는 방법.
- 컴퓨터로 구현되며, 웹-기반 스프레드시트 서비스를 통해, 스프레드시트 문서로 표현된 모델과 연관된 하나 이상의 파라미터의 리스트 지정을 가능하게 하는 방법에 있어서,클라이언트에 의해, 상기 스프레드시트와 분리된 사용자 인터페이스 컴포넌트를 제공하는 단계와,상기 클라이언트에 의해, 상기 사용자 인터페이스 컴포넌트를 통해, 상기 스프레드시트 문서의 셀의 제 1 서브셋에 대한 정의를 수신하는 단계 -상기 스프레드시트 문서는 셀의 복수의 서브셋을 포함하고 상기 정의는 상기 제 1 서브셋의 셀들 각각을 상기 스프레드시트 문서로 표현된 상기 모델에 대한 파라미터로서 지정하며, 상기 제 1 서브셋의 셀들 각각은 사용자로부터 상기 모델의 계산에 적용하기 위한 입력을 수신하도록 지정되고, 상기 모델에 대한 파라미터로서 지정되지 않은 상기 스프레드시트 문서의 제 2 서브셋의 셀들 각각은 상기 사용자로부터 입력을 수신하도록 지정되지 않음- 와;상기 클라이언트에 의해, 정의된 상기 파라미터를 상기 모델과 연관된 하나 이상의 파라미터의 리스트로 로딩하는 단계 -상기 하나 이상의 파라미터의 리스트는 각 파라미터에 대한 이름 및 각 파라미터 이름과 연관된 임의의 주석을 포함함- 와;상기 클라이언트에 의해, 상기 사용자 인터페이스 컴포넌트를 통해, 상기 파라미터의 리스트가 제 2 클라이언트에서 디스플레이되는 순서를 명시하는 명령을 수신하는 단계와;상기 클라이언트에 의해, 상기 제 2 클라이언트에서의 렌더링을 위해 상기 스프레드시트 문서를 전송하라는 요청을 수신하는 단계와;상기 클라이언트에 의해, 상기 스프레드시트 문서 및 상기 파라미터의 리스트를 상기 제 2 클라이언트에게 제공하는 단계를 포함하는파라미터의 리스트 지정을 가능하게 하는 방법.
- 제11항에 있어서,상기 클라이언트에 의해, 정의를 수신하는 상기 단계에 따라 지정되는 상기 제 1 서브셋의 셀들 각각을 나타내는 정보를 포함하는 파라미터 정보를 상기 스프레드시트 문서와 함께 저장하는 단계를 더 포함하는파라미터의 리스트 지정을 가능하게 하는 방법.
- 제12항에 있어서,상기 저장하는 단계 후에, 상기 제 2 클라이언트에 의해, 상기 스프레드시트 문서와 함께 저장된 상기 파라미터 정보를 요청하는 단계를 더 포함하는파라미터의 리스트 지정을 가능하게 하는 방법.
- 제13항에 있어서,상기 요청하는 단계 후에, 상기 제 2 클라이언트에 의해, 상기 사용자 인터페이스 컴포넌트를 통해, 상기 하나 이상의 파라미터의 리스트를 디스플레이하는 단계를 더 포함하는파라미터의 리스트 지정을 가능하게 하는 방법.
- 제14항에 있어서,상기 하나 이상의 파라미터의 리스트를 디스플레이하는 단계는 파라미터 이름의 리스트를 디스플레이하는 단계 및 사용자 인터페이스 컨트롤을 디스플레이하는 단계를 포함하며, 각각의 파라미터 이름은 입력을 수신하도록 지정된 셀의 제 1 서브셋 내의 상기 파라미터 이름으로 표현된 상기 스프레드시트 문서의 셀과 연관된 값을 편집하는 입력을 수신하는 사용자 인터페이스 컨트롤을 포함하는파라미터의 리스트 지정을 가능하게 하는 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/223,180 | 2005-09-09 | ||
US11/223,180 US7752536B2 (en) | 2005-09-09 | 2005-09-09 | Designating, setting and discovering parameters for spreadsheet documents |
PCT/US2006/035168 WO2007030769A2 (en) | 2005-09-09 | 2006-09-06 | Designating, setting and discovering parameters for spreadsheet documents |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080043327A KR20080043327A (ko) | 2008-05-16 |
KR101312881B1 true KR101312881B1 (ko) | 2013-09-30 |
Family
ID=37836545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087005475A KR101312881B1 (ko) | 2005-09-09 | 2006-09-06 | 스프레드시트 문서의 파라미터의 지정, 설정 및 발견 |
Country Status (16)
Country | Link |
---|---|
US (1) | US7752536B2 (ko) |
EP (1) | EP1920356A4 (ko) |
JP (1) | JP5255443B2 (ko) |
KR (1) | KR101312881B1 (ko) |
CN (1) | CN101258490B (ko) |
AU (1) | AU2006287357B2 (ko) |
BR (1) | BRPI0615572A2 (ko) |
CA (1) | CA2618211C (ko) |
IL (1) | IL189152A (ko) |
MY (1) | MY155037A (ko) |
NO (1) | NO20080596L (ko) |
NZ (1) | NZ594997A (ko) |
RU (1) | RU2421797C2 (ko) |
TW (1) | TWI416342B (ko) |
WO (1) | WO2007030769A2 (ko) |
ZA (1) | ZA200802171B (ko) |
Families Citing this family (79)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7010779B2 (en) * | 2001-08-16 | 2006-03-07 | Knowledge Dynamics, Inc. | Parser, code generator, and data calculation and transformation engine for spreadsheet calculations |
US7716231B2 (en) * | 2004-11-10 | 2010-05-11 | Microsoft Corporation | System and method for generating suggested alternatives for visual or audible submissions |
US7640490B2 (en) * | 2004-12-20 | 2009-12-29 | Microsoft Corporation | Method, system, and computer-readable medium for controlling the calculation of volatile functions in a spreadsheet |
EP1859375A4 (en) * | 2005-03-11 | 2010-11-10 | Suresh Sambandam | SYSTEM AND METHOD FOR DEFINING A HIERARCHICAL DATA MODEL AND SUCH DATA PROCESSING AND INSTRUCTION RULES WITH SPREADSHEET LDXE USER INTERFACE |
US7587665B2 (en) * | 2005-03-15 | 2009-09-08 | Microsoft Corporation | Method and computer-readable medium for providing spreadsheet-driven key performance indicators |
US20110145689A1 (en) * | 2005-09-09 | 2011-06-16 | Microsoft Corporation | Named object view over multiple files |
US20070061699A1 (en) * | 2005-09-09 | 2007-03-15 | Microsoft Corporation | Named object view of electronic data report |
US8161372B2 (en) | 2005-12-09 | 2012-04-17 | Microsoft Corporation | Extensible value types in cells |
US20090006466A1 (en) * | 2005-12-09 | 2009-01-01 | Microsoft Corporation | Managing extensible value types in spreadsheet cells |
US8904340B2 (en) * | 2007-02-13 | 2014-12-02 | International Business Machines Corporation | Use of temporary optimized settings to reduce cycle time of automatically created spreadsheets |
US20090019348A1 (en) * | 2007-07-13 | 2009-01-15 | Rodney Kuhn Haffnerson King | Fractal Grid Hierarchical Presentation Of Information |
US10133719B2 (en) * | 2007-09-28 | 2018-11-20 | Microsoft Technology Licensing, Llc | Spreadsheet workbook part libraries |
US8190987B2 (en) * | 2007-10-25 | 2012-05-29 | Microsoft Corporation | Private views of data and local calculations during real time collaboration |
US8407668B2 (en) * | 2007-10-26 | 2013-03-26 | Microsoft Corporation | Model based spreadsheet scripting language |
US8006175B2 (en) * | 2007-10-29 | 2011-08-23 | Microsoft Corporation | Calculation of spreadsheet data |
US9501453B2 (en) * | 2007-12-23 | 2016-11-22 | Salesforce.Com Inc. | Method and system for a flexible-data column user interface |
US20090305200A1 (en) * | 2008-06-08 | 2009-12-10 | Gorup Joseph D | Hybrid E-Learning Course Creation and Syndication |
US8239357B1 (en) * | 2008-09-12 | 2012-08-07 | Ryan, LLC | Method and system for extracting information from electronic data sources |
US9229922B2 (en) * | 2008-09-30 | 2016-01-05 | Apple Inc. | Token representation of references and function arguments |
US20100107095A1 (en) * | 2008-10-24 | 2010-04-29 | Microsoft Corporation | Template-based calculator application |
US8195792B2 (en) * | 2009-01-16 | 2012-06-05 | Microsoft Corporation | Interfacing distinct services for providing web based document manipulation access |
US9459936B2 (en) * | 2009-05-01 | 2016-10-04 | Kaazing Corporation | Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications |
US9298686B2 (en) * | 2009-05-14 | 2016-03-29 | Golub Capital, Llc | System and method for simulating discrete financial forecast calculations |
US10198523B2 (en) * | 2009-06-03 | 2019-02-05 | Microsoft Technology Licensing, Llc | Utilizing server pre-processing to deploy renditions of electronic documents in a computer network |
US20100332969A1 (en) * | 2009-06-29 | 2010-12-30 | Ramprabhu Jayaraman | Dynamic Use of Device Theme Parameters for Rendering Markup Content |
US20110167057A1 (en) * | 2010-01-04 | 2011-07-07 | Accenture Global Services Gmbh | Modularized service level agreement reporting |
TWI417750B (zh) * | 2010-03-25 | 2013-12-01 | Tatung Co | 取代資料庫存取的方法 |
US8892614B2 (en) * | 2010-06-07 | 2014-11-18 | Texas Instruments Incorporated | Calculator with dynamic computation environment |
US8825745B2 (en) * | 2010-07-11 | 2014-09-02 | Microsoft Corporation | URL-facilitated access to spreadsheet elements |
US9043296B2 (en) | 2010-07-30 | 2015-05-26 | Microsoft Technology Licensing, Llc | System of providing suggestions based on accessible and contextual information |
US9747270B2 (en) | 2011-01-07 | 2017-08-29 | Microsoft Technology Licensing, Llc | Natural input for spreadsheet actions |
US8566740B2 (en) * | 2010-12-03 | 2013-10-22 | Salesforce.Com, Inc. | Interactive data forecasting features for a graphical user interface |
US9721030B2 (en) | 2010-12-09 | 2017-08-01 | Microsoft Technology Licensing, Llc | Codeless sharing of spreadsheet objects |
US9104992B2 (en) | 2010-12-17 | 2015-08-11 | Microsoft Technology Licensing, Llc | Business application publication |
US9304672B2 (en) | 2010-12-17 | 2016-04-05 | Microsoft Technology Licensing, Llc | Representation of an interactive document as a graph of entities |
US9336184B2 (en) | 2010-12-17 | 2016-05-10 | Microsoft Technology Licensing, Llc | Representation of an interactive document as a graph of entities |
US9111238B2 (en) | 2010-12-17 | 2015-08-18 | Microsoft Technology Licensing, Llc | Data feed having customizable analytic and visual behavior |
US9110957B2 (en) | 2010-12-17 | 2015-08-18 | Microsoft Technology Licensing, Llc | Data mining in a business intelligence document |
US9171272B2 (en) | 2010-12-17 | 2015-10-27 | Microsoft Technology Licensing, LLP | Automated generation of analytic and visual behavior |
US9864966B2 (en) | 2010-12-17 | 2018-01-09 | Microsoft Technology Licensing, Llc | Data mining in a business intelligence document |
US9024952B2 (en) | 2010-12-17 | 2015-05-05 | Microsoft Technology Licensing, Inc. | Discovering and configuring representations of data via an insight taxonomy |
US9069557B2 (en) | 2010-12-17 | 2015-06-30 | Microsoft Technology Licensing, LLP | Business intelligence document |
US20130080603A1 (en) | 2011-09-27 | 2013-03-28 | Microsoft Corporation | Fault Tolerant External Application Server |
US9355072B2 (en) * | 2011-09-28 | 2016-05-31 | Google Inc. | Recursive embedding by URL parameterization |
US9069748B2 (en) * | 2011-10-04 | 2015-06-30 | Microsoft Technology Licensing, Llc | Selective generation and display of data items associated with a spreadsheet |
US8990675B2 (en) | 2011-10-04 | 2015-03-24 | Microsoft Technology Licensing, Llc | Automatic relationship detection for spreadsheet data items |
US9588953B2 (en) | 2011-10-25 | 2017-03-07 | Microsoft Technology Licensing, Llc | Drag and drop always sum formulas |
US10546057B2 (en) * | 2011-10-28 | 2020-01-28 | Microsoft Technology Licensing, Llc | Spreadsheet program-based data classification for source target mapping |
US9053083B2 (en) | 2011-11-04 | 2015-06-09 | Microsoft Technology Licensing, Llc | Interaction between web gadgets and spreadsheets |
US9171099B2 (en) | 2012-01-26 | 2015-10-27 | Microsoft Technology Licensing, Llc | System and method for providing calculation web services for online documents |
US20130283147A1 (en) * | 2012-04-19 | 2013-10-24 | Sharon Wong | Web-based collaborative document review system |
US9286284B2 (en) * | 2012-10-15 | 2016-03-15 | International Business Machines Corporation | Data filtering based on a cell entry |
US8856234B2 (en) * | 2013-02-28 | 2014-10-07 | Workiva Llc | System and method for performing distributed asynchronous calculations in a networked environment |
US10140269B2 (en) | 2013-03-12 | 2018-11-27 | Microsoft Technology Licensing, Llc | Viewing effects of proposed change in document before committing change |
US10360297B2 (en) | 2013-06-14 | 2019-07-23 | Microsoft Technology Licensing, Llc | Simplified data input in electronic documents |
US20140372856A1 (en) | 2013-06-14 | 2014-12-18 | Microsoft Corporation | Natural Quick Functions Gestures |
US10664652B2 (en) | 2013-06-15 | 2020-05-26 | Microsoft Technology Licensing, Llc | Seamless grid and canvas integration in a spreadsheet application |
US9026897B2 (en) * | 2013-07-12 | 2015-05-05 | Logic9S, Llc | Integrated, configurable, sensitivity, analytical, temporal, visual electronic plan system |
US9116931B2 (en) * | 2013-07-12 | 2015-08-25 | Logic9S, Llc | Integrated, configurable, analytical, temporal, visual electronic plan system |
US20150135054A1 (en) * | 2013-11-14 | 2015-05-14 | Microsoft Corporation | Comments on Named Objects |
US9990348B2 (en) * | 2014-05-05 | 2018-06-05 | Prasath Nayanar Chandrasekaran | System and method for managing data using a spreadsheet model |
US10140352B2 (en) * | 2014-07-17 | 2018-11-27 | Oracle International Corporation | Interfacing with a relational database for multi-dimensional analysis via a spreadsheet application |
US9910843B2 (en) | 2015-02-03 | 2018-03-06 | Intuit Inc. | Systems, methods and articles for a web-based spreadsheet application |
US9959098B1 (en) | 2015-03-15 | 2018-05-01 | Sigma Sciences Limited | Data processing systems and methods |
US10546055B2 (en) * | 2016-10-20 | 2020-01-28 | Microsoft Technology Licensing, Llc | Join with format modification by example |
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 |
US10452751B2 (en) | 2017-01-09 | 2019-10-22 | Bluebeam, Inc. | Method of visually interacting with a document by dynamically displaying a fill area in a boundary |
US11398298B2 (en) * | 2017-09-26 | 2022-07-26 | 4G Clinical, Llc | Systems and methods for demand and supply forecasting for clinical trials |
US11150635B2 (en) * | 2017-10-02 | 2021-10-19 | Fisher-Rosemount Systems, Inc. | Projects within a process control asset management system |
US11699032B2 (en) * | 2017-11-03 | 2023-07-11 | Microsoft Technology Licensing, Llc | Data set lookup with binary search integration and caching |
PL3718000T3 (pl) * | 2017-12-03 | 2024-02-05 | Thomas Stachura | Tworzenie aplikacji programowej w oparciu o arkusz kalkulacyjny |
US11714394B2 (en) * | 2018-09-28 | 2023-08-01 | Fisher-Rosemount Systems, Inc | Bulk commissioning of field devices within a process plant |
EP3864557A4 (en) | 2018-10-11 | 2022-07-27 | Dealvector, Inc. | EFFECTIVE USE OF SPREADSHEET IN BROWSER ENVIRONMENTS |
US11429557B2 (en) | 2018-10-11 | 2022-08-30 | Dealvector, Inc. | Templatization of spreadsheets in browser environments |
US11429558B2 (en) | 2018-10-11 | 2022-08-30 | Dealvector, Inc. | Mapping tests of spreadsheets in server-browser environments |
CN112883698B (zh) * | 2021-03-22 | 2024-02-06 | 京东科技控股股份有限公司 | 图表生成方法、装置、计算机设备和存储介质 |
CN116050362B (zh) * | 2023-03-23 | 2023-07-04 | 青岛诺亚信息技术有限公司 | 一种Web表格动态数据绑定方法、介质及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003050964A (ja) | 2000-11-30 | 2003-02-21 | Kokusai Zunou Sangyo Kk | 表計算ウェブサーバシステムおよび表計算ウェブシステム |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9009930D0 (en) | 1990-05-02 | 1990-06-27 | Int Computers Ltd | Electronic spreadsheet |
US5095429A (en) * | 1990-08-28 | 1992-03-10 | Pillar Corporation | Method for prioritizing data in financial information system |
US5371675A (en) | 1992-06-03 | 1994-12-06 | Lotus Development Corporation | Spreadsheet program which implements alternative range references |
JPH0737008A (ja) | 1993-06-29 | 1995-02-07 | Hitachi Ltd | 表計算処理装置の表示制御方法 |
US5727161A (en) | 1994-09-16 | 1998-03-10 | Planscan, Llc | Method and apparatus for graphic analysis of variation of economic plans |
GB9516977D0 (en) * | 1995-08-17 | 1995-10-18 | Dreamware Design & Dev Ltd | Processing apparatus and method and computer software therefor |
US5890174A (en) | 1995-11-16 | 1999-03-30 | Microsoft Corporation | Method and system for constructing a formula in a spreadsheet |
JPH10340172A (ja) * | 1997-06-06 | 1998-12-22 | Sharp Corp | データ処理装置及びデータ処理装置制御プログラムを記憶した媒体 |
US5987481A (en) | 1997-07-01 | 1999-11-16 | Microsoft Corporation | Method and apparatus for using label references in spreadsheet formulas |
US6460059B1 (en) | 1998-08-04 | 2002-10-01 | International Business Machines Corporation | Visual aid to simplify achieving correct cell interrelations in spreadsheets |
EP1037157A1 (en) * | 1999-03-05 | 2000-09-20 | International Business Machines Corporation | Method and system for processing different cell protection modes in an electronic spreadsheet |
JP2001118009A (ja) * | 1999-10-18 | 2001-04-27 | Internatl Business Mach Corp <Ibm> | 電子帳票の取得方法、電子帳票システム、電子帳票を取得するプログラムを格納した記憶媒体 |
CA2311866A1 (en) | 2000-01-06 | 2001-07-06 | International Business Machines Corporation | Method and system in an electronic spreadsheet for adding or removing elements from a cell named range according to different modes |
JP2001357088A (ja) * | 2000-06-16 | 2001-12-26 | Denso Corp | パラメトリック機能を有する3次元モデリングシステムと、同システムによるパラメータ編集方法 |
US6988241B1 (en) * | 2000-10-16 | 2006-01-17 | International Business Machines Corporation | Client side, web-based spreadsheet |
US7206997B2 (en) | 2000-12-18 | 2007-04-17 | General Motors Corporation | Functional visualization of spreadsheets |
US6409059B1 (en) * | 2001-01-11 | 2002-06-25 | Nathaniel Calvert | Hand and finger thimbles |
US20030033329A1 (en) | 2001-06-22 | 2003-02-13 | Bergman Eric D. | Method and apparatus for entry and editing of spreadsheet formulas |
US20030120999A1 (en) | 2001-12-21 | 2003-06-26 | Miller Michelle A. | Calculating in spreadsheet cells without using formulas |
US7266763B2 (en) | 2002-11-26 | 2007-09-04 | Microsoft Corporation | User defined spreadsheet functions |
US7205957B2 (en) * | 2003-08-18 | 2007-04-17 | Via Technologies, Inc. | Mechanism for adjusting the operational parameters of a component with minimal impact on graphics display |
-
2005
- 2005-09-09 US US11/223,180 patent/US7752536B2/en active Active
-
2006
- 2006-08-30 TW TW095132059A patent/TWI416342B/zh not_active IP Right Cessation
- 2006-09-06 JP JP2008530243A patent/JP5255443B2/ja not_active Expired - Fee Related
- 2006-09-06 ZA ZA200802171A patent/ZA200802171B/xx unknown
- 2006-09-06 KR KR1020087005475A patent/KR101312881B1/ko not_active IP Right Cessation
- 2006-09-06 CN CN200680033019XA patent/CN101258490B/zh active Active
- 2006-09-06 RU RU2008108992/08A patent/RU2421797C2/ru not_active IP Right Cessation
- 2006-09-06 NZ NZ594997A patent/NZ594997A/xx not_active IP Right Cessation
- 2006-09-06 EP EP06814383.3A patent/EP1920356A4/en not_active Withdrawn
- 2006-09-06 WO PCT/US2006/035168 patent/WO2007030769A2/en active Application Filing
- 2006-09-06 CA CA2618211A patent/CA2618211C/en not_active Expired - Fee Related
- 2006-09-06 AU AU2006287357A patent/AU2006287357B2/en not_active Ceased
- 2006-09-06 MY MYPI20080503A patent/MY155037A/en unknown
- 2006-09-06 BR BRPI0615572-3A patent/BRPI0615572A2/pt not_active Application Discontinuation
-
2008
- 2008-01-31 IL IL189152A patent/IL189152A/en not_active IP Right Cessation
- 2008-02-01 NO NO20080596A patent/NO20080596L/no not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003050964A (ja) | 2000-11-30 | 2003-02-21 | Kokusai Zunou Sangyo Kk | 表計算ウェブサーバシステムおよび表計算ウェブシステム |
Also Published As
Publication number | Publication date |
---|---|
IL189152A0 (en) | 2008-08-07 |
WO2007030769A2 (en) | 2007-03-15 |
IL189152A (en) | 2012-05-31 |
EP1920356A2 (en) | 2008-05-14 |
NZ594997A (en) | 2013-02-22 |
WO2007030769A3 (en) | 2007-05-31 |
RU2008108992A (ru) | 2009-09-20 |
CA2618211C (en) | 2014-02-25 |
TWI416342B (zh) | 2013-11-21 |
EP1920356A4 (en) | 2017-10-04 |
CN101258490B (zh) | 2013-01-23 |
US20070061698A1 (en) | 2007-03-15 |
CN101258490A (zh) | 2008-09-03 |
ZA200802171B (en) | 2009-08-26 |
NO20080596L (no) | 2008-04-01 |
AU2006287357A1 (en) | 2007-03-15 |
JP5255443B2 (ja) | 2013-08-07 |
US7752536B2 (en) | 2010-07-06 |
AU2006287357B2 (en) | 2011-03-24 |
JP2009508237A (ja) | 2009-02-26 |
KR20080043327A (ko) | 2008-05-16 |
TW200723028A (en) | 2007-06-16 |
CA2618211A1 (en) | 2007-03-15 |
RU2421797C2 (ru) | 2011-06-20 |
BRPI0615572A2 (pt) | 2011-05-24 |
MY155037A (en) | 2015-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101312881B1 (ko) | 스프레드시트 문서의 파라미터의 지정, 설정 및 발견 | |
RU2390834C2 (ru) | Способ и устройство для просмотра и взаимодействия с электронной таблицей из веб-браузера | |
US8640022B2 (en) | Integration of spreadsheet objects on web page | |
RU2408074C2 (ru) | Способ, система и устройство для предоставления доступа к моделям рабочих книг через удаленные вызовы функций | |
US7587665B2 (en) | Method and computer-readable medium for providing spreadsheet-driven key performance indicators | |
RU2419853C2 (ru) | Вид отчета электронных данных с поименованными объектами | |
US9058307B2 (en) | Presentation generation using scorecard elements | |
US20100088618A1 (en) | Developing user interface element settings | |
US7908549B2 (en) | Spreadsheet calculation as part of workflow | |
US20080109235A1 (en) | Apparatus and method for creating business process workflows within business intelligence systems | |
EP1922604A2 (en) | Command user interface for displaying selectable functionality controls in a database application | |
US9235561B2 (en) | Contextual report element mapping to web service input parameter | |
KR20080073733A (ko) | 셀 내의 확장 가능 값 형식 | |
KR20140006773A (ko) | 웹 페이지 동작 강화 컨트롤 | |
US20080059437A1 (en) | Data mining system | |
US8230319B2 (en) | Web-based visualization, refresh, and consumption of data-linked diagrams | |
US20070050752A1 (en) | Quick-creating objects in an application | |
JP7339628B2 (ja) | エクセルツールを用いたオンラインレポート作成システム | |
US20120191762A1 (en) | Providing assisted business analysis to users | |
US20140136489A1 (en) | Dashboard collaborator | |
Kopyt | Basic operations in the R software | |
Hatcher | Take a Whirlwind Tour Around SAS 9.2 | |
Vázquez-Ortiz | SQL based development for the management of FMEA and FMECA files | |
Lawson et al. | Implementing Legacy Programs For Quality Engineering in a Spreadsheet Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160818 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170818 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |