專利名稱:用對數據庫的查詢自動填充的制作方法
用對數據庫的査詢自動填充北旦 冃豕自動填充電子表格條目是一種有用的工具,特別是對于用戶具有輸入重復數 據的任務的大數據輸入項目。例如,用戶可被要求在電子表格的一個列內重復地輸入相同的字或短語,并且在許多電子表格程序內發現的"自動填充"(autocomplete) 功能通過在用戶開始在電子表格單元格內輸入數據時提供對已填充條目的聯想來 簡化該任務。盡管電子表格可被用來呈現來自許多不同源的數據,但自動填充功能通常已 被限于對在當前數據表格內發現的數據條目提供聯想。因而,當用戶嘗試尋址與該 電子表格分開的數據源,諸如至分開的數據庫內條目的鏈接時,用戶不會得到對該 數據庫內的各個數據位置的任何自動填充聯想的提示。該問題可由用戶不熟悉該數 據庫的布局或配置的事實、以及該數據庫的格式或句法可能對用戶不直觀的事實混 合而成。例如,用戶可能不知道特定數據庫的預定義維度標簽,或者數據源可使用 復雜和非直觀的命令或編程語言。此外,即使用戶熟悉底層數據庫結構和句法,用 戶仍然會被要求在鏈接電子表格內來自數據庫的數據時手動地輸入長串(即數據庫 內的地址)。任何印刷錯誤或數據庫標簽或命令的句法中的差錯將在結果的電子表 格中產生差錯。相關于這些和其它因素,作出了本公開的主題。概述本文中公開的各示例性實施例可包括用于減少上述和其它缺點的方法和系 統。本文中公開的各示例性實施例可包括用于根據單獨的多維數據庫在電子表格的 活動單元格中自動填充條目的方法和系統。其它實施例可包括用于自動填充數據條目的方法,包括訪問一預定義的數 據源,激活應用程序的編輯模式,確定該應用程序中的部分數據條目,以及基于該 應用程序中的部分條目顯示相應數據標簽的列表。本文中公開的方法和系統可被實現為計算機進程、計算系統、或諸如計算機 程序產品的制品。計算機程序產品可以是計算機系統可讀的、并編碼用于執行計算 機進程的指令的計算機程序的計算機存儲介質。計算機程序產品還可以是計算系統可讀的、并編碼用于執行計算機進程的指令的計算機程序的在載波上傳播的信號。 附圖簡述
圖1示出根據一示例性實施例的用于根據數據庫自動填充條目的系統。圖2示出可實現各示例性實施例的適當計算系統環境的一個示例。圖3示出根據一示例性實施例的用于根據一預先配置的多維數據庫自動填充電子表格程序的活動單元格中的條目的系統。圖4示出根據一示例性實施例的使用數據庫來自動填充電子表格的條目中所涉及的操作特性。圖5示出根據一示例性實施例的使用數據庫來自動填充電子表格的活動單元格內的條目中所涉及的操作特性。圖6是示出根據一示例性實施例的根據數據庫自動填充電子表格的條目的方法的流程圖。 詳細描述圖1示出根據一示例性實施例的用于自動地填充("自動填充")電子表格的活動單元格中的條目的系統100。在該實施例中,系統100包括服務器102,該服 務器102又包括一數據源或數據庫104。服務器102通信地耦合于客戶機106。客 戶機106包括電子表格應用程序108。電子表格應用程序108包括一活動單元格 110,它由圍繞特定活動單元格110的深色邊框突出。在活動單元格110內的是部 分數據條目114。在該實施例中,部分數據條目114包括運算數112。基于該部分 數據條目114,示出了元素116。元素116包括來自數據庫104的數據標簽/坐標,該數據庫104耦合于服務器 106并且相應地耦合于客戶機106和電子表格應用程序108。此外,元素116可以 是適用于所使用的數據庫的特定類型、或所創建的電子表格的類型的函數或其它命 令。數據庫104可被查詢以至少部分地基于部分數據條目114針對活動單元格110 聯想已填充條目。數據庫104通常是多維和/或在線的分析處理即"OLAP"數據庫。數據庫104 可以是"立方體"數據庫,即可以是更大的關系數據庫的一部分。如果數據庫104 是OLAP型數據庫,則該數據庫的坐標可被描述為多維數據庫的維度、層次、元、 或坐標。數據庫104獨立于電子表格108。指示符118也可隨聯想元素116被包括。指示符118可指示聯想元素是什么類型的元素,即函數、維度、層次、元等。這可 幫助用戶確定選擇哪個聯想元素。使用該系統,用戶可能不需要知道鏈接到當前電 子表格的數據庫的數據標簽、函數、命令和/或維度來輸入數據標簽。電子表格應用程序與數據源之間的通信可用多維表達式語言即MDX來完成。可以理解,可利用諸如其它類型的數據庫、表格、數據透視表等的其它數據源而不偏離在本文中公開的概念。此外,可在本發明范圍內利用諸如順序查詢語言(SQL) 或其它數據庫查詢語言的其它命令語言或協議。此外,盡管應用程序在本文中被描 述為電子表格,但可以理解諸如文字處理應用程序的其它應用程序可利用該自動填 充方法和系統。元素116可包括所有可能的函數和坐標,其中部分數據條目114僅僅是一運 算數和/或無字符條目。元素116可包括數據庫104內的所有可用數據標簽、以及 其它命令和/或運算數。在一實施例中, 一旦字符被輸入到活動單元格110內的部 分數據條目114,數據標簽116就可包括以已經輸入的該特定字符開頭的標簽、或 基于輸入到該活動單元格110內的字符可能適用的命令。還可以理解, 一旦另一個 字符被鍵入該活動單元格110,所顯示的標簽116就可改變和/或在數目上有所減 少。當用戶每一次擊鍵時,特定的查詢可被創建并被發送到外部服務器以從數據 庫取來與該部分數據條目相對應的一個或多個元素。在多維數據庫的情形中,所發 送的查詢以及所返回的元素可以是MDX表達式。從數據庫返回的MDX表達可被 用來構建更為復雜的MDX表達式,最終可被用作諸如Microsoft Excel Cube函 數、數據透視表、其它表格等的電子表格函數的更大自變量的一部分。所顯示的列 表可以是自動填充下拉列表,它允許用戶從該列表中選擇一個項或繼續輸入字符。 當然,在輸入新字符的任何時候,可執行一新的查詢。使用系統100,用戶不需要知道數據庫內的特定數據標簽或元素,因為他們可 搜索適當的數據標簽。這將節約時間且用戶不會受挫,因為特定的數據標簽可根據 預定義數據標簽的列表自動填充,由此減少差錯和電子表格配置所需的時間。圖2示出了可實現本發明各實施例的適當計算系統環境200的一個示例。在 其最基本配置中,系統200通常包括至少一個處理單元202和存儲器204。取決于 計算設備的確切配置和類型,系統存儲器204可以是易失性的(諸如RAM)、非易 失性的(諸如ROM、閃存等等)、或兩者的某些組合。該最基本配置在圖2中由虛 線206示出。此外,系統200可具有附加特征或功能。例如,系統200還可包括其它存儲裝置(可移動和/或不可移動),包括但不限于諸如磁盤、光盤、或磁帶。這種其它存儲器在圖2由可移動存儲器208和不可移動存儲器210示出。計算機存儲 介質可包括以任何方法或技術實現的易失性和非易失性、可移動和不可移動的用來 存儲諸如計算機可讀指令、數據結構、程序模塊、或其它數據的信息的介質。存儲 器204、可移動存儲208和不可移動存儲210都是計算機存儲介質的示例。計算機 存儲介質包括,但不限于RAM、 ROM、 EEPROM、閃存或其它存儲器技術、 CD-ROM、數字化多功能光盤(DVD)或其它光學存儲、磁帶盒、磁帶、磁盤存 儲器或其它磁性存儲裝置、或可用來存儲所需信息并可由系統200訪問的任何其它 介質。任何這種計算機存儲介質可以是系統200的一部分。系統200還可包含使設備200能與其它設備通信的通信連接212。通信連接 212是通信介質的一個示例。通信介質通常體現為計算機可讀指令、數據結構、程 序模塊、或其它諸如載波或其它傳輸機制的已調制數據的信號中的數據,并包括任 何信息傳輸介質。術語"已調制數據信號"意指具有以這種在信號中編碼信息的方 式來設置或改變的一個或多個特征的信號。作為示例,而非限制,通信介質包括諸 如有線網絡或直接有線連接的有線介質,以及諸如聲學、RF、紅外和其它無線介 質的無線介質。系統200還可具有諸如鍵盤、鼠標、筆、語音輸入裝置、觸摸輸入裝置等等 的輸入設備214。還可包括諸如顯示器、揚聲器、打印機等等的輸出設備216。所 有這些設備在本領域中都是眾所周知的且無需在此贅述。諸如系統200的計算設備通常包括至少某些形式的計算機可讀介質。計算機 可讀介質可以是可由系統200訪問的任何可用介質。作為示例而非限制,計算機可 讀介質可包括如上所述的計算機存儲介質和通信介質。圖3示出根據一示例性實施例的用于自動填充電子表格應用程序的活動單元 格中的條目的系統300,其中電子表格應用程序通信地耦合于數據庫。本實施例中 的系統300包括相應地具有存儲其上的一個或多個數據庫304的服務器302。系統 300可任選地包括服務器302可與之耦合的諸如LAN、 WAN、因特網或其它網絡 的網絡306。本實施例中的系統300還包括客戶機308。客戶機308包括通信耦合于電子表 格應用程序312的通信模塊310。此外,通信模塊310耦合于網絡306。應當理解, 通信模塊310也可直接耦合于服務器302和/或直接耦合于數據庫304。當用戶在電子表格應用程序312中設立了一個新的電子表格時,他們可從可相鏈接的一數據庫304列表中作選擇。或者,用戶可鍵入要鏈接的數據庫的位置。 該鏈接然后可被給予一標簽名稱,從而該名稱可由查詢模塊311用來構建針對該命 名數據庫的査詢。查詢模塊311被配置成接收部分數據條目和所鏈接數據庫的名 稱,然后構建將被傳遞到服務器302 (經由通信模塊310)以作解釋的查詢。數據 庫304然后被査詢,并且響應于該査詢向通信模塊310返回聯想的已填充元素。通 信模塊310然后將那些聯想的已填充元素傳遞給電子表格應用程序312,該應用程 序312又將這些聯想傳遞到用戶界面314供用戶選擇。數據庫304可以是多維的和/或OLAP型數據庫、或者是可鏈接到電子表格312 的其它類型的外部數據源。通信模塊310可位于客戶機308上,然而它也可被包括 在服務器302上、或者可被包括在數據庫304等其它位置中。通信模塊310通常由 數據庫304提供,從而客戶機308和電子表格應用程序312可與數據庫304通信。 在一實施例中,通信模塊310可包括由特定鏈接數據庫或數據庫類型提供(和配置) 的動態鏈接庫(DLL)。査詢模塊311在一實施例中被示為獨立于電子表格應用程序312。然而,査詢 模塊311可被包括在電子表格應用程序312內。査詢模塊311的位置還可不在客戶 機308內,諸如在服務器302內、或一遠程位置上。查詢模塊311使得聯想的已填 充元素能被動態而非靜態地創建和呈現。因為數據庫304可以是不同類型的并且可被設置在不同位置,并且可具有多 維,所以對用戶而言對各個數據庫、數據、元數據、和/或其各部分或組合的數據 標簽、表達式、和/或維度、標簽、坐標有通盤了解是困難的。因此,根據元素/數 據標簽/維度標簽、維度、坐標的定義列表自動填充可能是非常有幫助的,因為用 戶將不必事先知道配置電子表格應用程序312所需的所有數據庫304的所有特定數 據標簽或元素。圖4示出電子表格400的一部分,包括突出或激活單元格402,它由活動單元 格402周圍的深色邊框403勾畫出來。在活動單元格402內,可以有運算數404 以及部分數據條目406。運算數404可以是部分數據條目406的一部分。對應于部 分數據條目406的是一顯示的元素列表408,它經由査詢從鏈接數據庫中返回。元 素408對應于部分數據條目406,這些元素408以及數據庫鏈接的名稱被用來創建 對所鏈接數據庫的查詢。在該示例中,所有聯想元素408都是可基于部分數據條目 406、電子表格的類型、和/或所鏈接的特定數據庫的類型來使用的函數。用此方式, 元素408部分地基于部分數據條目406被聯想。當用戶輸入更多字符時,創建新的查詢并返回不同的聯想已填充元素。因此,所顯示的聯想數據列表可取決于所輸入 的字符改變和/或在數目上有所減少。圖5示出電子表格500的一部分,在本實施例中它包括活動單元格502。在活 動單元格502內,可以是部分數據條目506。在本實施例中,部分數據條目506包 括字母"s"。并且相應地來自所鏈接數據庫的元素508對應于字母"s",并來自針 對該特定活動單元502鏈接的數據庫內。如圖所示,如果用戶鍵入諸如"e"的另 一字母,則所顯示的元素列表508將改變成僅僅是以"se"開頭的元素,諸如 "search"、 "second"、 "seriessum"和"set—val"等。此外,可輸入除字母以外的 字符。例如,輸入"("可指示用戶可能想要輸入一命令和/或數據標簽。在本實例 中,元素和/或數據標簽可基于所鏈接數據庫的特定屬性向用戶顯示。可連同聯想元素508包括指示符510、 512、 514。指示符510、 512、 514可指 示聯想元素508是什么類型的元素。指示符510指出其右側的相應元素是可至少部 分地基于部分數據條目506來利用的函數。指示符512可指示相應的元素是來自所 鏈接數據庫的維度。指示符514可指示相應元素是來自所鏈接數據庫的層次或元。 指示符510、 512、 514可使用戶能更好地、或更容易地輸入適當的元素并且更容易 地構建電子表格。圖6示出結合本發明各方面的操作流600。在一示例性實施例中,流600從創 建和定義一數據庫的定義操作602開始。當特定坐標被定義并保存且數據字段被填 充時, 一數據庫被定義或創建。該步驟可以是任選的,因為用戶可鏈接到已被創建 和定義的數據庫。創建操作604創建一電子表格。創建操作604也是任選的,因為電子表格可 以是己經創建和/或打開的,使用戶可激活單元格的編輯模式來使用自動填充功能。一旦數據庫和電子表格已經被創建,電子表格就可鏈接到數據庫并査詢之。 應當理解,其它類型的應用程序和/或數據庫可利用該方法來為用戶自動填充任一數據庫的數據標簽、維度標簽、元素、和/或維度。接著,操作606將電子表格耦合到數據庫。當電子表格被創建且在該電子表 格內特定單元格被定義時,不同的數據庫可被鏈接到該單元格和/或電子表格中的 信息,使得電子表格自動填充功能將具有一參考數據庫來向用戶提供聯想和/或顯 示已填充元素等。 一旦鏈接已被創建,每個鏈接就可被標識或貼上標簽。該鏈接標 簽可連同該活動單元格內的部分數據條目被用來創建一査詢。該査詢是針對所鏈接 的數據庫的,并且以用戶可從中選擇的列表的形式來返回聯想的已填充元素。如果用戶選擇或接受聯想的已填充元素,則它將被添加到活動單元格中的現有字符串(如果有的話)。如果用戶然后開始添加另一數據項,則將創建一新査詢。此外, 用戶可輸入可由系統根據其動作的另一類型的命令,諸如函數,或者用戶繼續鍵入 而不接受任何聯想填充。一旦電子表格被打開且被鏈接到數據庫,用戶就可采用激活操作608來激活 該電子表格的單元格。這可用各種方法來完成,包括點擊該單元格、雙擊該單元格、 以及諸如使用鍵盤來進入電子表格或其它應用程序中單元格的編輯模式。在一實施 例中,特定單元格周圍的深色邊框指示該特定單元格被激活。可以理解,可使用其 它用于激活單元格的和指示活動單元格的方法。在激活單元格之后,標識操作610標識活動單元格內的部分數據條目。這可不包括條目,即沒有字符被輸入到該活動單元格中作為部分數據條目。該部分數據 條目還可以是字母、圓括號、逗號、方括號和/或"{"等其它類型字符。電子表格 應用程序然后利用査詢模塊來構建對所鏈接數據庫的査詢。在一實施例中,查詢模 塊將査詢發送給通信模塊。該通信模塊可以是由如上所述的特定鏈接數據庫或數據庫類型配置的數據邏輯庫(DLL)。該査詢然后被發送給數據庫或解釋該査詢并査 詢數據庫的數據庫服務器。然后査詢向通信模塊返回聯想的已填充元素。聯想已填 充元素然后被發送給電子表格以供用戶選擇/接受。當部分數據條目改變時,新的 查詢將被創建和執行以從所鏈接的數據源取回聯想已填充元素的更新列表。可以理解,當部分數據條目改變時,對應于該特定部分數據條目的元素也將 改變。潛在元素的列表可以是至少部分地基于活動單元格中的部分數據條目的定義 數據標簽、維度、維度標簽、函數、其它元素、和/或坐標。此外,應當理解,潛 在元素列表還包括提供部分數據條目的可能匹配的運算數和/或其它數據庫描述符 或命令。在標識特定數據項之后,顯示操作612在用戶界面上顯示部分數據條目的相 應元素。如上所述,相應元素通常是來自鏈接于該特定單元格和/或電子表格的數 據庫的坐標、函數、維度和/或數據標簽。任選判定614確定部分數據條目是否已改變。如果用戶已改變了部分數據條 目,則跟隨"是"分支返回以在610標識新的部分數據條目。新的査詢將被創建和 完成,且顯示操作612將更新相應元素的顯示供用戶選擇。如果在614部分數據條 目沒有改變,則跟隨"否"分支以在616結束該流。圖7示出用于編輯和定義到數據源的鏈接的用戶界面700。界面700可以是定義應用程序與數據源之間的鏈接的一種方法。在該實施例中,界面700包括一連接名稱部分702。連接名稱部分702被配置成顯示和允許編輯連接或鏈接的名稱/描 述。該名稱由査詢模塊用來標識和査詢所鏈接的數據庫。界面700還包括允許編輯和定義鏈接的描述的描述部分。該描述可包括鏈接 數據庫中的數據、鏈接數據庫名稱等。該描述可由用戶用來更佳地描述數據庫的內 容,使電子表格更易于理解和構建。界面700還可包括一連接文件部分706。連接文件部分706使得能夠容易地標 識(和編輯)連接文件的位置。界面700還包括一連接字符串部分708。連接字符串部分708為編輯字符串目 的顯示連接字符串。該連接字符串可包括一類鏈接到電子表格的數據庫(即OLAP、 SQL等)。它還可包括一類通信協議、安全特征等。許多其它類型的數據和定義可 使用該界面來顯示和編輯。本發明各個實施例的邏輯操作可被實現為(l)在計算系統上運行的一系列計算 機實現動作或程序模塊,和/或(2)計算系統內的互連機器邏輯電路或電路模塊。該 實現是取決于實現本發明的計算系統的性能要求的選擇問題。因此,構成本文中所 述示例性實施例的各實施例的邏輯操作被不同地稱作操作、結構設備、動作或模塊。 本領域技術人員可以理解,這些操作、結構設備、動作和模塊可用軟件、固件、專 用數字邏輯、和/或其任意組合實現,而不背離本公開的如所附權利要求內所闡述 的精神和范圍。盡管已用對計算機結構特征、方法動作和計算機可讀介質特定的語言描述了 各示例性實施例,但可以理解在所附權利要求中定義的示例性實施例不必限制于所 述特定結構、動作或介質。作為示例,與MDX不同的格式可被用來配置和/或訪 問數據庫或其它數據源。因此,特定的結構特征、動作和介質被公開為實現要求保 護發明的示例性實施例。上述各個實施例僅作為例證提供,且不應當被解釋為限制本公開。本領域技 術人員將容易理解可對本公開作各種更改和改變,而不遵循本文中說明和描述的示 例性實施例和應用,并且不背離本公開在所附權利要求中闡述的真實精神和范圍。
權利要求
1.一種編碼指令的計算機程序的計算機可讀介質,這些指令用于執行根據數據庫聯想填充電子表格中活動單元格的部分數據條目的計算機進程,其中所述數據庫獨立于所述電子表格并通過通信鏈路連接到所述電子表格,所述計算機進程包括定義所述活動單元格內的部分數據條目;查詢所述數據庫以從所述數據庫中標識與所述部分數據條目相對應的一元素;以及將所述相應元素顯示為所述部分數據條目的聯想填充。
2. 如權利要求1所述的計算機可讀介質,還包括 接收與所述聯想填充相關聯的接受命令。
3. 如權利要求2所述的計算機可讀介質,還包括響應于所述接受命令,將所述匹配已填充元素儲存在所述活動單元格內。
4. 如權利要求2所述的計算機可讀介質,還包括 接收與所述聯想填充相關的命令; 根據所述命令對所述聯想填充進行操作;以及如果所述命令包含一經更改的部分數據條目,則顯示與所述經更改的部分數 據條目相對應的經更改聯想元素。
5. 如權利要求l所述的計算機可讀介質,還包括在靠近所述活動單元格的列表中顯示多個聯想填充,以使用戶能從所述列表 中選擇所述聯想填充之一。
6. 如權利要求1所述的計算機可讀介質,還包括 響應于用戶輸入更改所述活動單元格中的所述部分數據條目;以及 調節所述聯想填充的列表以與所述經更改的部分數據條目相對應。
7. 如權利要求1所述的計算機可讀介質,其特征在于,所述聯想填充包括所 述數據庫的維度、層次、元或坐標。
8. 如權利要求1所述的計算機可讀介質,其特征在于,所述數據庫是一 OLAP 數據庫。
9. 一種用于自動填充電子表格的活動單元格內的條目的系統,包括服務器設備上所包含的數據庫;客戶機設備,包括具有帶有部分數據條目的活動單元格的電子表格應用程序;以及通信模塊,被配置成在所述客戶機設備與所述服務器設備之間通信以基于所 述活動單元格內的所述部分數據條目從所述數據庫中取回聯想已填充元素,其中來自所述數據庫的所述已填充元素被顯示以供所述電子表格應用程序的用戶選擇。
10. 如權利要求9所述的系統,其特征在于,還包括一査詢模塊,被配置成接 收所述部分數據條目和到數據庫的預定義鏈接,其中所述査詢模塊基于所述部分數 據條目創建針對所述鏈接數據庫的査詢。
11. 如權利要求9所述的系統,其特征在于,所述通信模塊是由所述數據庫提 供的動態鏈接庫。
12. 如權利要求9所述的系統,其特征在于,所述通信模塊由所述數據庫配置。
13. 如權利要求9所述的系統,其特征在于,至少一個聯想已填充元素是所述 數據庫的坐標。
14. 如權利要求9所述的系統,其特征在于,至少一個聯想已填充元素是能在 所述電子表格應用程序中利用的函數。
15. —種編碼指令的計算機程序的計算機可讀介質,這些指令用于執行利用預 配置數據庫自動填充電子表格的活動單元格中的條目的計算機進程,所述計算機進 程包括將所述電子表格鏈接到所述預配置的數據庫; 定義所述活動單元格內的部分數據條目; 査詢所述數據庫以找出與所述部分數據條目相對應的元素; 顯示所述相應元素;接收與所述被顯示元素之一相關的接受命令;以及 將所述已接受元素儲存在所述活動單元格內。
16. 如權利要求15所述的計算機可讀介質,還包括 更改所述部分數據條目;以及査詢所述數據庫以標識與所述經更改的部分數據條目相對應的元素。
17. 如權利要求15所述的計算機可讀介質,其特征在于,所述數據庫是OLAP 數據庫。
18. 如權利要求17所述的計算機可讀介質,其特征在于,所述被顯示元素包括所述數據庫的坐標。
19. 如權利要求15所述的計算機可讀介質,其特征在于,至少一個聯想已填充元素是能夠在所述電子表格應用程序中利用的函數。
20. 如權利要求15所述的計算機可讀介質,其特征在于,所述部分數據條目不包括字符,且所述聯想元素包括來自所述數據庫的所有可能函數和坐標。
全文摘要
一種自動填充方法和系統基于預定義的坐標、運算數和/或命令提供對部分數據條目的聯想填充。在一實施例中,該部分數據條目可處于電子表格的活動單元格中,并且預定義坐標可從與活動單元格或電子表格鏈接的單獨、預先配置、多維的數據庫中查詢。
文檔編號G06F17/00GK101258496SQ200680032796
公開日2008年9月3日 申請日期2006年9月7日 優先權日2005年9月8日
發明者A·瑪蒂諾弗, D·F·加納, H·J·迪克曼 申請人:微軟公司