KR101377311B1 - 문서에서의 차트 통합 - Google Patents

문서에서의 차트 통합 Download PDF

Info

Publication number
KR101377311B1
KR101377311B1 KR1020087006325A KR20087006325A KR101377311B1 KR 101377311 B1 KR101377311 B1 KR 101377311B1 KR 1020087006325 A KR1020087006325 A KR 1020087006325A KR 20087006325 A KR20087006325 A KR 20087006325A KR 101377311 B1 KR101377311 B1 KR 101377311B1
Authority
KR
South Korea
Prior art keywords
application
host
chart
spreadsheet
data
Prior art date
Application number
KR1020087006325A
Other languages
English (en)
Other versions
KR20080045710A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37856799&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101377311(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080045710A publication Critical patent/KR20080045710A/ko
Application granted granted Critical
Publication of KR101377311B1 publication Critical patent/KR101377311B1/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/543User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Abstract

차트는 호스트 어플리케이션에서 제시된다. 차트는 차트에 대응하는 데이터를 별도의 어플리케이션으로 전달하고 상기 별도의 어플리케이션에서 해당 데이터를 편집하기 위한 기능을 제공함으로써 관리된다. 별도의 어플리케이션에서의 데이터의 프리젠테이션은 호스트 어플리케이션에서의 차트의 프리젠테이션과 별개이다. 별도의 어플리케이션에서 데이터가 편집되는 경우, 데이터에 대한 변경은 호스트 어플리케이션으로 전달된다. 상기 전달된 데이터에 대한 변경은 호스트 어플리케이션에서 차트의 프리젠테이션에 반영된다.
차트, 어플리케이션, 호스트, 스프레드시트, 업데이트, 문서

Description

문서에서의 차트 통합{INTEGRATING CHARTS IN DOCUMENTS}
본 발명은 일반적으로 문서에 차트를 통합하는 것에 관한 것이다.
컴퓨터 디바이스 상에서 태스크를 수행하기 위해 사용가능한 어플리케이션의 수가 증가함에 따라, 이러한 어플리케이션들 사이에서의 균일한(seamless) 사용자 경험에 대한 기대 역시 증가하고 있다. 한 어플리케이션에서 개체(object)를 다룰 때, 그와 동일한 개체가 제2 어플케이션에서 사용되는 경우 동일하게 작용할 것이라는 기대가 존재한다.
그러나, 다수의 어플리케이션이 개체에 대한 그들 자신만의 지원을 제공하기 때문에, 사용자 경험은 이들 어플리케이션 사이에서 자주 변화하게 된다. 예를 들어, 강력한 차트 어플리케이션에서 생성되는 차트는, 사용자가 프리젠테이션(예컨대, 슬라이드쇼) 어플리케이션에서 동일한 차트를 생성하고자 할 때 동일하게 지원되지 않는 경우가 자주 있다. 특정 개체에 있어서, 사용자는 개체를 전혀 생성하지 못할 수도 있다.
특정 어플리케이션은 하나 이상의 다른 어플리케이션으로부터의 개체가 그 어플리케이션이 생성한 문서에 임베디드되도록(embedded) 할 수 있다. 예를 들어, 스프레드시트 어플리케이션에 의해 생성된 테이블은 워드 프로세서 어플리케이션에 의해 생성된 워드 프로세서 문서의 텍스트 사이에 직접 임베디드될 수 있다. 그러나, 각각의 솔루션에 대해, 제1 어플리케이션에서 사용가능했던 모든 기능이 제2 어플리케이션에 임베디드되는 경우의 개체에 대해 여전히 사용가능한 것은 아니다.
예를 들어, 다른 어플리케이션의 문서에 개체를 내장하기 위한 하나의 표준은 개체 링킹 임베딩(OLE; Object Linking and Embedding) 표준이라 지칭된다. OLE는 워싱턴 레드몬드에 있는 마이크로소프트 코퍼레이션에 의해 개발된 복합 문서(compound document) 표준이다. OLE는 개발자가 하나의 어플리케이션을 이용하여 개체를 생성한 후 그것을 제2 어플리케이션에 링크하거나 임베디드되도록 할 수 있다. 임베디드 개체는 자신의 고유 포맷을 보유하고 있으며 자신을 생성한 어플리케이션에 링크되어 있다. 따라서, 해당 개체에 링크된 문서가 편집되고 업데이트되는 경우, 그 개체 자체도 업데이트된다. 그러나, OLE는 종종 임베디드 개체를 이미지로 저장하므로, 큰 파일을 생성한다는 것과 인라인으로 편집될 수 없는 개체를 생성한다는 분명한 단점을 가지고 있다. 사용가능한 다양한 개체 지원 솔루션은 각각의 솔루션과 연관된 다양한 장점 및 단점을 야기한다.
일 실시예는 스프레드시트 문서를 다른 호스트 어플리케이션에서 사용되는 차트 데이터를 위한 소스로서 사용한다. 예전에는, 차트 생성에 직접적으로 관련되지 않은 어플리케이션에 포함된 차트들은 특성 세트가 제거된다는 문제점이 있었다. 차트 생성을 직접 지원하는 스프레드시트 어플리케이션에서 사용가능한 다수의 특성들은 다른 호스트 어플리케이션에서 생성되는 차트에 대해서는 사용할 수 없다. 예를 들어, 스프레드시트 어플리케이션에서 차트와 관련하여 사용될 수 있는 특정 공식 및 소팅 기능은 호스트 어플리케이션에서 사용할 수 없다. 또한, 스프레드시트 어플리케이션에서 생성하기 비교적 간단한 특정 유형의 차트들은 호스트 어플리케이션에서 생성하기가 매우 어려울 수 있다. 본 발명의 일 실시예는 호스트 어플리케이션의 차트를 변경하여, 차트의 데이터가 스프레드시트 문서로부터 획득되도록 한다. 이는 호스트 어플리케이션의 차트가 스프레드시트 어플리케이션의 차트와 동일한 특성 세트를 갖도록 할 뿐 아니라, 차트를 사용하는 경우 스프레드시트 어플리케이션의 편집 능력을 갖게 한다. 따라서, 차트가 다른 호스트 어플리케이션에서 생성되든 스프레드시트 어플리케이션으로부터 임베디드되든, 차트를 사용하고 편집하는 것은 동일하며, 보다 균일한 사용자 경험을 제공하게 된다.
본 발명의 상세한 설명은 실시예에서 이하 더 상세하게 설명되는 개념들을 선택하여 간략한 형식으로 소개하기 위해 제공되는 것이다. 본 발명의 상세한 설명은 특허청구범위의 핵심적인 특징이나 필수 특징들을 나타내기 위한 것이 아니며, 특허청구범위의 범위를 판정하는데 도움을 주고자 사용되는 것도 아니다.
비한정적이고 비망라적인 본 발명의 실시예들이 이하 도면을 참조하여 설명되며, 다르게 특정되지 않는 이상, 다양한 관점에 걸쳐 유사한 참조번호는 유사한 부분을 나타낸다.
도 1은 일 실시예에 따라 사용될 수 있는 예시적 연산 디바이스를 도시하는 도면.
도 2는 프리젠테이션 어플리케이션에 포함된 차트의 예시적 스크린샷을 도시한 도면.
도 3은 프리젠테이션 어플리케이션에 포함된 다른 예시적 스크린샷을 도시한 도면.
도 4는 스프레드시트를 호스트 어플리케이션에 포함된 차트에 대한 차트 데이터의 소스로 사용하기 위한 예시적 시스템의 기능도.
도 5는 차트 데이터의 지속성을 위한 예시적 파일 구조의 기능도.
도 6은 본 발명의 일 실시예에 따라, 호스트 어플리케이션에 포함된 차트의 데이터를 제공하기 위한 스프레드시트와 호스트 어플리케이션 사이의 상호작용의 예시적 과정의 논리 흐름도.
본 발명의 실시예들은 본 명세서의 일부를 형성하고 본 발명을 실시하기 위한 예시적인 특정 실시예들을 도시하는 첨부된 도면을 참조하여 이하에서 보다 충분히 설명된다. 그러나, 실시예들은 다수의 상이한 형태로 구현될 수 있으며, 여기에 제시된 실시예들로 한정되는 것으로 생각되어서는 안된다. 오히려, 이러한 실시예들은 본 개시가 철저하고 완전해지도록 하고, 본 발명의 범위를 당업자에게 충분히 전달하기 위해 제공된다. 본 발명의 실시예들은 방법, 시스템 또는 디바이스로 실시될 수 있다. 따라서, 본 발명의 실시예들은 전적으로 하드웨어 구현의 형태, 전적으로 소프트웨어 구현의 형태 또는 소프트웨어와 하드웨어의 특징을 조합한 구현의 형태를 취할 수 있다. 따라서, 이하의 상세한 설명은 제한하는 의미 로 해석되어서는 안된다.
본 발명의 다양한 실시예들의 논리적 동작은 (1) 연산 시스템 상에서 실행되는 컴퓨터 구현 단계의 시퀀스 및/또는 (2) 연산 시스템 내의 상호접속된 머신 모듈로서 구현된다. 구현은 발명을 구현하는 연산 시스템의 성능 요건에 의존하는 선택의 문제이다. 따라서, 여기에서 설명되는 본 발명의 실시예들을 구성하는 논리적 동작들은 동작, 단계 또는 모듈로 선택적으로 지칭된다.
도 1과 관련하여, 본 발명을 구현하기 위한 하나의 예시적 시스템은 연산 디바이스(100)와 같은 연산 디바이스를 포함한다. 연산 디바이스(100)는 클라이언트, 서버, 모바일 디바이스 또는 임의의 다른 연산 디바이스로 구성될 수 있다. 아주 기본적인 실시예에서, 연산 디바이스(100)는 적어도 하나의 프로세싱 유닛(102)과 시스템 메모리(104)를 포함한다. 연산 디바이스의 정확한 구성과 유형에 따라, 시스템 메모리(104)는 휘발성(예컨대, RAM), 비휘발성(예컨대, ROM, 플래시 메모리 등) 또는 이 둘의 어떠한 조합일 수 있다. 시스템 메모리(104)는 운영체제(105), 하나 이상의 어플리케이션(106)을 일반적으로 포함하고, 프로그램 데이터(107)를 포함할 수 있다. 일 실시예에서, 어플리케이션(106)은 본 발명의 시스템을 구현하기 위한 차트 통합 시스템(120)을 포함한다. 또한, 프로그램 데이터(107)는 차트 데이터(122)를 포함한다. 기본적인 실시예는 점선(108) 내의 컴포넌트들에 의해 도 1에 도시되어 있다.
연산 디바이스(100)는 추가적인 특성 또는 기능을 가질 수 있다. 예를 들어, 연산 디바이스(100)는 예컨대, 자기 디스크, 광 디스크 또는 테이프와 같은 추 가적인 데이터 저장 디바이스(착탈식 및/또는 비착탈식)를 포함할 수도 있다. 그러한 추가적인 저장소가 도 1에 착탈식 저장소(109) 및 비착탈식 저장소(110)로 도시된다. 컴퓨터 저장 미디어는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같이 정보의 저장을 위해 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비착탈식 미디어를 포함할 수 있다. 시스템 메모리(104), 착탈식 저장소(109) 및 비착탈식 저장소(110)는 모두 컴퓨터 저장 미디어의 예이다. 컴퓨터 저장 미디어는 RAM, ROM, EEPROM, 플래시 메모리나 기타 메모리 기술, CD-ROM, DVD나 기타 광 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소나 기타 자기 저장 디바이스, 또는 원하는 정보를 저장하는데 사용될 수 있고 연산 디바이스(100)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 한정되는 것은 아니다. 그러한 임의의 컴퓨터 저장 미디어가 디바이스(100)의 일부가 될 수 있다. 연산 디바이스(100)는 키보드, 마우스, 펜, 음성 입력 디바이스, 터치 입력 디바이스 등과 같은 입력 디바이스(들)(112)를 포함할 수도 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 디바이스(들)(114)가 포함될 수도 있다.
연산 디바이스(100)는 디바이스가 예컨대 네트워크를 통해 다른 연산 디바이스(118)와 통신하도록 하는 통신 접속(116)도 포함한다. 통신 접속(116)은 통신 미디어의 일례이다. 통신 미디어는 반송파 또는 다른 전송 매커니즘과 같이 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 변조된 데이터 신호의 기타 데이터에 의해 일반적으로 구현될 수 있으며, 임의의 정보 전송 미디어를 포함한 다. "변조된 데이터 신호"라는 용어는 하나 이상의 특성 세트를 갖거나 신호의 정보를 인코딩하는 방식으로 변경된 신호를 의미한다. 한정이 아닌 예시로서, 통신 미디어는 유선 네트워크 또는 직접-유선 네트워크와 같은 유선 미디어, 음향, RF, 적외선 및 기타 무선 미디어와 같은 무선 미디어를 포함한다. 여기서 사용되는 컴퓨터 판독가능 미디어라는 용어는 저장 미디어 및 통신 미디어 양자 모두를 포함한다.
연산 디바이스(100)에 의해 실행되는 일 실시예는 스프레드시트 문서를 호스트 어플리케이션의 문서에 포함되는 차트를 위한 차트 데이터(122)에 대한 소스로서 사용하는 것을 지원한다. 차트 통합 어플리케이션(120)은 스프레드시트의 차트 데이터의 통합을 위해 호스트 어플리케이션에서 차트 표현(representation)을 제공한다. 따라서, 차트를 위해 스프레드시트에 의해 제공되는 기능이 호스트 어플리케이션 내에서 사용가능하게 된다. 사용자는 한정된 특성 세트가 아니라 스프레드시트 어플리케이션에 의해 제공되는 특성 세트에 따라 차트를 편집하고 차트의 프리젠테이션을 변경할 수 있다.
본 개시와 특허청구범위가 보다 넓은 다양한 변경가능한 실시예들을 포괄하도록 보다 넓은 의미를 가지는 경우를 제외하고, 본 명세서와 특허청구범위에서 사용되는 이하의 용어들은 일반적으로 다음과 같이 정의된다.
"차트"는 일반적으로 문서에 포함될 수 있는 그래프, 막대 차트, 선 차트, 파이 차트(pie chart), 표 차트(tabular chart) 또는 데이터의 기타 그림 표현을 지칭한다. 여기서 사용되는 바와 같이, 특정 문서에 포함될 수 있는 차트의 유형 에는 제한이 없다.
"문서"는 텍스트, 그래픽 개체, 테이블, 데이터 셀 또는 기타 유형의 데이터 표현을 포함하는 어플리케이션의 임의의 페이지, 시트, 폼 또는 기타 구성으로서 일반적으로 정의된다. 문서의 예로는 워드 프로세서 문서, 스프레드시트, 차트, 슬라이드, 웹 페이지, 워크시트, 노트, 이메일 메시지, 인스턴트 메시지, 도면, 개략도(schematics), 이미지 및 다른 구성의 텍스트 및/또는 그래픽 개체가 포함된다.
"특성 세트"는 일반적으로 특정 어플리케이션과 연관된 기능 또는 특성의 세트로 정의된다. 차트 생성을 지원하는 어플리케이션의 예시적인 특성 세트는 소팅 기능, 공식 지원, 차트 유형 지원 뿐 아니라 차트 처리 기능을 제공하는 기타 기능 및 능력을 포함한다.
"호스트 어플리케이션"은 일반적으로 차트가 임베디드되거나 링크되는 어플리케이션을 지칭한다. 호스트 어플리케이션은 호스트 어플리케이션의 문서 내에 차트의 시각적 표현을 포함한다. 호스트 어플리케이션은 프리젠테이션 어플리케이션, 워드 프로세서 어플리케이션 및 차트를 포함할 수 있는 기타 어플리케이션을 포함할 수 있다.
"프리젠테이션 어플리케이션"은 일반적으로 사용자에게 프리젠테이션될 수 있는 디스플레이를 제공하도록 구성된 어플리케이션을 지칭한다. 예를 들어, 슬라이드쇼는 생성된 프리젠테이션에 하나 이상의 슬라이드를 포함할 수 있다. 이러한 슬라이드들은 프리젠테이션 어플리케이션에 의해 생산된 개별적인 문서에 대응한 다. 프리젠테이션 어플리케이션의 일례는 워싱턴 레드몬드에 위치한 마이크로소프트 코퍼레이션에 의해 생산된 파워포인트 소프트웨어 프로그램을 포함한다.
"스프레드시트"는 일반적으로 데이터를 보유하는 격자 셀을 포함하는 문서 또는 데이터베이스로 정의된다. 스프레드시트의 일례는 워싱턴 레드몬드에 위치한 마이크로소프트 코퍼레이션의 엑셀 소프트웨어 프로그램을 포함한다. 스프레드시트의 다른 예는 워싱턴 레드몬드에 위치한 마이크로소프트 코퍼레이션의 액세스 소프트웨어 프로그램에서 생성되는 데이터 격자를 포함한다. 각각의 스프레드시트는 스프레드시트에 포함된 데이터에 대응하는 차트를 생성하기 위한 기능과 연관된다.
"스프레드시트 어플리케이션"은 일반적으로 스프레드시트를 생산하도록 구성되는 어플리케이션을 지칭한다(상기 스프레드시트 정의를 참조).
도 2는 차트를 포함하는 예시적인 프리젠테이션 어플리케이션 스크린샷을 도시한다. 프리젠테이션 어플리케이션(200)은 차트 데이터의 지원을 내부적으로 핸들링하였던 이전 버전의 프리젠테이션 어플리케이션에 대응한다. 프리젠테이션 어플리케이션(200)은 슬라이드 리스팅 필드(210; slide listing field), 슬라이드 필드(220) 및 차트 데이터 필드(230)를 포함한다.
슬라이드 리스팅 필드(210)는 프리젠테이션 어플리케이션(200)으로 로드된 현재의 프리젠테이션 파일에 포함되어, 보고 편집하는 것이 가능한 슬라이드를 리스트한다.
슬라이드 리스팅 필드(210)는 또한 현재 보여지고 있는 슬라이드의 기록된 표시 또는 시각적인 표시를 보유한다. 슬라이드 리스팅은 대부분의 프리젠테이션 어플리케이션에 있어 일반적이며 해당 기술분야에 공지되어 있다. 따라서, 슬라이드 리스팅 필드(210)는 여기서 더 자세히 논의하지 않는다. 슬라이드 필드(220)는 현재 보여지고 있는 슬라이드의 내용을 포함한다. 본 예에서, 슬라이드 내용은 차트(222)를 포함한다. 차트(222)는 막대 차트로 도시된다. 차트(222)가 슬라이드 필드(220)로 삽입되도록 선택되었을 때, 프리젠테이션 어플리케이션(200)은 또한 차트 데이터 필드(230)를 개시하였다.
차트 데이터 필드(230)는 프리젠테이션 어플리케이션(200)의 윈도우 위에 오버레이되는 팝업 윈도우로서 제공되었다. 차트 데이터 필드는 프리젠테이션 어플리케이션(200)에 의해 제공되는 내용의 일부였다. 차트 데이터 필드는 데이터 셀(예컨대, 232), 열 및 행 라벨 셀(예컨대, 234), 차트 데이터 셀(예컨대, 236) 및 차트 축 라벨 셀(예컨대, 238)을 포함하였다. 차트 데이터 셀에 포함된 데이터와 차트 축 라벨 사이의 상관관계를 통해 차트(222) 내의 데이터가 포맷팅되었다.
차트 데이터를 입력하기 위한 자신만의 지원을 제공하는 프리젠테이션 어플리케이션(200)에 있어서, 차트를 생성하고 편집하는 것과 연관된 기능은 제한되었다. 더 나아가, 차트 데이터 필드(230)에 대응되는 윈도우는, 보여지고 있는 프리젠테이션의 부분에 따라 위치 및 크기를 계속 관리할 필요가 있었다.
도 3은 일 실시예에 따라 프리젠테이션 어플리케이션에 포함된 차트의 다른 예시적 스크린샷을 도시한다. 프리젠테이션 어플리케이션(300)은 도 2에 도시된 프리젠테이션 어플리케이션(200)과 유사하다. 프리젠테이션 어플리케이션(300)은 슬라이드 리스팅 필드(310) 및 슬라이드 필드(320)를 포함한다. 슬라이드 필 드(320)는 또한 도 2에 도시된 차트(222)와 유사한 차트(322)를 포함한다. 그러나, 프리젠테이션 어플리케이션(300)은 윈도우, 또는 차트 데이터 필드(230)와 유사한 필드를 포함하지 않는다. 대신에, 프리젠테이션 어플리케이션(300)은 차트(322)를 위한 차트 데이터를 제공하기 위하여 스프레드시트 어플리케이션(350)을 개시한다.
스프레드시트 어플리케이션(350)은 셀의 어레이를 포함하는 스프레드시트(352)를 포함한다. 셀은 데이터 셀(예컨대, 데이터 셀(354)) 및 열과 행 라벨 셀(예컨대, 열 라벨(356))을 포함하는 다양한 유형이 존재한다. 데이터 셀(예컨대, 354)은 자신이 보유하는 데이터에 의해 정의되는 셀이다. 일례로, 데이터 셀은 차트(320)와 같은 차트에 대응하는 데이터를 포함한다. 한 유형의 차트 데이터 셀은 차트에 대한 값(예컨대, 값 셀(360))을 포함한다. 차트와 연관된 다른 유형의 데이터 셀은 차트의 축 또는 치수를 라벨링하는 축 라벨(예컨대, 축 라벨(358))을 포함한다. 스프레드시트 어플리케이션(350)에 따른 차트(322)에 대한 데이터를 제공함으로써, 차트(322)는 차트를 다루기 위해 스프레드시트 어플리케이션(350)에 의해 제공되는 완전한 특성 세트를 이용할 수 있다. 차트(322)에 대한 편집 또는 조작이 차트 데이터에 영향을 주자마자, 스프레드시트 어플리케이션(350)이 차트(322)에 대해 제공된다. 차트 데이터에 대한 편집 및 변경을 다루는 예시적 과정이 도 6에 대하여 이하 더 자세히 설명된다. 차트(322)에 대한 변경에 응답하여 자동적으로 스프레드시트 어플리케이션(350)을 시작함으로써, 프리젠테이션 어플리케이션(300)과 스프레드시트 어플리케이션(350) 사이의 동작은 비교적 균일하다. 이전의 설계에서 스프레드시트 어플리케이션을 차트 데이터의 소스로 사용하기 위해서는, 차트가 스프레드시트에서 먼저 생성되고 나서 프리젠테이션 어플리케이션으로 복사되어야 했다. 그러나, 복사된 차트는 스프레드시트 어플리케이션에서 사용가능했던 완전한 특성 세트를 호스트 어플리케이션에서 사용할 수 없었다. 본 발명은 스프레드시트 어플리케이션으로부터 차트 데이터를 비교적 균일하게 제공받아 차트에 대해 제공되는 완전한 특성을 세트를 호스트 어플리케이션에서 허용함으로써, 이러한 한계를 해결한다.
도 3의 예는 스프레드시트 어플리케이션에 의헤 제공되는 차트 데이터를 갖는 프리젠테이션 어플리케이션에서의 차트에 관한 것이지만, 어플리케이션들의 다른 조합들도 사용될 수 있음을 이해할 수 있다. 호스트 어플리케이션이 반드시 프리젠테이션 어플리케이션이 될 필요는 없고, 그 대신 워드 프로세서나, 차트가 포함될 수 있는 다른 어플리케이션과 같은 다른 호스트 어플리케이션이 될 수 있다. 또한, 차트 데이터가 스프레드시트 어플리케이션에 의해 제공되는 것으로 도시되어 있으나, 스프레드시트 어플리케이션은 데이터베이스 어플리케이션 또는 격자 데이터 어플리케이션과 같은 다른 어플리케이션을 포함할 수 있다.
도 4는 일 실시예에 따라 호스트 어플리케이션에 포함된 차트에 대한 차트 데이터의 소스로서 스프레드시트를 사용하기 위한 예시적 시스템의 기능도이다. 시스템(400)은 프리젠테이션 어플리케이션(402), 워드 프로세싱 어플리케이션(404), 임베디드 개체 핸들러(406), 차트 통합 어플리케이션(408), 데이터베이스/스프레드시트 어플리케이션(410) 및 실행 개체 테이블(running object table; 414)을 포함한다. 스프레드시트 어플리케이션(410)은 호스트 어플리케이션들(402, 404) 중 하나에 포함된 차트에 대응하는 차트 데이터(412)를 포함한다. 두 개의 호스트 어플리케이션(402, 404)이 도시되어 있으나, 임의의 수의 호스트 어플리케이션이 시스템(400)과 연관될 수 있다.
임베디드 개체 핸들러(406)는 다른 프로그램들과 연관된 호스트 어플리케이션 문서에 포함된 개체를 지원하기 위한 기능을 제공한다. 일 실시예에서, 임베디드 개체 핸들러(406)는 호스트 어플리케이션 문서 내에 그래픽 개체를 통합하기 위한 코드를 제공하는 그래픽 프로그램에 대응한다. 임베디드 개체 핸들러(406)는 차트 통합 어플리케이션(408)과 호스트 어플리케이션(402, 404) 사이의 인터페이스를 제공한다. 임베디드 개체 핸들러(406)는 차트 통합 어플리케이션(408)에 의해 제공되는 명령어를, 그래픽 개체를 조작하기 위해 호스트 어플리케이션(402, 404)에 의해 이해되는 명령어로 번역한다. 다른 실시예에서, 임베디드 개체 핸들러(406)는 시스템(400)에 포함되지 않고, 그 대신 임베디드 개체 핸들러(406)의 기능이 차트 통합 어플리케이션(408)에 의해 제공된다.
차트 통합 어플리케이션(408)은 차트 데이터(412)를 획득하고 편집하기 위해 스프레드시트 어플리케이션(410)과 통신한다. 일 실시예에서, 차트 통합 어플리케이션(408)은 도 1에서 제공되는 차트 통합 어플리케이션(120)에 대응한다. 차트 통합 어플리케이션(408)은 스프레드시트 어플리케이션(410)에 의해 제공되는 차트 데이터(412)를 호스트 어플리케이션(402, 404)에 포함되는 차트와 동기화시키도록 구성된다. 스프레드시트 어플리케이션(410)은 차트 데이터(412)를 조직하고, 차트 통합 어플리케이션(408)으로부터의 요청에 응답하며, COM 인터페이스(420, 422, 424) 세트를 통해 차트 데이터(412)를 차트 통합 어플리케이션(408)으로 전달한다. 일 실시예에서, ChartDataSink COM 인터페이스(420)는 스프레드시트 어플리케이션(410)이, 차트 데이터(412)에 대한 업데이트를 차트 통합 어플리케이션(408)에게 통지하고, 그러한 업데이트를 차트 통합 어플리케이션(412)로 푸시할(push) 수 있도록 한다. 동일 실시예에서, ChardDataSource COM 인터페이스(422)는 차트 통합 어플리케이션(408)이, 스프레드시트 어플리케이션(410)을 초기화하고, 차트 데이터(412)에 영향을 주는 사용자 액션을 스프레드시트 어플리케이션(410)으로 전달할 수 있도록 한다. ChartDataSourceFactory COM 인터페이스(424)는 차트 통합 어플리케이션(408)이, ChartDataSink COM 인터페이스(420)와 연관된 ChartDataSource COM 인터페이스(422)의 인스턴스를 획득할 수 있도록 한다. 관련된 추가 실시예에서, ChartDataSink COM 인터페이스(420) 및 ChartDataSource COM 인터페이스(422)의 유일한 인스턴스가 각각의 차트에 대해 존재한다. 차트 통합 어플리케이션(408)은 실행 개체 테이블(414)로부터 ChartDataSourceFactory COM 인터페이스(424)를 획득할 수 있다. 스프레드시트 어플리케이션(410)이 인스턴스화되는(instantiated) 경우, 스프레드시트 어플리케이션(410)은 ChartDataSourceFactory COM 인터페이스(424)를 실행 개체 테이블(414)에 기록한다.
실행 개체 테이블(414)은 독립적인 프로세스들이 서로로부터 COM 인터페이스를 획득할 수 있도록 하는 COM 시스템 컴포넌트이다. 실행 개체 테이블(414)은 스 프레드시트 어플리케이션(410)으로부터 ChartDataSourceFactory COM 인터페이스(424)를 얻기 위해 사용된다. 명령어는 스프레드시트 어플리케이션(410)으로 제공되어, 현재 오픈된 워크북, 파일-시스템으로부터 오픈될 워크북 또는 호스트 어플리케이션(402, 404)의 파일에 임베디드되어 있는 워크북에 추후 연관되는 ChartDataSource COM 인터페이스(422)를 생성한다. 워크북이 호스트 어플리케이션(402, 404)의 파일에 임베디드되는 경우, 차트 통합 어플리케이션(408)은 스프레드시트 어플리케이션(410)에게, ChartDataSourceFactory COM 인터페이스(예컨대, 424)가 요구된다는 신호를 보내는 것을 담당한다. 스프레드시트 어플리케이션(410)은 ChartDataSourceFactory COM 인터페이스(424)의 인스턴스를 실행 개체 테이블(414)에 등록하고, 차트 통합 어플리케이션(408)은 그 인터페이스를 실행 개체 테이블(414)로부터 검색한다. 차트 통합 어플리케이션(408)이 ChartDataSourceFactory COM 인터페이스(424)의 인스턴스를 갖게 되면, 차트 통합 어플리케이션(408)은 다수의 파라미터를 특정함에 의해 ChartDataSource COM 인터페이스(422)의 인스턴스가 워크북에 연관되도록 요청하는 메소드를 호출한다. 파라미터는 ChartDataSource COM 인터페이스(422)를, 현재의 워크북, 차트 통합 어플리케이션(408)에 의해 공급되는 샘플 데이터로 채워지는(populated) 새로운 워크북, 파일이름에 의해 식별되는 워크북, 또는 스프레드시트 어플리케이션(410)에 의해 로드될 임베디드 워크북인 바이너리 스트림 데이터에 연관시키는 정보를 포함한다. ChartDataSourceFactory COM 인터페이스(424)가 획득되면, 실행 개체 테이블(414)은 프로세스 루프를 빠져나온다. 스프레드시트 어플리케이션(410)과 차트 통합 어플리케이션(408) 사이의 추가적 통신이 COM 인터페이스(420, 422, 424)를 통해 완료된다. 이하 도 6의 논의는 차트 통합 어플리케이션(408)과 스프레드시트 어플리케이션(410) 사이의 통신과 관련한 예시적 프로세스에 대해 보다 자세한 논의를 제공한다.
도 5는 일 실시예에 따라, 차트 데이터의 지속을 위한 예시적 파일 구조의 기능도이다. 특정 실시예는 프리젠테이션 어플리케이션의 프리젠테이션에 포함되는 차트에 대응하는 차트 데이터를 위한 파일 구조를 제공한다. 그러나, 다른 예는 차트를 포함하는 다른 호스트 어플리케이션의 다른 문서에 대응하는 차트 데이터를 위한 파일 구조를 포함할 수 있다. 파일 구조(500)는 프리젠테이션 어플리케이션의 프리젠테이션에 대응하는 프리젠테이션 파일(502) 및 스프레드시트 어플리케이션의 스프레드시트에 대응하는 외부 스프레드시트 파일(550)을 포함한다.
프리젠테이션 파일(502)은 슬라이드(510), 도면(520), 차트(530)로 조직되며, 임베디드된 스프레드시트 파일(540)을 포함하는 것도 가능하다. 슬라이드(510)는 특정 프리젠테이션과 연관된 임의의 수의 슬라이드(예컨대, 512, 514)를 포함한다. 도면 데이터가 슬라이드에 포함되는 경우, 슬라이드(예컨대, 512)는 도면 파일(예컨대, 522)과 연관된다. 도면 데이터가 차트에 대응하는 경우, 도면(예컨대, 522)은 차트 파일(예컨대, 532)과 더 연관된다. 일 실시예에서, 차트 파일(예컨대, 532)은 사용되는 차트의 유형, 차트의 프리젠테이션, 차트의 포맷, 및 차트를 슬라이드 내에서 프리젠테이션하는 것에 관계된 기타 정보를 포함한다. 이 실시예에서, 차트에 포함되는 값들은 스프레드시트와 연관된 다른 파일(예컨대, 540, 550)로부터 획득되지만, 프리젠테이션 어플리케이션은 그 데이터의 디스플레이를 위한 포맷을 결정한다. 다른 실시예에서, 차트 파일(예컨대, 532)은 포인터와 보다 유사하며, 프리젠테이션 어플리케이션을 차트 데이터를 포함하는 다른 파일(예컨대, 540, 550)로 지향한다(direct). 이 실시예에서, 스프레드시트 어플리케이션은 차트에 대해 사용되는 값과 포맷을 결정하며, 프리젠테이션 어플리케이션은 단순히 특정 슬라이드 내에서 차트를 디스플레이하는 것을 담당할 뿐이다. 프리젠테이션에서 차트의 실제 구현은 호스트 어플리케이션 및 스프레드시트 어플리케이션 사이에서 차트를 포맷팅하는 의무를 상이한 선을 따라, 또는 앞서 설명한 실시예의 단계적 변화(gradations)로서 나눌 수 있다. 또한, 사용자는 프리젠테이션의 포맷팅 또는 스프레드시트 어플리케이션에 포함된 데이터의 포맷팅을 사용할지에 대한 선택을 제공받을 수 있다.
도시된 바와 같이, 차트에 대한 데이터는 프리젠테이션 파일에 임베디드된 스프레드시트 파일(예컨대, 540)에 의해 제공되거나, 외부에 저장된 스프레드시트 파일(예컨대, 550)에 의해 제공될 수 있다. 스프레드시트가 프리젠테이션 파일(502)과 함께 로컬에 저장될지 또는 외부에 저장되어 프리젠테이션 파일(502)에 링크될지는 사용자에 의해 결정될 수 있는 선택이다. 예를 들어, 사용자가 차트를 외부 스프레드시트에 링크되도록 하거나, 스프레드시트를 프리젠테이션 파일에 복사하거나, 단순히 차트의 이미지를 수취하도록(retrieve) 선택할 수 있는 대화 윈도우가 사용자에게 프리젠테이션될 수 있다. 각각의 선택은 차트의 편집, 호스트 어플리케이션 파일의 파일 크기 및 파일의 이동성에 있어 장점과 단점을 갖는다.
도 6은 일 실시예에 따른, 호스트 어플리케이션에 포함된 차트의 데이터를 제공하기 위한 스프레드시트와 호스트 어플리케이션 사이의 상호작용의 예시적 과정의 논리 흐름도이다. 프로세스(600)는 차트가 호스트 어플리케이션 문서에 삽입되고 사용자에 의한 상호작용을 대기하는 것에서 시작한다. 프로세싱은 액션 수신 동작(602)으로 계속된다.
액션 수신 동작(602)은 차트 통합 어플리케이션(도 4의 408 참조)에서 차트 상의 사용자 액션을 수신한다. 일 실시예에서, 호스트 어플리케이션은 사용자 액션을, 키 스트로크, 마우스 클릭 또는 기타 호스트 어플리케이션으로의 입력 엔트리로서 등록하고, 그 입력을 호스트 어플리케이션 문서의 차트에 관련되는 것으로 연관시킨다. 차트 통합 어플리케이션이 사용자 액션의 통지를 수신하면, 프로세싱은 스프레드시트 필요 판단 동작(604)으로 계속된다.
스프레드시트 필요 판단 동작(604)은 차트에 영향을 준 사용자 입력에 응답하기 위해 스프레드시트가 필요한지 여부를 판단한다. 어떤 시나리오에서, 사용자 액션은 스프레드시트 어플리케이션에 의해 공급되는 차트 데이터에 영향을 주지 않고 차트의 일부를 변경할 수 있다. 예를 들어, 문서 내의 차트의 위치가 변할 수 있다. 그러한 변경은 차트 통합 어플리케이션으로 라우팅되어 프로세싱될 수 있다. 그러나, 그 변경을 수행하기 위해 스프레드시트로의 액세스는 필요하지 않다. 사용자 액션에 대해 응답하기 위해 스프레드시트가 필요하지 않은 경우, 프로세싱은 차트 핸들링 동작(606)으로 이동한다.
차트 핸들링 동작(606)은 스프레드시트에 의해 제공되는 차트 데이터에 액세 스하지 않고 사용자 액션을 핸들링한다. 일 실시예에서, 차트에 대한 이러한 변경을 핸들링하기 위해 호스트 어플리케이션에 기능이 포함된다. 다른 실시예에서, 차트에 대한 사용자 액션을 핸들링하기 위해 호스트 어플리케이션에 의해 기능 호출이 이루어진다. 사용자 액션이 처리되면(addressed), 프로세스(600)는 종료하고, 프로세싱은 다음 사용자 액션을 기다리거나 다른 태스크를 계속한다.
이와 달리, 사용자 액션에 응답하기 위해 스프레드시트가 필요한 경우, 프로세싱은 가시성 판단 동작(visibility decision operation; 608)으로 계속된다. 가시성 판단 동작(608)은 사용자 액션에 응답하기 위해 가시적 스프레드시트가 필요한지 여부를 판단한다. 가시적 스프레드시트는 사용자 액션이 사용자에게 차트 데이터, 공식, 또는 스프레드시트에 의해 제공되는 차트의 기타 특징을 변경할 기회를 제공하는 것을 수반하는 경우 필요할 수 있다. 스프레드시트는 사용자가 스프레드시트 포맷으로 차트 데이터와 상호작용할 수 있도록 하는데 필요할 수 있다. 반대로, 사용자는 스프레드시트의 가시적 인스턴스를 초기화할 필요가 없을 수 있다. 추가적인 실시예에서, 스프레드시트 어플리케이션의 가시적 인스턴스 및 스프레드시트 어플리케이션의 비-가시적 인스턴스는 별도의 프로세스들과 연관된다. 스프레드시트 어플리케이션과의 상호작용이 비-가시적 프로세스에 의해 제공되고 있는 경우, 사용자 액션은 사용자가 차트 데이터와 상호작용할 수 있도록 요청하지 않는 변경에 대응할 수 있다. 가시적 스프레드시트가 필요한 경우, 프로세싱은 초기화 동작(610)으로 계속된다.
초기화 동작(610)은 스프레드시트 어플리케이션의 가시적 인스턴스를 초기화 한다. 일 실시예에서, 스프레드시트 어플리케이션이 초기화되고, 스프레드시트 어플리케이션과 호스트 어플리케이션의 뷰(views)가 "타일화"되거나(tiled) 동시에(coincidentally) 디스플레이됨으로써, 한정된 뷰 영역에서 실질적으로 두 어플리케이션 모두가 보여질 수 있다. 어플리케이션들을 타일화하는 것은 사용가능한 디스플레이 스크린에 둘 모두가 보여질 수 있게 한다. 스프레드시트가 초기화되면, 프로세싱은 링크 생성 동작(614)으로 계속된다.
스프레드시트의 가시적 인스턴스 대신 스프레드시트로의 링크만이 필요한 경우, 프로세싱은 가시성 판단 동작(608)에서 링크 판단 동작(612)으로 계속된다. 링크 판단 동작(612)은 스프레드시트로의 링크가 이미 설정되었는지 여부를 판단한다. 예를 들어, 스프레드시트는 호스트 어플리케이션 파일에 저장될 수 있다. 호스트 어플리케이션과 관련하여 내부적으로 저장되는 경우, 스프레드시트로의 링크는 설정될 필요가 없다. 이와 반대로, 스프레드시트는, 스프레드시트 어플리케이션과 연관되거나 전적으로 별도의 연산 디바이스와 연관될 수도 있는 메모리의 상이한 위치에 있을 수도 있다. 그러나, 스프레드시트가 호스트 어플리케이션에 대해 외부 및/또는 리모트인 경우, 호스트 어플리케이션에 포함된 차트와, 스프레드시트 사이에는 이미 링크가 만들어졌을 수 있다. 예를 들어, 이전의 사용자 액션이 차트와 스프레드시트 사이의 링크를 설정했을 수 있다. 따라서, 현재의 사용자 액션은 링크를 다시 설정할 필요가 없다. 스프레드시트로의 링크가 이미 초기화되지 않았다면, 프로세싱은 링크 생성 동작(614)으로 계속된다.
링크 생성 동작(614)은 스프레드시트 어플리케이션과, 호스트 어플리케이션 의 차트 사이의 링크를 초기화한다. 일 실시예에서, 링크를 초기화하는 것은 스프레드시트의 가시적 인스턴스가 초기화되었든 아니든 유사하다. 다른 실시예에서, 링크는 차트 및 스프레드시트 사이에서 사용되는 일반적인 전송 프로토콜을 고려하는 COM 인터페이스들에 따라 생성된다. 링크가 생성되면, 프로세싱은 송신 액션 동작(616)으로 계속된다.
링크가 링크 판단 동작(612)으로부터 이전에 사용가능했든지, 링크가 링크 생성 프로세스(614)에 따라 새롭게 생성되었든지 상관없이, 일단 링크가 설정되면 차트 통합 어플리케이션은 사용자 액션의 통지를 스프레드시트 어플리케이션으로 전송한다. 스프레드시트가 그 통지를 수신한 후, 프로세싱은 변경 판단 동작(618)에서 계속된다.
변경 판단 동작(618)은 사용자 액션으로부터, 사용자 액션이 차트 데이터에 대한 변경에 영향을 주는지 여부를 발견한다. 차트 데이터가 사용자 액션에 의해 실제로 변경되지 않았을 수 있다. 예를 들어, 사용자는 차트 데이터를 보는 것을 선택했을 수 있다. 이 예에서, 스프레드시트 어플리케이션의 가시적 인스턴스가 초기화되고, 차트와 스프레드시트 사이의 링크가 생성되며, 요청된 동작이 완료될 것이다. 데이터가 사용자 액션에 의해 변경되지 않는 경우, 프로세스(600)는 종료하고, 프로세싱은 다음 사용자 입력을 기다리거나 다른 태스크를 계속한다.
이와 반대로, 사용자 액션이 차트 데이터를 변경하는 경우, 프로세싱은 데이터 변경 동작(620)으로 계속된다. 다음으로, 데이터 변경 동작(620)은 데이터가 변경되었음을 차트 통합 어플리케이션에게 중계한다. 해당 데이터 변경 메시지가 수신되면, 프로세싱은 업데이트 판단 동작(622)에서 계속된다.
업데이트 판단 동작(622)은 차트 데이터에서 발생한 변경으로 인해 차트에 대한 업데이트가 필요한지 여부를 판단한다. 일 실시예에서, 업데이트는 차트 내의 차트 데이터 표시의 리프레쉬(refresh)에 대응한다. 업데이트가 필요하지 않는 경우, 프로세스(600)는 종료하고, 프로세싱은 다음 사용자 액션을 기다리거나 다른 태스크를 계속한다. 그러나, 업데이트가 필요한 경우, 프로세싱은 업데이트 요청 동작(624)으로 계속된다.
업데이트 요청 동작(624)은 스프레드시트 어플리케이션으로부터 차트 데이터 업데이트를 요청한다. 일 실시예에서, 업데이트 요청은 스프레드시트 어플리케이션에 의해 제공되는 차트 데이터의 전체 세트에 대한 요청으로 구성된다. 다른 실시예에서, 업데이트 요청은 변경된 차트 데이터의 임의의 일부분을 위한 것이지 전체 차트 데이터 파일을 위한 것이 아니다. 업데이트 요청이 송신되면, 프로세싱은 업데이트 수신 동작(626)으로 계속된다.
업데이트 수신 동작(626)은 차트 데이터의 업데이트를 수신하고 해당 업데이트를 호스트 어플리케이션의 차트에 적용한다. 일 실시예에서, 차트는 최근 업데이트되거나 생성되었으므로, 업데이트는 차트의 변경된 일부만을 리프레쉬한다. 다른 실시예에서, 업데이트는 요청에 대한 응답으로 제공되는 가장 최근의 차트 데이터에 대응하는 새로운 차트로 현재 차트를 교체한다. 차트가 업데이트되면, 프로세스(600)는 종료하고, 프로세싱은 다음 사용자 액션을 기다리거나 다른 태스크를 계속한다.
본 발명이 구조적 특징 및/또는 방법론적 단계로 특정된 언어로 설명되었으나, 첨부된 특허청구범위에 정의된 발명은 설명된 구체적 특징이나 단계로 반드시 한정되는 것은 아니라는 점을 이해하여야 한다. 단지, 구체적인 특징 및 단계는 특허청구된 발명 구현의 형태로 개시되었다. 본 발명의 많은 실시예들이 본 발명의 사상 및 범주를 벗어나지 않고 이루어질 수 있으므로, 본 발명은 이하 첨부된 특허청구범위에 귀속한다.

Claims (20)

  1. 호스트 어플리케이션에서 프리젠테이션되는(presented) 호스트 차트(host chart)를 관리하고 편집하기 위한 컴퓨터로 구현되는 방법으로서,
    상기 호스트 차트와 상호작용하기 위한 호스트 특성 세트를 포함하는 호스트 어플리케이션 내의 호스트 차트 데이터를 사용하여 상기 호스트 차트를 디스플레이하는 단계 - 상기 호스트 차트 데이터는 별도의 어플리케이션의 특성 세트를 가지는 별도의 어플리케이션으로부터의 별도의 어플리케이션의 차트 데이터와 연관되고, 상기 별도의 어플리케이션의 특성 세트 내의 특성의 수는 상기 호스트 차트와 상호 작용하기 위한 상기 호스트 특성 세트 내의 특성의 수보다 많음 - ;
    상기 호스트 차트로의 조작이 상기 호스트 특성 세트 내에서 이용 가능하지 않은 부가적 특성을 요구하는 상기 호스트 차트 데이터에 대한 변경(change)인 경우를 자동으로 판정하는 단계;
    상기 부가적 특성이 상기 호스트 특성 세트 내에서 이용 가능하지 않다는 판정에 응답하여,
    상기 호스트 차트 데이터를 변경하는 상기 조작이 상기 별도의 어플리케이션의 가시적 인스턴스(visible instance) 없이 실행될 수 있는지를 판정하고, 가지적 인스턴스 없이 실행될 수 있다고 판정된 경우 상기 별도의 어플리케이션의 차트 데이터의 디스플레이를 포함하지 않는 상기 별도의 어플리케이션의 비-가시적 인스턴스(non-visible instance)를 초기화(initiating)하는 단계와,
    상기 별도의 어플리케이션의 인스턴스가 상기 호스트 차트 데이터를 변경하는 상기 조작에 응답하기 위해 가시적으로 되어야 하는지 여부를 판정하는 단계와,
    상기 별도의 어플리케이션의 상기 인스턴스가 가시적으로 되어야 한다는 판정에 응답하여, 상기 호스트 어플리케이션 내에 상기 호스트 차트를 디스플레이하고, 상기 별도의 어플리케이션을 초기화하고 상기 별도의 어플리케이션의 차트 데이터를 상기 호스트 차트의 디스플레이에 인접하도록 상기 별도의 어플리케이션과 연관된 윈도우 내에 디스플레이하는 단계 - 상기 부가적 특성은 상기 별도의 어플리케이션의 특성 세트에 포함됨 - 와,
    상기 별도의 어플리케이션의 차트 데이터를 편집하기 위한 기능을 제공하는 단계와,
    상기 호스트 차트 데이터를 업데이트하기 위해, 상기 별도의 어플리케이션 내에서 발생하는 상기 별도의 어플리케이션의 차트 데이터에 대한 변경을 상기 호스트 어플리케이션으로 통신하는 단계 - 상기 별도의 어플리케이션의 차트 데이터에 대한 변경은 상기 호스트 어플리케이션에서의 상기 호스트 차트의 프리젠테이션에 반영됨 -
    를 수행하는 단계를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 호스트 어플리케이션 내의 상기 호스트 차트 데이터에 대한 상기 조작은 상기 호스트 차트에 대한 공식에 대한 변경인, 방법.
  3. 제2항에 있어서,
    상기 별도의 어플리케이션 내의 상기 별도의 어플리케이션의 차트 데이터를 디스플레이하는 것은, 상기 호스트 어플리케이션 내의 상기 호스트 차트 및 상기 별도의 어플리케이션 내의 상기 별도의 어플리케이션의 차트 데이터 모두가 뷰 가능(viewable)하도록 상기 호스트 어플리케이션 내의 상기 호스트 차트가 디스플레이되어 있는 제1 윈도우에 인접하게 디스플레이되는 제2 윈도우에 상기 별도의 어플리케이션의 차트 데이터를 디스플레이하는 것을 포함하는, 방법.
  4. 제2항에 있어서,
    상기 호스트 차트에 대한 변경을 상기 별도의 어플리케이션으로 전달하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 별도의 어플리케이션의 차트 데이터를 편집하기 위한 기능을 제공하는 단계는, 스프레드시트 어플리케이션을 상기 별도의 어플리케이션으로서 초기화하는 단계를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 별도의 어플리케이션의 가시적 인스턴스는 상기 호스트 어플리케이션의 가시적 인스턴스와 동시에(coincidentally) 디스플레이에 제공되는 방법.
  7. 제1항에 있어서,
    상기 별도의 어플리케이션의 차트 데이터를 편집하기 위한 기능을 제공하는 단계는, 상기 별도의 어플레케이션의 가시적 인스턴스가 필요하지 않다고 판단되는 경우 상기 별도의 어플리케이션의 비-가시적 인스턴스를 인스턴스화하는 단계를 포함하는, 방법.
  8. 제1항에 있어서,
    상기 호스트 어플리케이션과 상기 별도의 어플리케이션 사이의 통신에 앞서, 상기 호스트 어플리케이션과 상기 별도의 어플리케이션 사이에 링크를 생성하는 단계를 더 포함하는 방법.
  9. 제8항에 있어서,
    상기 링크는 어플리케이션들 사이의 통신을 구현하기 위한 적어도 하나의 COM 인터페이스에 대응하는 방법.
  10. 제1항에 있어서,
    상기 별도의 어플리케이션의 차트 데이터가 상기 별도의 어플리케이션에서 편집되는 경우, 상기 호스트 차트에 대응하는 상기 별도의 어플리케이션의 차트 데이터를 상기 별도의 어플리케이션을 이용하여 변경하는 단계를 더 포함하는 방법.
  11. 제1항에 있어서,
    상기 별도의 어플리케이션은 스프레드시트 어플리케이션인, 방법.
  12. 제1항에 있어서,
    상기 별도의 어플리케이션 내에서 발생하는 상기 별도의 어플리케이션의 차트 데이터에 대한 변경을 상기 호스트 어플리케이션으로 통신하는 단계는, 차트 통합 어플리케이션에 따라 상기 통신을 핸들링하는 단계를 더 포함하는 방법.
  13. 실행될 때 제1항의 컴퓨터로 구현되는 방법을 구현하는 명령어를 저장하고 있는 컴퓨터 판독가능 기록 매체.
  14. 프로세서 및 컴퓨터 판독가능 기록 매체;
    상기 컴퓨터 판독가능 기록 매체에 저장되며 상기 프로세서 상에서 실행되는 운영 환경(operating environment);
    상기 프로세서 상에서 실행되는 상기 운영 환경에 의해 제어되어 실행되는 어플리케이션을 포함하는 시스템으로서,
    상기 어플리케이션은,
    호스트 어플리케이션 문서 내에서의 호스트 차트의 프리젠테이션을 포함하는 호스트 어플리케이션 - 상기 호스트 어플리케이션은 상기 호스트 차트와 상호작용하기 위한 호스트 특성 세트를 포함함 - ;
    상기 호스트 어플리케이션 문서에 포함된 호스트 차트에 대응하는 스프레드시트 차트 데이터의 스프레드시트를 디스플레이하도록 구성된 스프레드시트 어플리케이션 - 상기 스프레드시트 어플리케이션은 상기 호스트 차트와 상호작용하기 위한 상기 호스트 어플리케이션의 상기 호스트 특성 세트에 대한 부가적 특성을 포함하는 스프레드시트 특성 세트를 포함하고, 상기 호스트 어플리케이션 내의 상기 호스트 차트로의 조작이 호스트 차트 데이터를 변경하고 상기 스프레드시트 어플리케이션의 하나 이상의 상기 부가적 특성이 요구한다는 판정에 응답하여 상기 스프레드시트 어플리케이션이 자동으로 개시(launching)됨 - ;
    상기 스프레드시트 차트 데이터로의 변경을 수신하여 상기 호스트 차트 데이터를 업데이트하고 상기 호스트 어플리케이션 문서에 포함된 상기 호스트 차트와 상기 스프레드시트 어플리케이션에 의해 제공되는 상기 스프레드시트 차트 데이터의 통합을 관리하도록 구성되는 차트 통합 어플리케이션
    을 포함하고, 상기 시스템은
    상기 스프레드시트 어플리케이션을 개시한 후에, 상기 호스트 차트와 상기 스프레드시트 어플리케이션 사이에 링크가 존재하지 않는 경우 상기 링크를 생성하고,
    상기 호스트 차트로의 상기 조작이 상기 스프레드시트 어플리케이션의 가시적 인스턴스를 필요로 하지 않고 상기 스프레드시트 차트 데이터를 디스플레이하지 않고 실행될 수 있는지를 판정하고, 상기 스프레드시트 어플리케이션이 가시적으로 되어야 한다는 판정에 응답하여, 상기 스프레드시트 어플리케이션이 상기 호스트 어플리케이션에 의해 제공되는 상기 호스트 차트의 상기 프리젠테이션과 인접한 별도의 윈도우 내에 상기 스프레드시트 차트 데이터의 디스플레이를 제시하도록 동작하는
    시스템.
  15. 제14항에 있어서,
    상기 차트 통합 어플리케이션은 적어도 하나의 COM 인터페이스를 통해 상기 스프레드시트 어플리케이션과 통신하는 시스템.
  16. 제15항에 있어서,
    실행 개체 테이블(running object table)을 더 포함하고,
    상기 적어도 하나의 COM 인터페이스 중 하나는, 다른 COM 인터페이스들이, 특정 차트가 차트 데이터의 특정 세트와 연관되도록, 서로 연관되도록 저장되는 시스템.
  17. 제14항에 있어서,
    상기 호스트 차트 데이터를 갖는 상기 호스트 차트의 통합과는 별개로 상기 호스트 차트의 디스플레이를 핸들링하도록 구성되는 임베디드 개체 핸들러를 더 포함하는 시스템.
  18. 제14항에 있어서,
    상기 스프레드시트가 임베디드 스프레드시트 파일 및 외부 스프레드시트 파일 중 하나에 속하는 경우 상기 호스트 차트와 상기 스프레드시트 사이의 링크를 포함하기 위해 상기 호스트 어플리케이션 내에 상기 차트의 구조적 저장소(structuring storage)를 더 포함하는 시스템.
  19. 실행될 때 제14항의 시스템을 구현하는 명령어를 저장하고 있는 컴퓨터 판독가능 기록 매체.
  20. 호스트 어플리케이션에서 프리젠테이션되는 호스트 차트를 관리하고 편집하기 위한 컴퓨터 실행가능 명령어를 저장하고 있는 컴퓨터 판독가능 매체로서, 상기 컴퓨터 실행가능 명령어는,
    상기 호스트 어플리케이션 내의 상기 호스트 차트와 연관된 호스트 차트 데이터의 변경을 위한 사용자 액션을 수신하는 단계 - 상기 호스트 어플리케이션은 상기 호스트 차트와 상호작용하기 위한 호스트 특성 세트를 포함함 - ;
    상기 사용자 액션에 따라 스프레드시트 어플리케이션이 필요한지 여부를 판정하는 단계 - 상기 판정은 상기 호스트 어플리케이션 내의 상기 호스트 차트와 연관된 상기 사용자 액션이 상기 호스트 차트 데이터를 변경하고 상기 호스트 어플리케이션의 상기 호스트 특성 세트 내에서 이용 가능하지 않은 부가적 특성을 요구하는지에 대한 자동 판정을 포함함 - ;
    상기 호스트 차트와 연관된 상기 사용자 액션이 상기 호스트 차트 데이터와 연관된 스프레드시트 차트 데이터의 가시적 인스턴스를 디스플레이하지 않도록 상기 스프레드시트 어플리케이션의 가시적 인스턴스 없이도 실행될 수 있는지 판정하는 단계;
    상기 사용자 액션이 상기 호스트 특성 세트 내에서 이용 가능하지 않은 상기 부가적 특성을 요구한다고 판정하는 것에 응답하여, 상기 사용자 액션을 핸들링하기 위해 상기 스프레드시트 어플리케이션의 가시적 인스턴스가 필요한지 여부를 판정하는 단계;
    상기 호스트 차트의 디스플레이에 인접한 상기 스프레드시트 차트 데이터의 디스플레이를 포함하는 상기 스프레드시트 어플리케이션의 상기 가시적 인스턴스를 생성하는 단계;
    상기 스프레드시트 어플리케이션과 상기 호스트 차트 사이에 링크가 설정되어 있지 않은 경우, 상기 호스트 어플리케이션과 상기 스프레드시트 어플리케이션 사이에 링크를 생성하는 단계;
    상기 사용자 액션을 상기 스프레드시트 어플리케이션으로 송신하는 단계;
    상기 스프레드시트 차트 데이터가 변경되는지 여부를 판정하는 단계; 및
    상기 스프레드시트 차트 데이터에 대한 상기 변경에 기초하여 상기 호스트 차트 데이터에 대한 업데이트가 필요한지 여부를 판정하는 단계를 포함하는 방법을 수행하는
    컴퓨터 판독가능 매체.
KR1020087006325A 2005-09-15 2008-03-14 문서에서의 차트 통합 KR101377311B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/227,044 US8578277B2 (en) 2005-09-15 2005-09-15 Integrating charts in documents
US11/227,044 2005-09-15
PCT/US2006/034163 WO2007037916A1 (en) 2005-09-15 2006-09-01 Integrating charts in documents

Publications (2)

Publication Number Publication Date
KR20080045710A KR20080045710A (ko) 2008-05-23
KR101377311B1 true KR101377311B1 (ko) 2014-03-25

Family

ID=37856799

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087006325A KR101377311B1 (ko) 2005-09-15 2008-03-14 문서에서의 차트 통합

Country Status (13)

Country Link
US (1) US8578277B2 (ko)
EP (1) EP1952264A4 (ko)
JP (1) JP5551363B2 (ko)
KR (1) KR101377311B1 (ko)
CN (1) CN101263488A (ko)
AU (1) AU2006295278B2 (ko)
BR (1) BRPI0615817A2 (ko)
CA (1) CA2619056C (ko)
MX (1) MX2008003416A (ko)
MY (1) MY152519A (ko)
NO (1) NO342716B1 (ko)
RU (1) RU2419847C2 (ko)
WO (1) WO2007037916A1 (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468441B2 (en) * 2005-09-15 2013-06-18 Microsoft Corporation Cross-application support of charts
WO2007084362A2 (en) * 2006-01-13 2007-07-26 Lehman Brothers Inc. Method and system for integrating calculation and presentation technologies
US10318624B1 (en) 2006-12-28 2019-06-11 Apple Inc. Infinite canvas
US9390059B1 (en) * 2006-12-28 2016-07-12 Apple Inc. Multiple object types on a canvas
US9558172B2 (en) * 2008-03-12 2017-01-31 Microsoft Technology Licensing, Llc Linking visual properties of charts to cells within tables
US20090300649A1 (en) * 2008-05-30 2009-12-03 Microsoft Corporation Sharing An Object Among Multiple Applications
US20090313537A1 (en) 2008-06-17 2009-12-17 Microsoft Corporation Micro browser spreadsheet viewer
US20100169092A1 (en) * 2008-11-26 2010-07-01 Backes Steven J Voice interface ocx
US9779092B2 (en) * 2010-03-11 2017-10-03 International Business Machines Corporation Maintaining consistency between a data object and references to the object within a file
CN103229167A (zh) 2010-10-06 2013-07-31 星汇数据解决方案公司 用于为电子发现数据编索引的系统和方法
US8726396B1 (en) 2011-01-14 2014-05-13 Symantec Corporation Scanning protected files for violations of a data loss prevention policy
WO2013050649A1 (en) * 2011-10-04 2013-04-11 Nokia Corporation Method and apparatus for providing an application marketplace
US20130339831A1 (en) * 2012-06-15 2013-12-19 Microsoft Corporation Dynamic reports connected to project data
US8751963B1 (en) 2013-01-23 2014-06-10 Splunk Inc. Real time indication of previously extracted data fields for regular expressions
US9594814B2 (en) 2012-09-07 2017-03-14 Splunk Inc. Advanced field extractor with modification of an extracted field
US10394946B2 (en) 2012-09-07 2019-08-27 Splunk Inc. Refining extraction rules based on selected text within events
US20140208217A1 (en) 2013-01-22 2014-07-24 Splunk Inc. Interface for managing splittable timestamps across event records
US9753909B2 (en) 2012-09-07 2017-09-05 Splunk, Inc. Advanced field extractor with multiple positive examples
US8682906B1 (en) 2013-01-23 2014-03-25 Splunk Inc. Real time display of data field values based on manual editing of regular expressions
US9152929B2 (en) 2013-01-23 2015-10-06 Splunk Inc. Real time display of statistics and values for selected regular expressions
KR101465007B1 (ko) * 2013-02-20 2014-11-25 (주) 사이냅소프트 슬라이드 기능을 구비한 스프레드시트 편집 장치
CN104346149A (zh) 2013-07-30 2015-02-11 商业对象软件有限公司 用于数据可视化的描述性框架
KR20150026095A (ko) * 2013-08-30 2015-03-11 삼성전자주식회사 전자 장치에서 차트를 표시하는 장치 및 방법
CN105446967A (zh) * 2014-06-03 2016-03-30 中国石油化工股份有限公司 一种多模态评价报告的生成方法
CN106126489A (zh) * 2016-06-23 2016-11-16 江苏中威科技软件系统有限公司 一种报告文件动态图表编辑方法及系统
US11941344B2 (en) * 2016-09-29 2024-03-26 Dropbox, Inc. Document differences analysis and presentation
KR101769129B1 (ko) * 2017-02-07 2017-08-17 주식회사 뉴스젤리 온라인 환경에서 구현되는 대시보드 내 차트간 인터랙션 방법
US11074726B2 (en) * 2017-03-09 2021-07-27 Apple Inc. Techniques for automatically mitigating overlapping labels associated with pie charts
US10956237B2 (en) * 2017-06-02 2021-03-23 Oracle International Corporation Inter-application sharing of business intelligence data
WO2019113180A1 (en) * 2017-12-06 2019-06-13 Activegraf, Inc. Methods for two-way data write back in presentations
CN112131845A (zh) * 2020-08-27 2020-12-25 北京云动智效网络科技有限公司 Ppt数据图表制作方法及设备

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4219565A (en) 1979-06-26 1980-08-26 Shell Oil Company Oxyimino-substituted cyclopropanecarboxylate pesticides
US4815029A (en) * 1985-09-23 1989-03-21 International Business Machines Corp. In-line dynamic editor for mixed object documents
US5079695A (en) * 1988-04-25 1992-01-07 Hewlett-Packard Company Object management facility which includes a snapshot facility for providing data transfer between two objects
EP0820008A3 (en) * 1992-12-01 2006-05-24 Microsoft Corporation A method and system for in-place interaction with embedded objects
US5664208A (en) * 1995-05-16 1997-09-02 Apple Computer, Inc. Methods and apparatuses for seamless compound document processing
US5619631A (en) * 1995-06-07 1997-04-08 Binaryblitz Method and apparatus for data alteration by manipulation of representational graphs
KR0170318B1 (ko) 1995-07-14 1999-03-30 김광호 위성 자동 안내 방법
US6446135B1 (en) * 1996-03-05 2002-09-03 Microsoft Corporation Method and system for querying and executing commands of an application program
US6249283B1 (en) * 1997-07-15 2001-06-19 International Business Machines Corporation Using OCR to enter graphics as text into a clipboard
US7130831B2 (en) * 1999-02-08 2006-10-31 Copyright Clearance Center, Inc. Limited-use browser and security system
US6407761B1 (en) * 1999-05-10 2002-06-18 Sap Aktiengesellschaft System and method for the visual customization of business object interfaces
US6701485B1 (en) * 1999-06-15 2004-03-02 Microsoft Corporation Binding spreadsheet cells to objects
US6806890B2 (en) 1999-08-17 2004-10-19 International Business Machines Corporation Generating a graphical user interface from a command syntax for managing multiple computer systems as one computer system
US6556220B1 (en) * 1999-10-21 2003-04-29 International Business Machines Corporation Method and system to display, modify or substitute the contents of self-describing objects
US6772413B2 (en) * 1999-12-21 2004-08-03 Datapower Technology, Inc. Method and apparatus of data exchange using runtime code generator and translator
US7117435B1 (en) * 2000-06-21 2006-10-03 Microsoft Corporation Spreadsheet fields in text
US8677505B2 (en) * 2000-11-13 2014-03-18 Digital Doors, Inc. Security system with extraction, reconstruction and secure recovery and storage of data
JP2005508552A (ja) * 2001-11-09 2005-03-31 エー. ツァオ,シェン データ対象物向けメモリシステム
US7509577B2 (en) * 2002-03-08 2009-03-24 Toshiba Corp Oration Method and system for implementing a clipboard
US20030174165A1 (en) * 2002-03-18 2003-09-18 Barney Rock D. System and method for rendering a directed graph
US7480861B2 (en) * 2002-10-09 2009-01-20 Microsoft Corporation System and method for converting between text format and outline format
US8195714B2 (en) * 2002-12-11 2012-06-05 Leaper Technologies, Inc. Context instantiated application protocol
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US7188308B2 (en) * 2003-04-08 2007-03-06 Thomas Weise Interface and method for exploring a collection of data
US7796141B2 (en) * 2003-05-14 2010-09-14 Timothy M. Sheridan Persistent portal
US7434157B2 (en) 2003-12-09 2008-10-07 Microsoft Corporation Programmable object model for namespace or schema library support in a software application
US7197502B2 (en) * 2004-02-18 2007-03-27 Friendly Polynomials, Inc. Machine-implemented activity management system using asynchronously shared activity data objects and journal data items
US7290205B2 (en) * 2004-06-23 2007-10-30 Sas Institute Inc. System and method for management of document cross-reference links
US20060064632A1 (en) * 2004-09-23 2006-03-23 Peter Vignet Method and system to inverse graphs
US8468441B2 (en) * 2005-09-15 2013-06-18 Microsoft Corporation Cross-application support of charts

Also Published As

Publication number Publication date
CA2619056C (en) 2014-03-04
CA2619056A1 (en) 2007-04-05
BRPI0615817A2 (pt) 2011-05-24
MX2008003416A (es) 2008-11-12
AU2006295278A1 (en) 2007-04-05
US20070061751A1 (en) 2007-03-15
KR20080045710A (ko) 2008-05-23
MY152519A (en) 2014-10-15
WO2007037916A1 (en) 2007-04-05
RU2419847C2 (ru) 2011-05-27
AU2006295278B2 (en) 2011-02-17
CN101263488A (zh) 2008-09-10
EP1952264A4 (en) 2011-03-16
EP1952264A1 (en) 2008-08-06
JP2009509238A (ja) 2009-03-05
NO342716B1 (no) 2018-07-30
NO20080931L (no) 2008-04-11
US8578277B2 (en) 2013-11-05
RU2008110062A (ru) 2009-09-20
JP5551363B2 (ja) 2014-07-16

Similar Documents

Publication Publication Date Title
KR101377311B1 (ko) 문서에서의 차트 통합
US10860778B2 (en) System, method, and software application for enabling a user to view and interact with a visual map in an external application
US7721205B2 (en) Integration of composite objects in host applications
US8468441B2 (en) Cross-application support of charts
US8713444B2 (en) System and method for browsing tabbed-heterogeneous windows
US8074167B2 (en) Cross domain presence of web user interface and logic
US10002035B2 (en) Visual selection and rendering of multiple clip board formats
US8880564B2 (en) Generic model editing framework
US11677807B2 (en) System and method to standardize and improve implementation efficiency of user interface content
US20050289450A1 (en) User interface virtualization
US20060265359A1 (en) Flexible data-bound user interfaces
US10169054B2 (en) Undo and redo of content specific operations
US8170983B2 (en) Managing data across a semantic data view and a presentation data view
JP2007122724A (ja) 埋め込み画像スタイル識別子と共にベクトル画像を記憶する装置並びに画像スタイル属性を使用して装置画像をフォーマットする方法及びユーティリティ
KR100955750B1 (ko) 문서 컨텐트의 복수 렌디션을 제공하는 시스템 및 방법
EP2203813A2 (en) Declarative model interpretation

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 7