IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社 ビーアイマトリックスの特許一覧

特許7216377クエリバインディング機能を備えたオンラインレポート作成システム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-24
(45)【発行日】2023-02-01
(54)【発明の名称】クエリバインディング機能を備えたオンラインレポート作成システム
(51)【国際特許分類】
   G06Q 10/10 20230101AFI20230125BHJP
【FI】
G06Q10/10
【請求項の数】 6
(21)【出願番号】P 2021093534
(22)【出願日】2021-06-03
(65)【公開番号】P2022097358
(43)【公開日】2022-06-30
【審査請求日】2021-06-03
(31)【優先権主張番号】10-2020-0178176
(32)【優先日】2020-12-18
(33)【優先権主張国・地域又は機関】KR
(73)【特許権者】
【識別番号】512096861
【氏名又は名称】株式会社 ビーアイマトリックス
【氏名又は名称原語表記】BI MATRIX CO.,LTD
【住所又は居所原語表記】New building 17F.,433,Seolleung-ro,Gangnam-gu,Seoul,Republic of Korea
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】ファン ソン ミン
(72)【発明者】
【氏名】イ ヨン ギュン
(72)【発明者】
【氏名】チョ ジョン ス
(72)【発明者】
【氏名】イ スン チョル
(72)【発明者】
【氏名】キム ミン ギュ
(72)【発明者】
【氏名】チェ ハン ナ
【審査官】渡邉 加寿磨
(56)【参考文献】
【文献】特開2017-120610(JP,A)
【文献】特開2017-120645(JP,A)
【文献】特開2012-123607(JP,A)
【文献】特開2015-191258(JP,A)
【文献】安納 順一,新人技術者舞ちゃんのコマンド&スクリプトで楽々ネットワーク管理 第7回 ユーザー情報を一括更新するには,日経NETWORK,日本,日経BP社,2014年09月28日,第174号,p.96-103
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G06F 12/00
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
ユーザ端末のエクセル(登録商標)ツールにインストールされる拡張モジュール及びサーバにより行われる、クエリバインディング機能を備えたオンラインレポート作成システムにおいて、
ウェブ上のレポート画面において、グリッドオブジェクトを編集するが、一つのグリッドオブジェクトについての情報を一つのエクセル文書に保存し、拡張されたエクセルツールによるエクセル文書の編集により、グリッドオブジェクトを編集させるグリッド編集部と、
ウェブ上のレポート画面において、コントロールオブジェクトを生成して編集するコントロール編集部と、
前記エクセルツールが呼び出されると、前記グリッドオブジェクトにマッピングされるエクセル文書を生成するが、グリッドの形態を示すビュー領域シート、基礎データセットを保存するデータ領域シート、加工変数を設定するパラメータ領域シートで構成されるエクセル文書を生成するワークシート初期化部と、
前記エクセル文書のパラメータ領域シート上において、加工変数を設定する加工変数設定部と、
前記ワークシート上の加工変数をクエリ変数でマッピングしてクエリ文を作成するクエリ文作成部と、
前記拡張モジュールに備えられ、前記クエリ文のクエリ変数を加工変数の変数値でバインディングする第2クエリバインディング部と、
前記エクセル文書のワークシート上において、基礎データセットをロードするが、前記第2クエリバインディング部を介して前記クエリ文をバインディングし、バインディングされたクエリ文でロードするデータセットロード部と、
前記サーバに備えられ、前記クエリ文のクエリ変数を加工変数の変数値でバインディングする第1クエリバインディング部と、
グリッドオブジェクトにマッピングされるエクセル文書の内容により、該当グリッドオブジェクトの内容をウェブ上に表示するが、前記第1クエリバインディング部を介して前記クエリ文をバインディングし、バインディングされたクエリ文で基礎データセットをロードし、ロードされた基礎データセットから加工されたデータセットでグリッドオブジェクトの内容を表示するグリッド表示部と、
グリッドオブジェクト及びコントロールオブジェクトで構成されたレポートをウェブ上において表示するが、前記グリッド表示部を介してグリッドオブジェクトを表示するレポートビューア部と、を含み、
前記コントロール編集部は、前記コントロールオブジェクトに前記加工変数をマッピングさせ、
前記第1クエリバインディング部は、変数値を、前記加工変数にマッピングされるコントロールオブジェクトの入力値に設定し、
前記クエリ文においてクエリ変数を用いるとき、ライン削除機能を備え、該当クエリ変数に動的ライン削除機能を示す記号または文字を追加して区分し、
前記第1または第2クエリバインディング部は、クエリ変数がライン削除機能を有する場合、該当加工変数の変数値がないか、空の値であれば、該当クエリ文から該当ラインを削除してバインディングすることを特徴とするクエリバインディング機能を備えたオンラインレポート作成システム。
【請求項2】
前記クエリ文におけるクエリ変数は、変数識別子及び加工変数の名前を結合して構成されて表記され、
前記第1または第2クエリバインディング部は、クエリ文において変数識別子を認識すると、該当変数識別子に連結された文字列を加工変数として認識することを特徴とする請求項1に記載のクエリバインディング機能を備えたオンラインレポート作成システム。
【請求項3】
前記クエリ文において条件により行われる行が異なる場合、該当行に注釈文を挿入し、挿入された注釈文にライン削除機能を有するクエリ変数を挿入し、条件により、クエリ変数の変数値を空の値で入力させるか、任意の値を入力させて、空の値であれば、該当行を削除させ、任意の値であれば、該当行が行われるように提供することを特徴とする請求項に記載のクエリバインディング機能を備えたオンラインレポート作成システム。
【請求項4】
前記加工変数設定部は、変数定義セルの名前を加工変数の名前に設定し、前記加工変数は、前記エクセル文書上においてグリッドに表示すべきテーブルのセル内の数式に用いられることを特徴とする請求項1に記載のクエリバインディング機能を備えたオンラインレポート作成システム。
【請求項5】
前記ビュー領域シート上のテーブルは、前記データ領域シート上に入力された基礎データセットを参照するが、前記ビュー領域シート上のテーブル内のセルの数式において、前記データ領域シートのセルを参照し、
前記グリッド表示部は、基礎データセットをデータベースから取り込んで仮想シート上に保存し、前記グリッドオブジェクトのテーブルのそれぞれのセルを数式により反映するとき、参照するデータ領域シートのセルの内容の代わりに、仮想シート上の該当セルの内容で反映することを特徴とする請求項に記載のクエリバインディング機能を備えたオンラインレポート作成システム。
【請求項6】
前記グリッド編集部、コントロール編集部、レポートビューア部、グリッド表示部、第1クエリバインディング部は、前記サーバに備えられ、ワークシート初期化部、加工変数設定部、データセットロード部、編集結果保存部、第2クエリバインディング部、クエリ文作成部は、前記拡張モジュールに備えられることを特徴とする請求項1に記載のクエリバインディング機能を備えたオンラインレポート作成システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クエリ文を介して、データベースから基礎データセットを取り込み、ウェブ上のレポートを作成して提供するとき、加工変数を設定してクエリ文を作成するように支援し、クエリ文において、加工変数を変数値でバインディングして、基礎データセットを取り込む、クエリバインディング機能を備えたオンラインレポート作成システムに関する。
【0002】
また、本発明は、ウェブ上のレポート内にそれぞれのグリッドを作成するとき、エクセル(登録商標)ツールで作成するように支援し、エクセルツールの拡張モジュールにおいてクエリ文を作成するように支援し、エクセルツール上では、加工変数をシート上に設定し、ウェブ上には、該当加工変数をコントロールオブジェクトにマッピングさせるように支援する、クエリバインディング機能を備えたオンラインレポート作成システムに関する。
【背景技術】
【0003】
一般に、サラリーマンの業務時間のうち、文書作成にかかる時間が全体業務に占める割合が高い。このような文書作成にかかる時間及び労力による費用の節減は、企業の生産性の側面では、必須に要求される部分である。このため、業務を統合的に管理して自動化するシステムが導入されている。
【0004】
一例として、ウェブ環境においてデータベースに問い合わせを実行して分析するレポーティング技術が提示されている[特許文献1]。この先行技術によれば、開発者がデータベースサーバのデータを用いて、ウィジウィグ(WYSIWYG)方式及びドラッグアンドドロップ(Drag&Drop)方式によりレポートを設計し、ウェブサーバは、設計されたレポートを登録され、レポートの設定内容に応じて、データベースサーバから必要なデータを取り込んでレポートを生成し、ユーザは、ウェブブラウザ上においてレポートを要請して閲覧する。
【0005】
また、ウェブサービスを用いて、数か所に分散されたデータにアクセスし、統合して、レポートをリアルタイムに出力する技術も提示されている[特許文献2]。また、管理者が、データベースから受信したテーブル情報を、ウェブ上において選択して、マッピングテーブルを生成し、それを用いて、多様な様式のレポートを生成し、それをウェブ上において選択して確認する技術も提示されている[特許文献3]。
【0006】
また、ウェブ上において、エクセル形態でレポートを作成する技術も提示されている[特許文献4]。この先行技術は、エクセル形態のグリッドをウェブ上において直接作成しなければならず、ウェブ上におけるグリッド作業のインターフェースを、エクセルのインターフェースと同様に提供している。
【0007】
しかしながら、ウェブ上において、エクセルのような多様なインターフェースを提供し難く、それぞれのサービス毎にインターフェース方式が異なるので、ユーザが、ウェブ上のインターフェースを不便に感じることがある。すなわち、オンライン上のインターフェースが、オフライン上のエクセルプログラムのインターフェースと同一ではない。
【0008】
ところが、ユーザは、自分のコンピュータ端末にインストールされて用いる(オフライン上の)エクセルツールのインターフェースにさらに慣れている。したがって、ユーザが、ウェブ上においてレポートを作成するとき、データ加工作業を、商用エクセルのようなオフライン上のアプリケーションで行えるように支援する技術が必要であった。
【先行技術文献】
【特許文献】
【0009】
【文献】韓国登録特許第10-0497811号公報
【文献】韓国登録特許第10-0697155号公報
【文献】韓国公開特許第10-2013-0126012号公報
【文献】韓国登録特許第10-1951719号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明の目的は、上述した問題点を解決するためのものであって、クエリ文を介して、データベースから基礎データセットを取り込み、ウェブ上のレポートを作成して提供するとき、加工変数を設定してクエリ文を作成するように支援し、クエリ文において、加工変数を変数値でバインディングして、基礎データセットを取り込む、クエリバインディング機能を備えたオンラインレポート作成システムを提供することである。
【0011】
また、本発明の他の目的は、ウェブ上のレポート内にそれぞれのグリッドを作成するとき、エクセルツールで作成するように支援し、エクセルツールの拡張モジュールにおいてクエリ文を作成するように支援し、エクセルツール上では、加工変数をシート上に設定し、ウェブ上には、該当加工変数をコントロールオブジェクトにマッピングさせるように支援する、クエリバインディング機能を備えたオンラインレポート作成システムを提供することである。
【課題を解決するための手段】
【0012】
前記目的を達成するために、本発明は、ユーザ端末のエクセルツールにインストールされる拡張モジュール及びサーバにより行われる、クエリバインディング機能を備えたオンラインレポート作成システムに関するものであって、ウェブ上のレポート画面において、グリッドオブジェクトを編集するが、一つのグリッドオブジェクトについての情報を一つのエクセル文書に保存し、拡張されたエクセルツールによるエクセル文書の編集により、グリッドオブジェクトを編集させるグリッド編集部と、ウェブ上のレポート画面において、コントロールオブジェクトを生成して編集するコントロール編集部と、前記エクセルツールが呼び出されると、前記グリッドオブジェクトにマッピングされるエクセル文書を生成するが、グリッドの形態を示すビュー領域シート、基礎データセットを保存するデータ領域シート、加工変数を設定するパラメータ領域シートで構成されるエクセル文書を生成するワークシート初期化部と、前記エクセル文書のパラメータ領域シート上において、加工変数を設定する加工変数設定部と、前記ワークシート上の加工変数をクエリ変数でマッピングしてクエリ文を作成するクエリ文作成部と、前記拡張モジュールに備えられ、前記クエリ文のクエリ変数を加工変数の変数値でバインディングする第2クエリバインディング部と、前記エクセル文書のワークシート上において、基礎データセットをロードするが、前記第2クエリバインディング部を介して前記クエリ文をバインディングし、バインディングされたクエリ文でロードするデータセットロード部と、前記サーバに備えられ、前記クエリ文のクエリ変数を加工変数の変数値でバインディングする第1クエリバインディング部と、グリッドオブジェクトにマッピングされるエクセル文書の内容により、該当グリッドオブジェクトの内容をウェブ上に表示するが、前記第1クエリバインディング部を介して前記クエリ文をバインディングし、バインディングされたクエリ文で基礎データセットをロードし、ロードされた基礎データセットから加工されたデータセットでグリッドオブジェクトの内容を表示するグリッド表示部と、グリッドオブジェクト及びコントロールオブジェクトで構成されたレポートをウェブ上において表示するが、前記グリッド表示部を介してグリッドオブジェクトを表示するレポートビューア部と、を含み、前記コントロール編集部は、前記コントロールオブジェクトに前記加工変数をマッピングさせ、前記第1クエリバインディング部は、前記変数値を、前記加工変数にマッピングされるコントロールオブジェクトの入力値に設定することを特徴とする。
【0013】
また、本発明は、クエリバインディング機能を備えたオンラインレポート作成システムにおいて、前記クエリ文におけるクエリ変数は、変数識別子及び加工変数の名前を結合して構成されて表記され、前記第1または第2クエリバインディング部は、クエリ文において変数識別子を認識すると、該当変数識別子に連結された文字列を加工変数として認識することを特徴とする。
【0014】
また、本発明は、クエリバインディング機能を備えたオンラインレポート作成システムにおいて、前記クエリ文においてクエリ変数を用いるとき、ライン削除機能を備え、該当クエリ変数に動的ライン削除機能を示す記号または文字を追加して区分し、前記第1または第2クエリバインディング部は、クエリ変数がライン削除機能を有する場合、該当加工変数の変数値がないか、空の値であれば、該当クエリ文から該当ラインを削除してバインディングすることを特徴とする。
【0015】
また、本発明は、クエリバインディング機能を備えたオンラインレポート作成システムにおいて、前記クエリ文において条件により行われる行が異なる場合、該当行に注釈文を挿入し、挿入された注釈文にライン削除機能を有するクエリ変数を挿入し、条件により、クエリ変数の変数値を空の値で入力させるか、任意の値を入力させて、空の値であれば、該当行を削除させ、任意の値であれば、該当行が行われるように提供することを特徴とする。
【0016】
また、本発明は、クエリバインディング機能を備えたオンラインレポート作成システムにおいて、前記加工変数設定部は、変数定義セルの名前を加工変数の名前に設定し、前記加工変数は、前記エクセル文書上においてグリッドに表示すべきテーブルのセル内の数式に用いられることを特徴とする。
【0017】
また、本発明は、クエリバインディング機能を備えたオンラインレポート作成システムにおいて、前記ビュー領域シート上のテーブルは、前記データ領域シート上に入力された基礎データセットを参照するが、前記ビュー領域シート上のテーブル内のセルの数式において、前記データ領域シートのセルを参照し、前記グリッド表示部は、基礎データセットをデータベースから取り込んで仮想シート上に保存し、前記グリッドオブジェクトのテーブルのそれぞれのセルを数式により反映するとき、参照するデータ領域シートのセルの内容の代わりに、仮想シート上の該当セルの内容で反映することを特徴とする。
【0018】
また、本発明は、クエリバインディング機能を備えたオンラインレポート作成システムにおいて、前記編集結果保存部は、前記ビュー領域シート上におけるテーブルに対して、テーブルのヘッダ行構造、及びテーブルのデータ行構造をテンプレート情報として保存するが、テーブルのデータ行構造を1番目データ行の書式と数式を含む属性情報として保存し、該当テーブルのデータ行が交差行であれば、該当テーブルの1番目データ行と2番目データ行の書式を全て保存することを特徴とする。
【0019】
また、本発明は、クエリバインディング機能を備えたオンラインレポート作成システムにおいて、前記グリッド編集部、コントロール編集部、レポートビューア部、グリッド表示部、第1クエリバインディング部は、前記サーバに備えられ、ワークシート初期化部、加工変数設定部、データセットロード部、編集結果保存部、第2クエリバインディング部、クエリ文作成部は、前記拡張モジュールに備えられることを特徴とする。
【発明の効果】
【0020】
上述したように、本発明によるクエリバインディング機能を備えたオンラインレポート作成システムによれば、加工変数を用いてクエリ文を作成させ、実行時、クエリ文の加工変数に変数値をバインディングすることにより、ユーザが、データベースから基礎データセットをさらに多様な条件で取り込み、これにより、データセットの条件に対するインタラクティブ機能をさらに容易に実現することができるという効果が得られる。
【0021】
また、本発明によるクエリバインディング機能を備えたオンラインレポート作成システムによれば、クエリ文の加工変数をウェブ上のコントロールオブジェクトにマッピングさせることにより、基礎データセットのクエリ条件をさらに容易に設定するインターフェースを提供することができるという効果が得られる。
【図面の簡単な説明】
【0022】
図1】本発明を実施するための全体システムを示す構成図である。
図2】本発明の一実施形態によるクエリバインディング機能を備えたオンラインレポート作成システムの構成を示すブロック図である。
図3】本発明の一実施形態によるウェブ上においてレポート編集のためのインターフェース画面を例示した図である。
図4】本発明の一実施形態によるウェブ上において編集されたレポートを例示した図である。
図5】本発明の一実施形態による初期化されたエクセル文書を例示した図である。
図6】本発明の一実施形態によるパラメータ領域シート上において加工変数を定義する画面を例示した図である。
図7】本発明の一実施形態によるデータセットをロードする画面を例示した図である。
図8】本発明の一実施形態による基礎データセットがロードされたデータ領域シートの画面を例示した図である。
図9】本発明の一実施形態によるエクセル文書のビュー領域シートの編集結果画面を例示した図である。
図10a】本発明の一実施形態によるピボットテーブルのテンプレート情報を示した例示図であって、ピボットテーブルに対する例示図である。
図10b】本発明の一実施形態によるピボットテーブルのテンプレート情報を示した例示図であって、テンプレート情報に対する例示図である。
図11】本発明の一実施形態による作成された一般のクエリ文に対する例示図である。
図12】本発明の一実施形態によるクエリ文の加工変数の種類を示す表である。
図13】本発明の一実施形態による加工変数を用いたクエリ文に対する例示図である。
図14】本発明の一実施形態による動的ライン削除機能のクエリ文及びバインディングされたクエリ文を例示した図である。
図15】本発明の一実施形態による一部の内容だけ異なる二つのクエリ文に対する例示コードである。
図16】従来技術によるプログラミング作業により二つのクエリ文を条件文で作成した例示コードである。
図17】本発明の第1実施形態による動的ライン削除機能によるクエリ文の条件文を例示したコードである。
図18】本発明の第2実施形態によるクエリ文の条件文を例示したコードである。
図19a】本発明の第2実施形態によるクエリ文の条件文を例示したコードである。
図19b】本発明の第2実施形態によるクエリ文の条件文を例示したコードである。
図20】本発明の一実施形態による数式自動演算に対する例示図である。
【発明を実施するための形態】
【0023】
以下、図面を参照して、本発明の実施のための具体的な内容について説明する。
【0024】
また、本発明を説明するにあたって、同一の部分に対しては、同一の符号を付け、その繰り返し説明を省略する。
【0025】
まず、図1を参照して、本発明を実施するための全体システムの構成について説明する。
【0026】
図1に示すように、本発明を実施するための全体システムは、ユーザ端末10にインストールされるエクセルツール20及び拡張モジュール60と、ウェブ上において、データセットによるレポート作成を支援する作成サーバ30と、データセットを保存するデータベースまたはDBサーバ40と、で構成される。ユーザ端末10及び作成サーバ30は、インターネット等のネットワーク80を介してデータ通信を行う。
【0027】
まず、ユーザ端末10は、パソコン(PC)、ノートパソコン、タブレットパソコン、ファブレット、PDA(Portable Digital Assistant)、スマートフォン等のコンピュータ機能を有するコンピュータ端末である。ユーザ端末10は、通信機能を備え、ネットワーク80を介して作成サーバ80とデータを送受信することができる。
【0028】
また、ユーザ端末10は、エクセルツール20及び拡張モジュール60等のアプリケーションがインストールされて実行されてもよい。
【0029】
次に、エクセルツール20は、エクセル(マイクロソフト社のスプレッドシートソフトウェアの商標である。)機能を行うアプリケーションであって、ユーザ端末10にインストールされて駆動されるプログラムシステムである。
【0030】
エクセルツール20は、通常のスプレッドシート機能を提供し、特に、ウィジウィグ(WYSIWYG)方式またはドラッグアンドドロップ(Drag&Drop)方式のインターフェースを提供する。すなわち、エクセルツール20は、画面上にエクセルシートを表示し、エクセルシート上において、通常のスプレッドシート作業を行うことができる機能を提供する。
【0031】
また、エクセルツール20は、エクセルシート(またはワークシート)上において作成されたものを、アクセル文書で生成する。アクセル文書は、多数のワークシートで構成され、それぞれのワークシートは、シート上において作成されたオブジェクト、フォーマット、データ(またはセル/領域、セル書式、セル数式、セル値)等で構成される。
【0032】
好ましくは、エクセルツール20は、マイクロソフト社で製作したスプレッドシートアプリケーションであって、エクセルという商標を有する。
【0033】
また、エクセルツール20は、拡張モジュール60を介してその機能が拡張される。このとき、機能が拡張されたエクセルツール20を、拡張されたエクセルツールと呼ぶことにする。
【0034】
次に、拡張モジュール60は、ユーザ端末10にインストールされ、エクセルツール20にプラグインタイプで付加されるプログラムシステムであって、データベースからデータセットをロードする機能、データセットの加工変数を設定する機能等を提供する。
【0035】
すなわち、拡張モジュール60は、エクセルツール20にプラグイン(plug-in)方式またはアドイン(add-in)方式で付加されて実行されるプログラムシステムである。特に、拡張モジュール60は、エクセルツール20の少なくとも一つのコマンド(以下、プラグインコマンド)で登録され、エクセルツール20において該当プラグインコマンドが呼び出されれば、実行される。一例として、エクセルシート上において、プラグインコマンドがメニュー上において登録され、メニューから該当コマンドが選択されると、拡張モジュール60が動作される。また他の例として、コントロールオブジェクトのイベント動作で登録され、該当イベントが発生すれば、拡張モジュール60が動作されてもよい。
【0036】
特に、拡張モジュール60は、初期ワークシート生成機能、加工変数設定機能、データセットロード機能等を備え、それぞれの機能を呼び出すコマンドがエクセルツール20に登録される。
【0037】
まず、拡張モジュール60は、エクセルツール20が呼び出されれば、エクセル文書において、ビュー領域(V)、データ領域(D)、パラメータ領域(P)を示すそれぞれのワークシートを生成する。
【0038】
ビュー領域のワークシート(ビュー領域シート)は、ウェブ上において、画面で表示すべきグリッドまたはテーブルの表示形態をデザインするワークシートである。
【0039】
また、データ領域(D)のワークシート(以下、データ領域シート)は、データベースからロードするデータセットをそれぞれのセルから入力されて保存するワークシートである。このとき、データベースからロードするデータセットを基礎データセットと呼ぶことにする。
【0040】
一方、ビュー領域シートに表示されるデータセットは、基礎データセットを参照して加工されたデータセットである。したがって、ビュー領域シートに表示されるデータセットを加工データセットと呼ぶことにする。
【0041】
また、パラメータ領域(P)のワークシート(以下、パラメータ領域シート)は、データセットの加工変数を設定するワークシートである。加工変数は、一つのセルの名前に設定され、加工変数の変数値は、該当セル内の入力される値に設定される。
【0042】
また、拡張モジュール60は、加工変数を設定する機能を提供する。このとき、加工変数の名前(変数名)は、セルの名前で定義されるので、該当セル(変数定義セル)に入力されるセル値が該当加工変数の変数値になる。したがって、エクセルツール20上において、加工変数は、セルの名前として用いられる。すなわち、加工変数の変数値は、該当加工変数の変数定義フィールド(セル)に入力された値である。
【0043】
また、拡張モジュール60は、クエリ文を作成し、クエリ文により、データベースから基礎データセットをロードし、そのロード情報を保存する機能を支援する。また、拡張モジュール60は、基礎データセットのロード情報を保存する。基礎データセットのロード情報は、データベースに連結するためのDB連結情報、データベースにおいて実行すべきクエリ文(SQL等)で構成される。
【0044】
次に、作成サーバ30は、ネットワーク80に連結された通常のサーバであって、ウェブ上におけるレポート作成を支援するが、データベース40から取り込んだデータセットを分析するレポートの作成を支援する。
【0045】
ウェブ上におけるレポートは、加工されたデータセットを表示するグリッドオブジェクトと、データセットの加工変数を処理するコントロールオブジェクトと、で構成される。作成サーバ30は、グリッドオブジェクトとコントロールオブジェクトを作成するサービスを提供する。
【0046】
まず、作成サーバ30は、拡張されたエクセルツール20を介してグリッドオブジェクトを生成または編集するように提供し、それぞれのグリッドオブジェクトに連動するエクセル文書を対応付けて、生成または保管する。すなわち、一つのグリッドオブジェクトを生成または編集するために、ユーザは、拡張されたエクセルツール20において生成または編集する。また、拡張されたエクセルツール20で生成または編集されたエクセル文書は保存されるが、該当グリッドオブジェクトに連動されて保管される。
【0047】
また、拡張されたエクセルツール20において保存する編集結果は、エクセル文書以外も、テンプレート、データセットロード情報等を含む。テンプレートは、エクセル文書のビュー領域シートについての情報を抽出して保存したデータ構造体であり、データセットロード情報は、DB連結情報、及びクエリ文等のデータベースからデータセット(基礎データセット)をロードするための情報である。
【0048】
また、作成サーバ30は、拡張されたエクセルツール20によりエクセル文書の作成が完了すると、保存されたエクセル文書(またはテンプレート)を読み込み、エクセル文書に定義された内容により、グリッドオブジェクトを生成または修正する。
【0049】
このとき、作成サーバ30は、パラメータ領域シートに定義された加工変数を読み込み、加工変数で定義して設定する。すなわち、加工変数をコントロールオブジェクトに用いるように宣言する。
【0050】
また、作成サーバ30は、該当エクセル文書におけるビュー領域シートのテーブル形態により、グリッドオブジェクトのグリッド形態を生成/編集し、基礎データセットを取り込んで該当グリッドに反映する。特に、作成サーバ30は、クエリ文の加工変数をバインディングしてデータベースからデータセット(基礎データセット)を取り込む。
【0051】
また、作成サーバ30は、コントロールオブジェクトを作成するようにインターフェースを提供する。コントロールオブジェクトは、ボタン、コンボボックス、チェックボックス、入力ボックス等のコマンドまたはデータを入力されるためのオブジェクトを含む。
【0052】
作成サーバ30は、コントロールオブジェクトを加工変数にマッピングさせる。コントロールオブジェクトが加工変数にマッピングされると、該当コントロールオブジェクトの入力値が、該当加工変数の変数値に自動でマッピングされる。すなわち、作成サーバ30は、コントロールオブジェクトの入力値が更新(入力)されるイベントを感知すれば、マッピングされた加工変数の変数値を更新された(入力された)入力値でバインディングして、全てのオブジェクトを更新する。また、作成サーバ30は、クエリ文の加工変数を変数値でバインディングし、バインディングされたクエリ文でデータベースからデータセットを再度取り込んで更新する。
【0053】
次に、データベース40は、データセットを保存するための通常のデータベース(DB)であって、データを管理するためのDBMS(database management system)を備え、データセットの保存、削除、検索等の作業を、クエリ(またはクエリ文)を介して行う。特に、データベース40は、商用化されたデータベースであって、データセットを処理するための一般のクエリ機能を用いて、データクエリサービスを行う。
【0054】
特に、データベース40は、ビッグデータを保存するデータベースである。また、好ましくは、データベース40は、リレーショナルデータベース(RDB)で構成される。
【0055】
また、データベース40は、作成サーバ30に直接連結されたデータベースで実現されてもよく、インターネット上において独立したDBサーバとして実現されてもよい。
【0056】
特に、データベース40は、DBMSにより駆動される一つのサーバで実現されてもよい。すなわち、データベース40は、一つのサーバであって、作成サーバ30の要請により要請されたデータセットを閲覧/提供するサービスを提供する。したがって、データベースとDBサーバは、同じ参照番号を用いる。
【0057】
次に、図2を参照して、本発明のクエリバインディング機能を備えたオンラインレポート作成システムについて説明する。
【0058】
図2に示すように、本発明の一実施形態によるクエリバインディング機能を備えたオンラインレポート作成システム30は、ウェブ上において、レポート画面のデザインサービスを提供する画面編集部31と、グリッドを編集するグリッド編集部32と、コントロールオブジェクトを編集するコントロール編集部33と、グリッド及びコントロールオブジェクトで構成されたレポートをウェブ上において表示するレポートビューア部34と、エクセル文書またはテンプレートにより、グリッドオブジェクトの内容を表示するグリッド表示部35と、クエリ文をバインディングする第1クエリバインディング部36と、エクセル文書のワークシートを初期化するワークシート初期化部61と、加工変数を設定する加工変数設定部62と、データセットをロードするデータセットロード部63と、編集結果を保存する編集結果保存部64と、クエリ文を作成するクエリ文作成部65と、クエリ文をバインディングする第2クエリバインディング部66と、で構成される。また、必要なデータを保存するための保存部38をさらに含んで構成されてもよい。
【0059】
このとき、画面編集部31、グリッド編集部32、コントロール編集部33、レポートビューア部34、グリッド表示部35、第1クエリバインディング部36は、作成サーバ30に備えられ、ワークシート初期化部61、加工変数設定部62、データセットロード部63、編集結果保存部64、クエリ文作成部65、第2クエリバインディング部66は、拡張モジュール60に備えられる。
【0060】
まず、画面編集部31は、ウェブ上において、レポート画面のデザインサービスを提供する。
【0061】
ウェブ上におけるレポートは、加工されたデータセット(加工データセット)を表示するグリッドオブジェクトと、加工変数とマッピングされて加工変数値を入力されるコントロールオブジェクトと、で構成される。
【0062】
図3に示すように、画面編集部31は、ウィジウィック(WYSIWYG)方式及びドラッグアンドドロップ(Drag&Drop)方式により、グリッドオブジェクトまたはコントロールオブジェクトを生成し、画面上に配置するように支援する。
【0063】
また、画面編集部31は、グリッドオブジェクトまたはコントロールオブジェクトに対して、グリッド編集部32またはコントロール編集部33により、細部的に編集するサービスを提供する。
【0064】
次に、グリッド編集部32は、グリッドオブジェクトを編集するが、一つのグリッドオブジェクトについての情報を一つのエクセル文書等に保存して管理し、拡張されたエクセルツール20によるエクセル文書の編集により、グリッドオブジェクトを編集する。
【0065】
すなわち、グリッド編集部32は、それぞれのグリッドオブジェクトにマッピングされるエクセル文書等を生成または保管する。エクセル文書等(または編集結果情報)は、エクセル文書、テンプレート(グリッドテンプレート)、データセットロード情報等で構成される。テンプレート、データセットロード情報等を追加情報と呼ぶことにする。
【0066】
該当エクセル文書は、ビュー領域シート、データ領域シート、パラメータ領域シート等で構成され、グリッドオブジェクトの情報を入れたエクセルファイルである。テンプレート(またはグリッドテンプレート)は、ビュー領域シートのテーブル(またはグリッド)の形態、書式、数式等を保存するデータ構造体である。ビュー領域シートの内容をさらに速く解釈して用いるためである。また、データセットロード情報は、データベースに連結するためのDB連結情報、データベースにおいて実行すべきクエリ文(SQL等)で構成される。
【0067】
特に、グリッド編集部32は、それぞれのグリッドオブジェクトに対する編集要請を受けると、該当グリッドオブジェクトにマッピングされた(連動された)エクセル文書等が存在するかを判断する。存在すれば、該当エクセル文書を開いて(open)、拡張されたエクセルツール20を実行させる。存在しなければ、新たなエクセル文書を生成し、生成されたエクセル文書を開いて拡張されたエクセルツール20を実行させる。このとき、拡張されたエクセルツール20またはワークシート初期化部61は、該当エクセル文書を初期化する。特に、ワークシート初期化部61により、初期ワークシートが生成して初期化される。
【0068】
また、グリッド編集部32は、拡張されたエクセルツール20により、エクセル文書の作成が完了すれば、保存されたエクセル文書等(または編集結果情報)を参照して、その内容によりグリッドオブジェクトを更新する。このとき、好ましくは、グリッド表示部35を介して、エクセル文書等の内容により、グリッドオブジェクトの内容を画面上に表示する。
【0069】
次に、コントロール編集部33は、コントロールオブジェクトを編集するようにインターフェースを提供する。
【0070】
コントロールオブジェクトは、ボタン、コンボボックス、図形、テキストボックス等のウェブレポートを表現するためのオブジェクトである。特に、コントロールオブジェクトは、ボタン、コンボボックス、チェックボックス、入力ボックス等のコマンドまたはデータを入力されるためのオブジェクトを含む。このとき、入力されるコマンドまたはデータをコントロールオブジェクトの入力値と呼ぶことにする。
【0071】
コントロール編集部33は、グリッドオブジェクトのエクセル文書等から加工変数情報を読み込み、加工変数を宣言する(すなわち、加工変数で定義して設定する)。すなわち、グリッドオブジェクトのエクセル文書には、パラメータ領域シートに加工変数が宣言される。コントロール編集部33は、それぞれのグリッドオブジェクトのエクセル文書に保存された加工変数を読み込み、該当加工変数をコントロールオブジェクトにおいて用いるように宣言する。
【0072】
また、コントロール編集部33は、コントロールオブジェクトを加工変数にマッピングさせる機能を提供する。すなわち、ユーザは、特定のコントロールオブジェクトに特定の加工変数をマッピングさせることができる。好ましくは、コントロールオブジェクトを加工変数の名前で定義することにより、加工変数とコントロールオブジェクトがマッピングされる。
【0073】
コントロールオブジェクトが加工変数にマッピングされると、該当コントロールオブジェクトの入力値が、該当加工変数の変数値に自動でマッピングされる。
【0074】
また、レポートビューア部34により、コントロールオブジェクトの入力値が更新(入力)されること(更新イベント)が感知されると、マッピングされた加工変数の変数値を更新された(入力された)入力値でバインディングして、全てのオブジェクトが更新される。また、更新イベントが感知されると、レポートビューア部34により、データセットロード情報のクエリ文を加工変数の変数値でバインディングし、バインディングされたクエリ文で基礎データセットを再度取り込む。
【0075】
次に、レポートビューア部34は、編集されたレポートを画面上に出力する。
【0076】
すなわち、レポートビューア部34は、コントロールオブジェクト及びグリッドオブジェクトの内容を画面上に出力し、コントロールオブジェクトにおいて、入力値の入力イベント(更新イベント)が発生すると、該当コントロールオブジェクトにマッピングされた加工変数の変数値を更新して、画面上の全てのオブジェクトを更新出力する。特に、マッピングされた加工変数の変数値でクエリ文がバインディングされ、バインディングされたクエリ文によりデータセットも更新される。すなわち、バインディングされたクエリ文でデータベースから基礎データセットを再度取り込んで更新する。
【0077】
具体的に、レポートビューア部34は、それぞれのグリッドオブジェクトの内容を出力するが、該当グリッドオブジェクトのエクセル文書等に定義された内容を読み込んで出力する。このとき、レポートビューア部34は、グリッド表示部35を介して、エクセル文書等(テンプレート)の内容によりグリッドの形態を編集し、該当グリッドに加工データセットを反映して出力する。
【0078】
また、レポートビューア部34は、コントロールオブジェクトの入力値が更新(入力)されるイベントを感知する。また、イベントが感知されると、マッピングされた加工変数の変数値を更新された(入力された)入力値でバインディングして、全てのオブジェクトを更新する。
【0079】
このとき、レポートビューア部34は、第1クエリバインディング部36を介して、クエリ文を加工変数の変数値でバインディングさせ、バインディングされたクエリ文により、基礎データセットを再度取り込んで更新する。
【0080】
好ましくは、レポートビューア部34は、グリッドを表示するビューアを備える。グリッドビューアは、ウェブ形式(HTML5.0以上)またはキャンバス(Canvas)によって、DOM(Document Object Model)に基づくコンポネントで構成される。したがって、遥かに速いレンダリング(Rendering)速度を支援する。
【0081】
図4は、ウェブ上において、レポートを表示したことを例示している。
【0082】
次に、第1クエリバインディング部36は、コントロールオブジェクトにマッピングされた加工変数の変数値を、該当コントロールオブジェクトの入力値に設定し、クエリ文において、該当加工変数を変数値(または入力値)でバインディングして、クエリ文(バインディングされたクエリ文)を生成する。
【0083】
クエリ文のバインディングについては、以下において、第2クエリバインディング部66を説明しながらさらに具体的に説明する。第1クエリバインディング部36がクエリ文をバインディングする過程は、第2クエリバインディング部66のバインディング過程と同じである。
【0084】
次に、ワークシート初期化部61は、エクセル文書のワークシートを初期化する。
【0085】
図5に示すように、ワークシート初期化部61は、エクセル文書において、ビュー領域(V)、データ領域(D)、パラメータ領域(P)を示すそれぞれのワークシートを生成する。
【0086】
ワークシート初期化部61は、エクセルツール20が呼び出されれば、実行される。
【0087】
ビュー領域のワークシート(以下、ビュー領域シート)は、ウェブ上において、画面で表示すべきグリッドまたはテーブルの表示形態をデザインするワークシートである。ユーザは、ビュー領域シート上において、テーブル等をデザインする。デザインされたテーブル等は、グリッドオブジェクトの形態で用いられる。特に、ユーザは、エクセルツール20のインターフェースを用いてテーブル等をデザインする。
【0088】
また、ビュー領域のワークシート上において、テーブル内のそれぞれの領域またはセルは、データ領域シートのセルまたは加工変数のセルを参照する。すなわち、ユーザは、エクセルツール20上において、エクセル機能を活用してビュー領域シートを作成する。このとき、テーブルのそれぞれのセルまたは領域には、直接数値が入力されるか、参照される他のセルが入力される。すなわち、セル/領域の参照方式は、直接セル(領域)の位置で入力されるか、セルの名前で入力される。加工変数は、加工変数のセルの名前で入力される。
【0089】
また、ビュー領域に表示されるデータセットは、基礎データセットを加工した加工データセットである。
【0090】
また、データ領域(D)のワークシート(以下、データ領域シート)は、クエリ文によりデータベースからロードするデータセットを、それぞれのセルに入力されて保存するワークシートである。このとき、データベースからロードするデータセットを基礎データセットと呼ぶことにする。
【0091】
また、パラメータ領域(P)のワークシート(以下、パラメータ領域シート)は、データセットの加工変数を設定するワークシートである。加工変数は、一つのセルの名前に設定され、加工変数の変数値は、該当セル内の入力される値に設定される。
【0092】
ワークシート初期化部61は、パラメータ領域シート上に、加工変数を定義するテーブルを生成する。加工変数テーブルは、それぞれが加工変数を示す多数のレコードで構成される。
【0093】
それぞれのレコードは、変数名(変数の名前)、変数定義、初期値、説明等のフィールドで構成される。変数名フィールドは、該当加工変数の名前(または変数名)を入力するセルであり、変数定義フィールドは、加工変数の名前(または変数名フィールド値)で自分のセルの名前を設定するセルである。また、初期値フィールド及び説明フィールドは、それぞれ加工変数の初期値や説明を入力するセルである。
【0094】
特に、変数定義フィールドは、自分のセルの名前が変数名(加工変数の名前)に設定されるので、変数定義フィールドに入力されるセルの値が該当加工変数の変数値になる。
【0095】
すなわち、ユーザは、エクセルツール20上において、加工変数の名前をセルの名前の形態で用いてもよい。例えば、エクセルツール20上において、セルの数式に加工変数の名前を記載すれば、該当セルの数式における加工変数は、加工変数の変数定義フィールド(セル)に設定された値で取り替えられる。したがって、エクセルツール20上において、該当加工変数の名前は、加工変数のように活用され得る。
【0096】
また、加工変数は、クエリ文のバインディング構文において、変数として活用されてもよい。このとき、加工変数の変数値は、該当加工変数の変数定義フィールド(セル)に入力された値である。
【0097】
一方、ワークシート初期化部61は、既に保存されたデータセットロード情報が存在する場合、データセットロード情報を活用して、基礎データセットを再度取り込み、データ領域シートの内容を更新する。
【0098】
このとき、ワークシート初期化部61は、クエリ文に加工変数により定義された場合、加工変数の変数値で該当加工変数をバインディングし、バインディングされたクエリ文により、データベースからデータセットを再度取り込み、基礎データセットを更新する。
【0099】
次に、加工変数設定部62は、パラメータ領域シート上において、加工変数を設定する。
【0100】
図6に示すように、加工変数設定部62は、特定のレコードの変数名フィールドに変数名(変数の名前)が入力されると、該当レコードの変数定義フィールドのセルの名前を、入力された変数名(変数の名前)に設定する。
【0101】
一方、加工変数の名前(変数名)は、セルの名前で定義されるので、該当セルに入力されるセル値が、該当加工変数の変数値になる。すなわち、セルの名前が変数として活用される。
【0102】
すなわち、それぞれの加工変数は、エクセルのネーム(Name)オブジェクトで管理され、該当ネームの値は、ユーザが、該当セルにおいて入力した値で取り替えられる。エクセルのネームは、エクセルにおいて、セルアドレスに対して固有の名前を定義し、該当名前を使うことができる。また、該当名前は、該当セル(名前に対応されるセルまたはセルアドレス)と対応付けてられ、該当名前は、最終的にセル値で取り替えられて計算される。
【0103】
例えば、セルA1の名前を「住所」に定義し、セルA1に、「ソウル市鍾路区恵化洞90番地」という値を入力し、B1セルにおいて「=住所」という数式を使う。このとき、数式において「住所」は名前であり、該当名前は、該当セル(対応するセル)の値(「ソウル市鍾路区恵化洞90番地」)で取り替えられる。したがって、セルB1には、最終的に(「ソウル市鍾路区恵化洞90番地」)の値で計算される。
【0104】
一方、加工変数は、クエリ文でも用いられるが、定義された加工変数の名前に変数識別子が付いて用いられる。
【0105】
次に、データセットロード部63は、クエリ文作成部65を介してクエリ文を作成し、第2クエリバインディング部66を介してクエリ文をバインディングし、バインディングされたクエリ文により、データベースから基礎データセットをロードし、そのロード情報を保存するサービスを提供する。
【0106】
このとき、好ましくは、図7に示すように、データセットロード部63は、データベース40に連結するためのキー等の連結情報を入力する機能またはインターフェースを提供する。ユーザは、キー等の連結情報を入力することにより、データベース40にアクセスする。
【0107】
また、データセットロード部63は、クエリ文作成部65を介して、データベース40から基礎データセットを参照するクエリ文を作成する機能またはインターフェースを提供する。また、データセットロード部63は、第2クエリ文バインディング部66を介して、作成されたクエリ文をバインディングする。
【0108】
また、図8に示すように、データセットロード部63は、バインディングされたクエリ文により、データベースから基礎データセットをロードして、データ領域シートに出力する。このとき、出力位置は、予め決められるか、ユーザにより設定されてもよい。このとき、好ましくは、該当データ領域シートの第1行にデータセットのフィールド名を出力し、その次の行からデータセットを出力する。
【0109】
また、データセットロード部63は、基礎データセットのロード情報を保存する。基礎データセットロード情報は、データベースに連結するためのDB連結情報、データベースにおいて実行すべきクエリ文(SQL等)で構成される。好ましくは、基礎データセットを出力すべき位置アドレスを示す出力位置情報をさらに含んでもよい。
【0110】
DB連結情報は、システム内のデータベース連結情報を管理し、DBサーバアドレス、該当情報にアクセスできるキー値等を含む。該当キーをもって、内部的にデータベース連結情報を抽出する。
【0111】
クエリ文は、データベースにおいて実行すべき通常のSQL構文である。
【0112】
また、出力位置情報は、クエリを実行した結果を出力すべき位置に対するアドレス値を含む。一例として、「D1$A1」と表示され、これは、D1ワークシートのA1セルから出力するという意味である。
【0113】
次に、編集結果保存部64は、エクセルツール20の終了時、ワークシート上において作業された編集結果を保存する。特に、編集結果は、エクセル文書、テンプレート、データセットロード情報等である。
【0114】
エクセル文書は、エクセルツール20において作業した文書であり、文書自体として保存される。
【0115】
上述のように、エクセル文書は、ビュー領域シート、データ領域シート、パラメータ領域シートで構成される。データ領域シートには、基礎データセットが入力される。このとき、ユーザは、ビュー領域シートにおいてグリッドのためのテーブルを編集するが、基礎データセットを参照して分析されたデータを、テーブルに表示されるように編集する。
【0116】
図9に示すように、ビュー領域シート内のテーブルにおいて、セルは、データ領域シートのデータ(またはセル)を参照する。ビュー領域シートのセルC5には、関数sumifを用いた数式を有する。このとき、関数sumifのそれぞれの変数のうち一部が、データ領域シート(D1)のセルまたは領域を参照する。
【0117】
ユーザは、データ領域シートを見ながら、データベースから取り込んだ基礎データセットの構造を明らかに見ることができる。したがって、ユーザは、データ領域シートのデータを用いて、ビュー領域シートにおいてテーブルを容易くデザインすることができる。
【0118】
また、データセットロード情報は、データベースに連結するためのDB連結情報、データベースにおいて実行すべきクエリ文(SQL等)で構成される。
【0119】
また、テンプレート(またはグリッドテンプレート)は、エクセル文書内のビュー領域シートのテーブル(またはグリッド)の形態、書式、数式等を保存するデータ構造体である。エクセル文書におけるビュー領域シートの内容をさらに速く解釈して利用するためである。好ましくは、テンプレート情報は、JSON(JavaScript(登録商標) Object Notation)等の標準スクリプトデータ形式として保存する。
【0120】
特に、ビュー領域シート上におけるテーブルのそれぞれのセルは、データ領域シート上における基礎データセットのセルを数式として参照する。したがって、テンプレート内のセル数式情報には、データ領域シート上のセル(または基礎データセット、基礎データセットのデータ)を参照する情報が含まれる。
【0121】
一方、他の実施形態として、テンプレートを利用せず、直接エクセル文書を解釈して実現してもよい。この場合、テンプレートにより生成しない。
【0122】
特に、編集結果保存部64は、エクセル文書におけるビュー領域シート上のテーブルからグリッド構造情報を抽出し、テンプレート情報として保存する。
【0123】
すなわち、ビュー領域シート上のテーブルから、それぞれのテーブルの構造、及びテーブルまたはそれぞれのセルの属性(書式、数式等)等のグリッド構造情報を抽出してテンプレートとして保存する。好ましくは、テンプレートは、JSON等の階層構造を有する形式で作成される。テーブル構造は、テンプレートの階層構造に変換され、テーブルのそれぞれのセルの属性は、テンプレートの階層構造のリーフノードの属性に変換される。それぞれのセルの属性は、セル値、書式、数式等で構成される。
【0124】
図10a及び図10bは、テーブルに対するテンプレートのグリッド構造情報を例示した図である。すなわち、図10aは、エクセル文書におけるビュー領域シートのピボットテーブルを例示し、図10bは、図10aのピボットテーブルのテンプレート情報(グリッド構造情報)を例示している。特に、テンプレート情報は、JSON(JavaScript(登録商標) Object Notation)形式として保存される。すなわち、ピボットテーブルを階層構造に分解して、それぞれの階層の要素と、該当要素の属性値で構成される。
【0125】
また、オブジェクトがテーブルである場合、該当テーブルのヘッダ行と、データの1番目行の構造情報のみをテンプレートとして保存する。テーブルにおいて、データ行の書式が交差行である場合、連続した二つのデータ行の書式(属性)を全て保存する。
【0126】
次に、クエリ文作成部65は、データベース40から基礎データセットを参照するクエリ文を作成する機能またはインターフェースを提供する。
【0127】
特に、図7のように、クエリ文作成部65は、クエリ文をテキスト形態で直接作成するか、ドラッグアンドドロップ方式のGUI(グラフィカルユーザインタフェース)を介してクエリ文を作成する機能を提供する。クエリ文作成部65は、GUIインターフェースを介してクエリを作成しても、テキスト形態のクエリ文を生成する。
【0128】
図11のように、テキスト形態のクエリ文は、SELECT~FROM~WHERE等の構文による通常のクエリ文で構成される。
【0129】
一方、クエリ文作成部65は、加工変数をクエリ変数として用いて、クエリ文を作成することができる。
【0130】
クエリ文におけるクエリ変数は、変数識別子、及び加工変数の名前を結合して構成される。すなわち、実際、クエリ変数は、加工変数とマッピングされ、実際に同じ変数を意味する。ただし、クエリ変数と加工変数の表記形式が異なる。すなわち、クエリ変数を加工変数の名前を含めて作ってクエリ文で表記して用いるが、実際に同じ変数を示す。以下において、クエリ変数と加工変数の用語を混用する。
【0131】
好ましくは、次のように、変数識別子がクエリ変数の接頭語として結合される。
【0132】
[クエリ文のクエリ変数]
<変数識別子>+<加工変数の名前>
【0133】
すなわち、クエリ変数は、加工変数に変数識別子を加えてマッピングされるが、実際に同じ変数を示す。
【0134】
また、変数識別子には、変数の種類を示す記号または文字が含まれてもよい。
【0135】
一例として、変数識別子は、「:VS_」と表示される。このとき、コロン(:)と変数(Variable)の「V」で組み合わせて識別し、「S」は、変数の種類を示す。また、アンダーバー(「_」)は、加工変数の名前との結合を示す。
【0136】
変数の種類は、図12に示されている。
【0137】
また、クエリ文において、クエリ変数(加工変数)を用いて作成した例が、図13に示されている。図13に示すように、「商品名」、「支店名」、「売上月」、「売上月_TO」は、加工変数に設定された加工変数の名前である。先だって、パラメータシート(P)において設定された加工変数の名前である。
【0138】
また、クエリ文作成部65は、クエリ文においてクエリ変数(加工変数)を用いるとき、ライン削除機能(以下、動的ライン削除機能)を備える。このとき、クエリ文のクエリ変数に動的ライン削除機能を示す記号または文字を追加して区分する。一例として、動的ライン削除機能は、変数名の前に「@」を記入して区分する。
【0139】
動的ライン削除機能のクエリ変数は、加工変数とは異なり、ライン削除のバインディング機能をさらに有する。
【0140】
動的ライン削除機能は、該当加工変数の変数値がないか、空の値である場合、クエリ文において該当ラインを削除してバインディングする。
【0141】
図14は、条件節(WHERE)において用いる動的ライン削除機能のクエリ変数を例示している。図14の(a)は、作成されたクエリ文であり、図14の(b)は、図14の(c)の変数値にバインディングして生成されたクエリ文を示す。
【0142】
一方、動的ライン削除機能のクエリ変数は、条件により異なるクエリ文を行うクエリ文に対する条件文を実現することができる。
【0143】
図15の例のように、それぞれのチームが「購買チーム」であるか否かにより、(a)と(b)の二つのクエリ文に分けられる。すなわち、購買チームではなく、他のチームである場合、図15の(a)のように、単価と金額を表示しないクエリ文を実行しなければならず、購買チームである場合、図15の(b)のように、単価と金額を示すクエリ文を実行しなければならない。
【0144】
図16は、従来の方式により、図15における二つの場合のクエリ文を作成するコードを例示している。すなわち、従来の方式は、条件分岐のためには、プログラミング作業が必要である。
【0145】
クエリ文作成部65は、動的ライン削除機能のクエリ変数を用いて、次の2つの方式で実現することができる。
【0146】
第一の方式は、条件に相当するクエリ文の全ての行に、動的ライン削除機能のクエリ変数を注釈文で挿入する。これを、図17に示している。
【0147】
図17に示すように、クエリ変数の「購買チーム(@:VN_購買チーム)」の変数値がなければ、該当ライン(クエリ変数が記載されたライン)、すなわち、単価と金額を示す該当ラインが削除される。また、クエリ変数の「他のチーム(@:VN_他のチーム)」の変数値が存在すれば、該当クエリ変数は、変数値で置き換えされるが、注釈文であるので、何の影響を与えない。また、該当ラインは存在するので、単価と金額を0で示すクエリ文がバインディングされる。
【0148】
また、これに対して、図17の例において、クエリ変数の「購買チーム(@:VN_購買チーム)」の変数値が存在し、クエリ変数の「他のチーム(@:VN_他のチーム)」の変数値がなければ、単価と金額を0で示す行は削除され、単価と金額を示す該当ラインだけ存在して、単価と金額を示すクエリ文でバインディングされる。
【0149】
次に、第二の方式は、注釈文の予約語を用いる方式である。該当方式の一例が図18及び図19a及び図19bに示されている。
【0150】
図18のように、条件により行われる行の前後にクエリ変数を設定する。すなわち、「他のチーム」である場合、その単価と金額を0で示す行の前後に、それぞれ「他のチームの開始と終了(@:VN_他のチーム_START、@:VN_他のチーム_END)」のクエリ変数を作成する。また、「購買チーム」である場合、その単価と金額を示す行の前後に、それぞれ「購買チームの開始と終了(@:VN_購買チーム_START、@:VN_購買チーム_END)」のクエリ変数を作成する。
【0151】
また、図19aのように、他のチームの場合、他のチームのクエリ変数には、変数値をなくし(またはnull、空欄等)、購買チームのクエリ変数には、注釈文の開始記号と終了記号を変数値としてそれぞれ入力する。すると、図19aの下端のようなクエリ文がバインディングされる。
【0152】
また、図19bのように、購買チームの場合、購買チームのクエリ変数には、変数値をなくし(またはnull、空欄等)、他のチームのクエリ変数には、注釈文の開始記号と終了記号を変数値としてそれぞれ入力する。すると、図19bの下端のようなクエリ文がバインディングされる。
【0153】
一方、第二の方式である注釈文の予約語を用いる方式は、動的ライン削除機能のクエリ変数を利用せず、一般のクエリ変数を利用してもよい。すなわち、クエリ変数を文字列で定義し、クエリ変数の変数値を入れない代わりに、空欄等を入れても可能である。
【0154】
次に、第2クエリ文バインディング部66は、作成されたクエリ文を加工変数の変数値でバインディングする。
【0155】
第2クエリ文バインディング部66は、作成されたクエリ文から変数識別子を検出し、変数識別子を認識すれば、変数識別子に連結された文字列を加工変数の名前として認識する。
【0156】
次に、第2クエリ文バインディング部66は、加工変数の変数値を読み込む。加工変数の変数値は、パラメータシート(P)に定義された加工変数の名前のセルのセル値でマッピングする。
【0157】
また、第2クエリ文バインディング部66は、加工変数の変数値をクエリ文のクエリ変数で取り替えてバインディングする。このとき、クエリ変数の変数の種類により、変数値の表現形式が変わり得る。すなわち、予め決められた変数値のフォーマットにより、変数値を変換して表示する。
【0158】
また、第2クエリ文バインディング部66は、クエリ変数から動的ライン削除機能の記号が検出されると、該当加工変数の値がない場合は、該当ラインを削除する。
【0159】
次に、グリッド表示部35は、エクセル文書等を解釈してグリッドを生成する。すなわち、テンプレートにより、グリッド構造を生成して出力し、テンプレートの基礎データセットのロード情報により基礎データセットを取り込み、グリッドに加工データセットを反映して出力する。
【0160】
まず、グリッド表示部35は、テンプレートのグリッド構造により、グリッドの形態を生成する。上述したように、テンプレートファイルは、JSON等の標準スクリプトデータ形式で作成されたので、該当スクリプトデータ形式のパーザを用いて解釈する。
【0161】
すなわち、ピボットテーブルオブジェクトの場合、該当オブジェクトのJSONデータを解釈してピボットテーブルを復元し、一般のテーブルオブジェクトの場合、該当オブジェクトのJSONデータを解釈して、テーブルのヘッダ行及びデータの1番目行(または1番目及び2番目行)を復元する。好ましくは、ここで、グリッドは、メモリに記憶されるデータであってもよい。
【0162】
特に、サーバにおいて、ユーザの要請があった場合、リアルタイムで解釈する。一方、テンプレートファイルは、エクセル文書よりも軽量化されており、速い速度でロードすることができる。
【0163】
また、グリッド表示部35は、ロード情報により、データベースから基礎データをロードする。好ましくは、データベースの最新の問い合わせ結果をリアルタイムで反映する。
【0164】
グリッド表示部35は、ロード情報を参照して、DB連結情報でデータベースに接続し、クエリ文の情報でクエリ文を生成して要請する。すなわち、DB連結情報のキー値等で認証され、データベースにアクセスする。また、バインディング構文を用いて、加工変数を反映してクエリ文を生成する。このとき、加工変数の変数値は、該当加工変数にマッピングされたコントロールオブジェクトの入力値に設定される。
【0165】
好ましくは、グリッド表示部35は、データベース(DB)において問い合わせした基礎データセットをメモリに記憶する。このとき、基礎データセットを行と列を有する仮想シートの形態で記憶する。すなわち、ワークシートの行と列を基準として、基礎データセットのデータを参照できるように記憶する。
【0166】
また、グリッド表示部35は、基礎データセットをグリッドのデータ領域に反映して挿入する。
【0167】
特に、データセット及び該当グリッドの形態がテーブルである場合、該当グリッドにおいて、データセットのレコード(データ行)の数だけの行を動的に生成する。バインディング位置を識別した後、レコード数だけの行を動的に生成する。
【0168】
また、グリッド表示部35は、テーブルのセルが数式である場合、該当数式を解釈して演算された値を挿入する。特に、セル数式において、データ領域シートのセルを参照する数式であれば、更新された基礎データセット(またはメモリに記憶された基礎データセット)を参照してセル値を計算する。
【0169】
特に、データベースから取り込んだ基礎データセット(更新された基礎データセット)を仮想シートの形態として保存するので、エクセル文書上において記載されたデータ領域シートのセルを参照する数式をそのまま用いてもよい。このとき、データ領域シートの名前を仮想シート(メモリに記憶された仮想シート)で取り替えて解釈する。
【0170】
すなわち、グリッド表示部35は、レコードの増加による数式を自動で生成する。
【0171】
図20に示すように、テンプレートにおいてバインディングの位置を識別してから、レコード数だけの行を動的に生成し、このとき、ヘッダ及びデータ領域を判断して、データ領域に数式が存在する場合、数式は、行の生成と一緒に自動生成する。
【0172】
数式は、エクセル(Excel)の絶対アドレス及び相対アドレスを解釈して生成される行のアドレスに基づき、自動増減して生成する。絶対アドレスは、変わらずに固定されたセルのアドレスを示す。相対アドレスは、基準セルの位置と該当セルの位置の相対位置によってアドレス値が変動する。
【0173】
また、図20のように、グリッド表示部35は、交差行及びスタイル(書式)を支援する。すなわち、交差行の書式が異なる場合を支援する。すなわち、テンプレートにおいてバインディングの位置を識別してから、データ領域のスタイル(書式)を新たに生成する行に反映する。データ領域の行のサイズが2つである場合、交差行のスタイル(書式)を支援して、交互にスタイル(書式)を反映してもよい。
【0174】
また、グリッド表示部35は、グリッド上において、エクセル(Excel)の数式を支援する。該当数式は、テンプレートに定義される。数式は、データバインディング規則により、新たに生成されてもよい。データバインディングは、加工データセットが表の形態で出力される場合、その位置の最後のアドレスに数式が存在すれば、該当数式を行別に自動で生成することを意味する。
【0175】
以上、本発明者によりなされた発明を、前記した実施形態により具体的に説明したが、本発明は、前記した実施形態に限定されるのではなく、その要旨を逸脱しない範囲内で様々な変更が可能であることはもちろんである。
【0176】
本発明は、以下に記載された政府支援課題の一環として行われたものである。
【0177】
課題固有番号:1415169086
(機関)詳細課題番号:20008795
省庁名:産業通商資源部
研究管理専門機関:韓国産業技術評価管理院
研究事業名:知識サービス産業核心技術開発-製造サービス融合
研究課題名:製造現場に特化した音声認識の適用のためのノイズ除去技術搭載のスマートデバイス及び人工知能仮想秘書サービスの開発
寄与率:100%
主管機関:(株)ミソ情報技術
参与機関:(株)ビーアイマトリックス
研究期間:2020.05.01~2022.12.31
【符号の説明】
【0178】
10:ユーザ端末
20:エクセルツール
30:作成サーバ
31:画面編集部
32:グリッド編集部
33:コントロール編集部
34:レポートビューア部
35:グリッド表示部
36:第1クエリバインディング部
38:保存部
60:拡張モジュール
61:ワークシート初期化部
62:加工変数設定部
63:データセットロード部
64:編集結果保存部
65:クエリ文作成部
66:第2クエリバインディング部
80:ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10a
図10b
図11
図12
図13
図14
図15
図16
図17
図18
図19a
図19b
図20