JP2016218747A - マッピングのための装置、方法、プログラム、および記録媒体 - Google Patents

マッピングのための装置、方法、プログラム、および記録媒体 Download PDF

Info

Publication number
JP2016218747A
JP2016218747A JP2015103110A JP2015103110A JP2016218747A JP 2016218747 A JP2016218747 A JP 2016218747A JP 2015103110 A JP2015103110 A JP 2015103110A JP 2015103110 A JP2015103110 A JP 2015103110A JP 2016218747 A JP2016218747 A JP 2016218747A
Authority
JP
Japan
Prior art keywords
data
cell
cells
index
mapping
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2015103110A
Other languages
English (en)
Other versions
JP6037577B1 (ja
Inventor
陽昭 山本
Hiroaki Yamamoto
陽昭 山本
宜嗣 遠藤
Yoshitsugu Endo
宜嗣 遠藤
幸央 三ヶ田
Sachio Mikada
幸央 三ヶ田
高橋 一成
Kazunari Takahashi
一成 高橋
朝和 大久保
Tomokazu Okubo
朝和 大久保
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Diva Corp
Original Assignee
Diva Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Diva Corp filed Critical Diva Corp
Priority to JP2015103110A priority Critical patent/JP6037577B1/ja
Application granted granted Critical
Publication of JP6037577B1 publication Critical patent/JP6037577B1/ja
Publication of JP2016218747A publication Critical patent/JP2016218747A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ユーザが表計算ソフトを用いて作成したデータ表のレイアウトに基づいて、適切な構造を有するデータベースを自動的に作成すること。
【解決手段】複数のセルを含むセル範囲5220,5240,5260,5280,5300を、複数配置して構成されるデータ表5200のセルの各々について、データ項目毎にインデクス0〜4を付与し、各セルに書き込まれたデータを格納するために、格納されるデータが属する各データ項目が有するレコードの数が全て同一となるようにデータベースのテーブル6200の構造を決定し、テーブル6200において、各レコードに、データ表5200における対応するセルに付与されたインデクスと同じインデクス0〜4を付与し、データ表5200において各セルに書き込まれているデータを、テーブル6200における対応するレコードのうち、当該セルと同一のインデクスを付与されたレコードに書き込むことによって、テーブル6200を構築する。
【選択図】図22

Description

本発明は、例えば表計算ソフトにおけるスプレッドシート内のセルと、例えばリレーショナルな表形式のデータベースのレコードとの紐付けを行う、いわゆるマッピングのための装置、方法、プログラム、および記録媒体に関する。
従来、例えば表計算ソフトにおけるスプレッドシート上に入力されたデータを、データベースに集めることや、データベースに集めたデータをスプレッドシート上にレポーティングすることを目的として、マッピングが広く行われている。
ユーザは、表計算ソフトを用いて、スプレッドシート上に、データ表を作成することができる。
この場合、データ表から、表形式のデータベースへのマッピング(以下、このようなマッピングを「アウトマッピング」と称する)のために、データベースの構造を意識してデータ表のレイアウトを決定する必要がある。
一方、データベースからデータ表へのマッピングもある。このようなマッピングは、「アウトマッピング」に対して「インマッピング」と呼ばれる。
これらアウトマッピングよびインマッピングともに、専用のパッケージソフトウェアを用いてなされている。
特開2000−48042号公報 特開2009−223644号公報 特開2005−251136号公報 特開2005−38404号公報 特開2004−259075号公報
しかしながら、このような従来のマッピングの場合、以下のような問題がある。
前述したように、アウトマッピングの場合、データ表から、表形式のデータベースへのマッピングのために、ユーザは、データベースの構造を意識してデータ表のレイアウトを決定する必要がある。
しかしながら、情報処理技術に詳しくないユーザにとっては、表計算ソフトを用いてデータ表のレイアウトを作成する場合、このようにデータベースの構造をも意識して適切に行うことは容易ではない。
例えば、ユーザは、データベースへの適切なマッピングを可能とするデータ表のレイアウトを決定する際に、マッピングを行うためのマッピングプログラムのルールや、データベースの形式を事前に把握してレイアウトを決定する必要がある。
このようなことは、情報技術に明るくない一般ユーザにとっては酷なことである。
一方、インマッピングの場合、例えば、データ表内の各セルが、複数のデータ項目の組み合わせによって定義されている場合、ユーザは、インマッピングによって実行されるデータベースのレコードからデータ表のセルへ向けてなされるマッピングの順序を設定する必要がある。
この設定もまた複雑であり、情報技術に明るくない一般ユーザにとっては同様に酷なことである。
本発明はこのような事情に鑑みてなされたものであり、その第1の目的は、ユーザが表計算ソフトを用いて作成したデータ表のレイアウトを判定し、データベースに書き込むための適切な構成のレコードを自動的に作成することによって、ユーザの負担の軽減を図ることが可能なアウトマッピングのための装置、方法、プログラム、および記録媒体を提供することにある。
また、第2の目的は、ユーザが表計算ソフトを用いて作成したデータ表内の各セルに対して、データ表のレイアウトを判定し、データベースから適切なデータを自動的に書き込むようにすることによって、ユーザの負担の軽減を図ることが可能なインマッピングのための装置、方法、プログラム、および記録媒体を提供することにある。
上記の目的を達成するために、本発明では、以下のような手段を講じる。
すなわち、請求項1の発明は、スプレッドシート上に表示されているデータ表から、データベースのテーブルに書き込むレコードを作成するためのマッピング装置であって、第1のインデクス手段と、レコード構成決定手段と、レコード作成手段とを備える。インデクス手段は、同一のデータ項目に属する各データがそれぞれ書き込まれた複数のセルを含んでなるセル範囲を、複数配置して構成されるデータ表のセルのおのおのについて、データ項目毎にインデクスを付与する。レコード構成決定手段は、データ表に配置された各セルに書き込まれたデータを格納するために、レコードの構成を決定する。レコード作成手段は、データ表において各データ項目に属する各セルに書き込まれているそれぞれのデータを、同一のインデクスを付与された値またはすべてのレコードに同じ値を適用するデータ項目の場合にはその値を利用して、レコードを構成し、定義されたマッピング定義によって決定されているデータベースのテーブルのフィールドとデータ表の各データ項目の対応関係に基づき、データベースのテーブルにレコードを書き込む。
請求項9は、請求項1に対応する方法であり、請求項17は、同記録媒体であり、請求項19は、同プログラムである。
また、請求項2の発明は、表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのマッピング装置であって、第1のインデクス手段と、第2のインデクス手段と、データ作成手段とを備える。第1のインデクス手段は、同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成されるデータ表のセルのおのおのについて、データ項目毎にインデクスを付与する。第2のインデクス手段は、データベースのテーブルに格納されている各レコードを取得した後、各レコードのデータおのおのに、引数指定がされているマッピング定義によってレコードを貼り付ける場合には下記(1)にしたがって、引数指定がされていないマッピング定義によってレコードを貼り付ける場合には下記(2)にしたがって、インデクスを付与する。(1)マッピング定義の引数において、データ表のセルの値を参照することが指定されているフィールドの場合、第1のインデクス手段で付与されたインデクスと同じインデクス番号を付与され、マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードのデータ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与する。(2)マッピング定義の引数の指定がない場合、データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する。
データ作成手段は、データベースのテーブルに格納されている各レコードのそれぞれのデータを、定義されたマッピング定義によって決定されているテーブルのフィールドとデータ表の各データ項目との対応関係に基づき、データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、データ表を作成する。
請求項10は、請求項2に対応する方法であり、請求項18は、同記録媒体であり、請求項20は、同プログラムである。
請求項3の発明は、請求項1または2に記載のマッピング装置においてさらに、データ表のレイアウトに基づいて、データベースのテーブルの構成を定義するメタ定義データを作成するメタ定義データ作成手段を備えている。
請求項11は、請求項3に対応する方法である。
請求項4の発明は、請求項2に記載のマッピング装置において、データ作成手段は、決定された順序にしたがって、データ項目毎に、レコードからセルへのデータの書き込みを行う。
請求項12は、請求項4に対応する方法である。
請求項5の発明は、請求項4に記載のマッピング装置において、最初にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、データ作成手段によって書き込まれたデータは、次にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、データ作成手段によって書き込まれるデータのための引数となる。
請求項13は、請求項5に対応する方法である。
請求項6の発明は、請求項1乃至5のうち何れか1項に記載のマッピング装置に対してさらに、データ表が、複数のデータ項目に属するデータが書き込まれたセルを有する場合、データ表を、マトリクス型であると判定するタイプ判定手段を備える。そして、タイプ判定手段は、
(A)複数のセル範囲が、以下に示す(1)乃至(3)のうちの何れに属するのか否かを判定し、
(1)セルが複数配置されており、これら複数のセルが左右方向×上下方向からなる2次元状に配置されており、左右方向に配置されているセルの数が、上下方向に配置されているセルの数よりも多い場合、
(2)セルが複数配置されており、これら複数のセルが2次元状に配置されており、上下方向に配置されているセルの数が、左右方向に配置されているセルの数よりも多い場合、
(3)セルが複数配置されており、これら複数のセルが2次元状に配置されており、上下方向に配置されているセルの数と、左右方向に配置されているセルの数とが等しい場合、
(B)1または複数のセル範囲のうち、最も多くのセルが配置されているセル範囲を判定し、
(C)(B)において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、(1)の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
(D)(B)において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、(2)の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
(E)(C)において判定されたセル範囲に配置されているセルの数と、(D)において判定されたセル範囲に配置されているセルの数との積が、(B)において判定されたセル範囲に配置されているセルの数に等しく、(C)において判定されたセル範囲に配置されているセルの数と、(B)において判定されたセル範囲において左右方向に配置されているセルの数とが等しく、(D)において判定されたセル範囲に配置されているセルの数と、(B)において判定されたセル範囲において上下方向に配置されているセルの数とが等しい場合、データ表のタイプがマトリクス型であると判定し、それ以外の場合、テーブル型であると判定する。
請求項14は、請求項6に対応する方法である。
請求項7の発明は、請求項1乃至6のうち何れか1項に記載のマッピング装置において、第1のインデクス手段は、複数のセル範囲のおのおのについて、最上行の左端のセルへインデクスとして0を付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからのセル移動量に応じて1ずつインクリメントされるインデクスを付与し、当該行のすべてのセルへのインデクスの付与が完了すると、次の行の左端のセルに対し、前の行において最後に付与されたインデクスから1つインクリメントされたインデクスを付与し、当該セルと同一行における右方向のセルに対して、当該セルからの移動量に応じて1ずつインクリメントされるインデクスを付与するという規則にしたがって、データ表のセルのおのおのについて、データ項目毎にインデクスを付与する。
請求項15は、請求項7に対応する方法である。
請求項8の発明は、請求項1乃至7のうち何れか1項に記載のマッピング装置においてさらに、データ表に含まれている複数のセル範囲を定義するためのセル範囲定義手段であって、データ表において、複数のセル範囲を含む領域がユーザによって指定されると、この指定された領域を、行単位または列単位で分割することによって、複数のセル範囲から、各セル範囲を定義するようにしたセル範囲定義手段を備える。
請求項16は、請求項8に対応する方法である。
本発明によれば、ユーザが表計算ソフトを用いて作成したデータ表のレイアウトに基づいて、データベースに書き込むための適切な構成のレコードを自動的に作成することによって、ユーザの負担の軽減を図ることが可能となる。
また、ユーザが表計算ソフトを用いて作成したデータ表内の各セルに対して、データベースから適切なデータを自動的に書き込むようにすることによって、ユーザの負担の軽減を図ることが可能となる。
リレーショナルデータベースにおけるテーブルの例を示す図である。 図1における2つのテーブルが結合されることにより作成される1つのテーブルの例を示す図である。 住所録テーブルの一例を示す図である。 図1に示されるテーブルを用いてプライマリキー(PK)を説明した図である。 タイプIのアウトマッピングを説明するための図である。 タイプIIのアウトマッピングを説明するための図である。 タイプIIIのインマッピングを説明するための図である。 タイプIVのインマッピングを説明するための図である。 タイプVのインマッピングを説明するための図である。 タイプIVのインマッピングを説明するための図である。 本願の実施形態に係るマッピング方法が適用されたマッピング装置の構成例を示すブロック図である。 マッピング定義の作成を説明するための図である。 列分割機能を用いたマッピング定義の作成を説明するための図である。 メタ定義データの作成を説明するための図である。 アウトマッピング設定を説明するための図である(グループが1つの場合)。 アウトマッピング設定を説明するための図である(グループが2つの場合)。 インマッピング設定を説明するための図である。 データ表の型式を判定するための判定フロー図である。 図18の判定フローに適用されるための一例であるデータ表と、そのマッピング定義を示す図である(テーブル型のデータ表の場合)。 図18の判定フローに適用されるための一例であるデータ表と、そのマッピング定義を示す図である(マトリクス型のデータ表の場合)。 アウトマッピング処理によってインデクスが付与されたデータ表とデータベースとの一例を示す図である(テーブル型のシンプルなデータ表の場合)。 アウトマッピング処理によってインデクスが付与されたデータ表とデータベースとの一例を示す図である(テーブル型の複雑なデータ表の場合)。 アウトマッピング処理によってインデクスが付与されたデータ表とデータベースとの一例を示す図である(マトリクス型のシンプルなデータ表の場合)。 アウトマッピング処理によってインデクスが付与されたデータ表とデータベースとの一例を示す図である(マトリクス型の複雑なデータ表の場合)。 図23および図24のようなマトリクス型のデータ表に対応するデータベースに対してインデクスを付与する処理の一例を示すフローチャートである。 図25に示すフローチャートを用いてインデクスを付与するために行う処理の具体例を示す図である。 インマッピング処理によってインデクスが付与されたデータベースとデータ表との一例を示す図である(テーブル型のシンプルなデータ表の場合)。 インマッピング処理によってインデクスが付与されたデータベースとデータ表との一例を示す図である(テーブル型の複雑なデータ表の場合)。 インマッピング処理によってインデクスが付与されたデータベースとデータ表との一例を示す図である(マトリクス型のシンプルなデータ表の場合)。 インマッピング処理によってインデクスが付与されたデータベースとデータ表との一例を示す図である(マトリクス型の複雑なデータ表の場合)。 重複削除のインマッピングの例を説明するための図である。 2段階インマッピングの第2の類型を説明するための図である。
以下に、本発明の実施形態を、図面を参照して説明する。
本発明は、ユーザが表計算ソフトを用いて作成したデータ表のレイアウトに基づいて、データベースに書き込むための適切な構成のレコードを自動的に作成することによって、ユーザの負担の軽減を図ることが可能なアウトマッピングのための装置、方法、プログラム、および記録媒体に関する。また、ユーザが表計算ソフトを用いて作成したデータ表内の各セルに対して、データベースから適切なデータを自動的に書き込むようにすることによって、ユーザの負担の軽減を図ることが可能なインマッピングのための装置、方法、プログラム、および記録媒体に関する。
このような本発明の具体的な構成を説明する前に、まず、関連する技術について簡単に説明する。
(リレーショナルデータベース)
リレーショナルデータベース(RDB)とは、データをテーブルといわれる表形式の構造で管理するデータベースのことを言う。リレーショナルデータベースでは、図1に示すように、複雑なデータ構造を複数のテーブル(例えば、テーブル100およびテーブル200)に分解して、それらをデータの関係性で組み合わせて利用する。
リレーショナルデータベースでは、すべてのデータを表形式で表現する。表は列と行で構成され、列は必ず1つの意味を持つ。例えば、社員表を表わす図1のテーブル100では、第1列が社員番号120を、第2列が社員名140を、第3列が給与160を、第4列が部門番号180を示している。部門表を表わすテーブル200では、第1列が部門番号220を、第2列が部門名240を、第3列が所在地260を示している。
社員表を表わすテーブル100によって、社員名「松田」の部門番号180が「20」であることが分かり、部門表を表わすテーブル200によって、部門番号180が「20」である部門名が「営業」であることが分かる。
リレーショナルデータベースのもう1つの大きな特徴は、SQLというデータベース言語を用いて、複数のテーブルを結合(リレーション)して利用することである。図2は、テーブル100とテーブル200とを結合することにより作成されるテーブル300を示している。テーブル100もテーブル200も部門番号という同じ情報を有しているので、同じ部門番号を有するデータ同士が結び付けられることによって、テーブル300が作成される。すなわち、テーブル300における部門番号は、テーブル100における部門番号180でも、テーブル200における部門番号220でもあるので、図2では、部門番号180(220)として示している。
次に、リレーショナルデータベースで使用されている主な用語について、図3に示す住所録テーブル400を例に用いて説明する。
住所録テーブル400のような「テーブル」とは、データを格納する場所の基本単位であり、原則としてすべてのデータは何らかのテーブルに保管される。
レコード420とは、住所録テーブル400における表の行(横)に相当し、1件のデータが1つの「レコード」に該当する。
フィールド440とは、住所録テーブル400における表の列(縦)に相当し、各レコード420を構成する。なお、フィールドは、当該指摘技術分野において、カラムとも称される。
このような住所録テーブル400を作成する場合、設計時にフィールド440の構成を決定し、レコード420単位でデータを記録して行く。
また、テーブルの各行を一意に識別する値が格納された単一のフィールドまたは複数のフィールドの組み合わせのことを「プライマリーキー(PK)」という。例えば、図1でも示したテーブル100およびテーブル200が示されている図3を用いて説明すると、社員表を表わすテーブル100の場合、社員番号120が、部門表を表わすテーブル200の場合、部門番号220が、それぞれPKに相当する。
(マッピング)
前述したように、マッピングとは、表計算ソフト(例えばマイクロソフト社のExcel(登録商標)や、Google社のSpreadSheet等)におけるスプレッドシート内のセルと、例えばリレーショナルな表形式のデータベース(例えば、マイクロソフト社のAccess(登録商標)等)のレコードとの紐付けを行うことである。
そして、マッピングには2種類あり、データ表から、データベースのテーブルへのマッピングである「アウトマッピング」と、その逆に、データベースのテーブルからデータ表へのマッピングである「インマッピング」とがある。なお、本願発明は、前述したようなリレーショナルデータベースに限らず、それ以外のタイプのデータベースにも適用可能である。
以下に、図5乃至図10を用いて、マッピングについて具体的に説明する。
マッピングは大きく分けて6つのタイプに分類される。図5乃至6に示すタイプI乃至IIは、アウトマッピングに関するものであり、図7乃至10に示すタイプIII乃至VIは、インマッピングに関するものである。
図5に示すタイプIは、データ表500からデータベースのテーブル600へなされるアウトマッピングである。例示するデータ表500は、科目コード510、科目名称520、金額530、備考540、年度550、期間560からなるデータ項目を備えている。セル範囲515内の各セルには、科目コード510に属するデータが表示される。同様に、セル範囲525内の各セルには、科目名称520に属するデータが、セル範囲535内の各セルには、金額530に属するデータが、セル範囲545内の各セルには、備考540に属する各データが表示されている。セル範囲525には、セル範囲515に示される科目コードのデータに応じた科目名称のデータが表示されている。
また、データ表500内の上側にある年度550および期間560もまたデータ項目である。そして、年度550および期間560のセル範囲555,565にはそれぞれ1つのセルしか含まれていない。このように、データ項目に1つのセルしか含まれていない場合、このセルに表示されているデータの内容は、対応するデータベースのテーブル600に書き込みを行う全レコードに適用される。このような構成のデータ表500は、「テーブル型」のデータ表と呼ばれる。
例えば、年度550のセル範囲555が有する唯一のセルに「2014年度」が表示されている場合、データベースのテーブル600に書き込むすべてのレコードの年度610というフィールドのデータ615が「2014年度」となる(A110)。
同様に、セル範囲565の唯一のセルに「第4四半期」が表示されている期間560についても、データベースのテーブル600に書き込むすべてのレコードにおいて、対応するフィールドである期間620のデータ625が「第4四半期」となる(A120)。
データベースのテーブル600におけるその他のデータ項目である科目コード630、金額640、および備考650は、それぞれデータ表500における科目コード510、金額530、および備考540に対応しており、データ635,645,655はそれぞれ、セル範囲515,535,545内のセルに表示されているデータである(A130,A140,A150)。
タイプIは、A110〜A150に示すように、データ表500からデータベースのテーブル600にレコードを作成するアウトマッピングである。
図6に示すタイプIIもまた、アウトマッピングである。このアウトマッピングの例を、データ表700とデータベースのテーブル800とを用いて説明する。
タイプIIのアウトマッピングでは、データ表700のような「マトリクス型」と呼ばれるデータ表からデータベースのテーブル800へのマッピングがなされる。マトリクス型のデータ表は、複数のデータ項目に属するデータが書き込まれたセルを有する。図6の例では、セル範囲535内のセルは、科目コード510と、相手コード580との両方に属している。
例えば、セル535(#1)は、セル515(#1)とセル585(#1)とに属する。セル515(#1)は、科目コード510に属するデータであり、図6に示す例では、「AC0010」となっている。この科目コードに対応する科目名称520は、売上高525(#1)である。また、セル585(#1)は、相手コード580に属するデータであり、図6に示す例では「C2000」となっている。この相手コードに対応するセル595(#1)に書き込まれたデータは「アバントン」となっている。
すなわち、セル535(#1)に表示されているデータ「100,000」は、相手コード「C2000」である「アバントン」の、売上高(科目コード510=AC00010)を示している。
図6に示すデータ表700は「マトリクス型」である。なお、データ表700について補足すると、セル範囲に1つのセルしか含まれていないデータ項目として、年度550および期間560に加えて、自社570も設けられている。自社570には、唯一のセル575が含まれ、自社570はデータベースのテーブル800における自社コード660が対応し、自社570に含まれるセル575に表示されているデータは、データベースのテーブル800におけるデータ665に対応する(A160)。
また、データ表700における相手コード580はデータベースのテーブル800における相手コード670に、相手コード580に含まれるセル範囲585に書き込まれるデータは、相手コード670におけるデータ675となる(A170)。図6に示されたデータ表700とデータベースのテーブル800との関係に関連するその他については、上記説明および図5を用いて既に行った説明から明らかであるので、同一の構成および処理については、同一の符号を付し、説明を省略する。
タイプIIは、A110〜A140,A160〜A170に示すようにデータ表700からデータベースのテーブル800のレコードを作成するアウトマッピングである。
図7に示すタイプIIIは、データベースのテーブル600からデータ表500へなされるインマッピングの一例である。データ表500は、テーブル型であり、図5に示すものと同じ構成をしているので、図5と同一符号を付すことによって、その構成の説明を省略する。また、データベースのテーブル600もまた、図5に示すものと同じ構成をしているので、同様に、図5と同一符号を付すことによって、その構成の説明を省略する。
ユーザが、表計算ソフトを用いて、スプレッドシート上に、図7に示すようなデータ表500を作成したものとする。さらに、年度550としてセル範囲555に「2014年度」が書き込まれ、期間560としてセル範囲565に「第4四半期」が書き込まれているものとする。これによって、データベースのテーブル600において、年度610として「2014年度」に該当し、期間620として「第4四半期」に該当するデータがインマッピングの対象として絞り込まれる(A200,A210)。
データ表500ではさらに科目コード510の具体的なデータがセル範囲515に表示されている。これによって、データ表500の金額530のセル範囲535には、データベースのテーブル600に書き込まれているデータのうち、年度610が「2014年度」であって、期間620が「第4四半期」であるデータのうち、科目コード510に含まれるデータと同一のデータを有する科目コード630が検索される(A220)。さらに、A220で検索された科目コード630のデータに対応する金額640のデータおよび備考650のデータが検索され、これらデータが、データ表500における対応するセル範囲535およびセル範囲545に表示される(A230,A240)。
例えば、データ表500は、年度550が「2014年度」、期間560が「第4四半期」を対象としているので、データ表500における科目コード510が「AC0010」である場合、データベースのテーブル600における「第1レコード」が対応する。「第1レコード」の金額640は「5,000,000」であり、備考650は「12%増加」であるので、データ表500の科目コード510の「AC0010」の行には、金額530として「5,000,000」、備考540は「12%増加」が書き込まれる。
タイプIIIでは、科目コード510のように、あるデータ項目のデータがすでに固定情報として表示されており、これらをキー情報として、対応するデータを、データベースのテーブル600から検索しているので、テーブル型かつ検索型のインマッピングとして分類される。
それに対して、図8に示すようなタイプIVは、テーブル型のインマッピングであるものの、このような検索を行わずになされる、非検索型のものである。すなわち、テーブル型かつ非検索型のインマッピングとして分類される。
図8に示すデータ表500およびデータベースのテーブル600は、図7に示すデータ表500およびデータベースのテーブル600と同じ構成をしているので、図7と同一符号を付し、異なる点のみを説明する。
すなわち、図8では、図7とは異なり、科目コード510のデータが決められておらず、データベースのテーブル600からは、年度610が「2014年度」であり、期間620が「第4四半期」である科目コード630のデータ635がすべてデータ表500によって取得され、取得された順に表示される(A225)。さらに、科目コード630のデータ635に対応している金額640のデータ645がデータ表500によって取得され、既に表示されている科目コード510のセル範囲515のデータと並ぶように表示される(A230)。同様に、科目コード630のデータ635または金額640のデータ645に対応している備考650のデータ655がデータ表500によって取得され、既に表示されている科目コード510のセル範囲515のデータおよび金額530のセル範囲535のデータと並ぶように表示される(A240)。
次に、図9を用いて、タイプVについて説明する。タイプVは、データ表700がマトリクス型である場合におけるインマッピングである。
図9に示すタイプVは、データベースのテーブル800からデータ表700へなされるインマッピングの一例である。データ表700は、マトリクス型であり、図6に示すものと同じ構成をしているので、図6と同一符号を付すことによって、その構成の説明を省略する。また、データベースのテーブル800もまた、図6に示すものと同じ構成をしているので、同様に、図6と同一符号を付すことによって、その構成の説明を省略する。
ユーザが、表計算ソフトを用いて、スプレッドシート上に、図9に示すようなデータ表700を作成したものとする。さらに、年度550としてセル範囲555に「2014年度」が指定され、期間560としてセル範囲565に「第4四半期」565が指定され、自社570としてセル範囲575に「C1000」が指定されている。これによって、データベースのテーブル800において、年度610として「2014年度」であり、期間620として「第4四半期」であり、自社コード660として「C1000」のものがインマッピングの対象として絞り込まれる(A300,A310,A320)。データ表700ではさらに、相手コード580のセル範囲585に、「C2000」、「C3000」、および「C4000」が指定されている。これらは検索のためのキー情報として使用される(A330)。
これによって、データ表700のセル範囲515には、データベースのテーブル800に書き込まれているデータのうち、科目コード630に含まれるデータ635が取得される(A340)。そして、セル範囲535には、年度610が「2014年度」であって、期間620が「第4四半期」であって、自社コード660が「C1000」であるデータのうち、セル範囲585に指定されている相手コード670に対応する金額640が、セル範囲515に指定された科目コード毎に表示される(A350)。
最後に、図10を用いて、タイプVIについて説明する。タイプVIもまた、データ表700がマトリクス型であるインマッピングであるが、2つのデータベースのテーブル800,900から1つのデータ表700へのインマッピングである。このため、インマッピング処理を、2段階に分けて行う。このようなインマッピングは2段階マッピングと称される。
図10におけるデータ表700は、マトリクス型であり、図6に示すものと同じ構成をしているので、図6と同一符号を付すことによって、その構成の説明を省略する。また、データベースのテーブル800もまた、図6に示すものと同じ構成をしているので、同様に、図6と同一符号を付すことによって、その構成の説明を省略する。タイプVIでは、内部取引明細に関するデータベースのテーブル800に加えて、さらにもう1つのデータベースのテーブル900が存在する。図10に示す例では、データベースのテーブル900は、会社マスタに関するものであり、フィールドとして会社コード910と会社名称920とがあり、それぞれ対応するデータ915,925が書き込まれている。
データ表700の年度550、期間560、自社570のセル範囲555,565,575がそれぞれ有する単一のセルには、図9と同様に、「2014年度」、「第4四半期」、「C1000」が表示されている(A300,A310,A320)。また、科目コード510のセル範囲515には、図9と同様に対応するデータが既に表示されている(A340)。
まず1段階目のインマッピングとして、データ表700の相手コード580のセル範囲585に、データベースのテーブル900の会社コード910に書き込まれているデータ915が表示される(A345)。また、会社コード910のデータ915に対応する会社名称920のデータ925が、セル範囲595に表示される。このインマッピングは、前述したタイプIVに該当する。
このように1段階目でセル範囲585に表示されたデータがキー情報とされ、A350の処理が実行されることによって、データベースのテーブル800から、データ表700のセル範囲535に、対応するデータが書き込まれることによって、2段階目のインマッピングが実行される。このインマッピングは、前述したタイプVに該当する。
なお、ここでは、1段階目がタイプIVのインマッピングであり、2段階目がタイプVのインマッピングである例を示したが、タイプVIのインマッピングは、このような組み合わせに限定されるものではなく、タイプIII〜Vのマッピングのうちの何れか2つのタイプを、任意の順序で実行することができる。また、例えば、1段階目でタイプIIIのインマッピングがなされ、2段階目でもタイプIIIのインマッピングがなされるように、1段階目でインマッピングされるタイプと2段階目でインマッピングされるタイプとが同じである場合もある。
(マッピング装置の概要)
以上のような背景説明を踏まえ、以下に、本願の実施形態に係るマッピング方法が適用されたマッピング装置について説明する。
図11は、本願の実施形態に係るマッピング方法が適用されたマッピング装置1000の構成例を示すブロック図である。
マッピング装置1000は、パソコン、タブレット端末、スマートフォン等のコンピュータにインストールされることによって実現される。
したがって、図1に示す入力部1020は、例えばマッピング装置1000が、パソコンであればマウスやキーボード等であり、タブレット端末やスマートフォンであればタッチパネル等であり、表示部1030は、例えばディスプレイである。
マッピング装置1000は、全体の処理を司る全体制御部1040と、全体制御部1040によって動作制御されるマッピング定義部1050、メタ定義データ作成部1060、アウトマッピング設定部1070、インマッピング設定部1080、データ表判定部1090、アウトマッピング・インデクス付与部1100、レコード構成決定部1110、インマッピング・インデクス付与部1120、データ表作成部1130、データ書込部1140、記憶装置2020、および明細テーブル作成プロシージャ2060とを備えている。
明細テーブル2080は、例えば前述したデータベースのテーブル600,800,900等に相当し、記憶装置2020は、メタ定義テーブル2040や明細テーブル2080を格納するための例えばハードディスクである。
(マッピング定義作成)
マッピング定義部1050は、図12の右に示すようなマッピング定義1200を作成する。マッピング定義1200は、インマッピングおよびアウトマッピングを行うために必要な情報である。
図12の左に示すデータ表500は、Excelシートで表示されているセルアドレス表示((A,B,C,D,E,F,・・・)×(1,2,3,4,5,6,7,8,・・・))が記載されている点を除いて図5で説明したものと同一である。図12の右に示すマッピング定義1200は、セル範囲名称1210と、セル範囲1220とをデータ項目として備えたテーブル構造をしている。セル範囲名称1210のデータ1215には、図12の例では、「年度のエリア」、「期間のエリア」、「科目のエリア」、「金額のエリア」、および「備考のエリア」が記載されている。これらはそれぞれデータ表500における年度550、期間560、科目コード510、金額530、および備考540に対応させて、ユーザが決定して入力したものである(G100〜G140)。
ユーザはさらに、データ1215に入力されている項目に応じたデータ表500におけるセル範囲を、マッピング定義部1050の機能を使って、セル範囲1220のデータ1225として書き込む。例えば、「年度のエリア」であれば、データ表500におけるセルE2である。「科目のエリア」であれば、データ表500におけるB6:B99となる。
図12では、マッピング定義1200を、マッピング定義部1050の機能を使って、ユーザが作成するものとして説明した。しかしながら、マッピング定義部1050は、マッピング定義1200の作成を半自動化した機能も備えることができる。これを図13を用いて説明する。
まず、ユーザは、マッピング定義部1050を起動し、図13の左に示すデータ表500のうちのセル範囲598のように、大きなセル範囲をセル範囲1220として設定する。すなわち、図13の右上に示すように、セル範囲1220のデータ1220aとしてB6:E99を書き込む(G150)。
マッピング定義部1050は、起動されると、前述したような半自動化機能を実現するための、図示しない列分割ボタンを表示する。この列分割ボタンをユーザが、入力部1020を用いて押下すると、マッピング定義1200aのセル範囲1220のデータ1220aとして設定されたセル範囲B6:E99が、列単位に分割される(G160)。
これによって、図13の右下のデータ1225bに示すように、セル範囲B6:E99が、列単位に分割されることにより、B6:B99、C6:C99、D6:D99、E6:E99からなる4つのセル範囲が生成されたマッピング定義1200bが生成される。
さらに、データ表500における各セル範囲の上に隣接するセルに記載されている名称(すなわち、「科目コード」、「科目名称」、「金額」、「備考」)が、セル範囲名称1210のデータ1215bとして自動的に取得される。なお、重複した名称が使用されている可能性もあるので、初出のセル範囲名称については、末尾に_001と付し、同じセル範囲名称が再出した場合には、以降、_002,_003,・・・と付すようにしている。
この機能にしたがい、マッピング定義1200bでは、データ表500における科目コード510、科目名称520、金額530、および備考540が、それぞれ末尾に_001が付されてデータ1215bとして書き込まれる。
このようにして、ユーザは、マッピング定義部1050の半自動化機能を用いることにより、データ表500からマッピング定義1200bをより効率的に作成することができる。
上記では一例として列分割について説明したが、当業者であれば、行分割についても同様に実施できることを理解できるであろう。なお、行分割の場合、マッピング定義1200aで指定した大きなセル範囲1220を示すデータ1220aの各列の上に隣接するセルに代えて、各行の左に隣接するセルに記載されている名称が、セル範囲名称1210のデータ1215bに自動的に取得される。
なお、マッピング定義部1050は、このような半自動化機能を有する場合であっても、手動による機能を排除するものではない。したがって、図12を用いて説明したように、セル範囲名称1210に属するデータ1215と、対応するセル範囲1220に属するデータ1225とを、ユーザ入力にしたがって作成することもできる。例えば、データ表500におけるセル範囲555(E2)およびセル範囲565(E3)は、セル範囲598(B6:E99)とは離れているので、マッピング定義1200aにおいて、大きなセル範囲1220のデータ1220aに含めることはできない。よって、セル範囲555(E2)およびセル範囲565(E3)は、ユーザ入力にしたがって個別に設定することによって、図13に示すようなマッピング定義1200bから、図12に示すようなマッピング定義1200を作成する。なお、図12に示すマッピング定義1200は、セル範囲名称1210の中に、「科目名称」に関するデータは含まれていないので、図13に示すようなマッピング定義1200bから、図12に示すようなマッピング定義1200を作成する場合には、図13のマッピング定義1200bのセル範囲名称1210に含まれている「科目名称_001」のレコードを削除する。
(メタ定義データ作成)
ユーザは、メタ定義データ作成部1060の機能を使って、マッピング定義1200から、メタ定義データ1300を作成する。
図14は、メタ定義データ1300の一例を示しており、データ項目として、フィールド論理名称1310、データ型1320、データ長1330、小数桁1340、PK 1350、および必須1360を備えている。
ユーザは、メタ定義データ作成部1060の機能を使って、マッピング定義1200で定義されているセル範囲名称1210のうち、後述する明細テーブル2080(前述したデータベースのテーブル600,800,900に相当)に書き込みたいセルを、例えばマウスのクリックによって指定する。
すると、クリックされたセルが、メタ定義データ1300のフィールド論理名称1310に、反映されるようになる。例えば、マッピング定義1200のセル範囲名称1210に属するデータ1215のうち、「年度のエリア」がクリックされると、図14の右図に示すように、メタ定義データ1300のフィールド論理名称1310に属するレコード1315の先頭に示されているように「年度」と表示される(G200)。ユーザは、このようにメタ定義データ作成部1060の機能を使って、メタ定義データ1300のフィールド論理名称1310に属するデータ1315として、マッピング定義1200のセル範囲名称1210の内容を反映させていく(G210〜240)。図14では、マッピング定義1200のセル範囲名称1210に属するデータ1215のうち、「年度のエリア」、「期間のエリア」、「科目名称のエリア」、「金額のエリア」、および「備考のエリア」が、メタ定義データ1300のフィールド論理名称1310のデータ1315として反映された例を示している。なお、フィールド論理名称1310のデータ1315として「科目コードのエリア」は反映されていないように、必ずしもマッピング定義1200のセル範囲名称1210のすべてが、メタ定義データ1300のフィールド論理名称1310のデータ1315として反映される必要はない。
メタ定義データ1300はさらに、データ項目として、データ型1320、データ長1330、小数桁1340、PK 1350、および必須1360を備えているが、これらは、ユーザが入力する項目である。データ長1330は、データ型1320が文字の場合には文字列長を、データ型1320が数値の場合には整数部の桁数を意味する。小数桁は、数値の場合の小数部(精度)を意味する。PK 1350は、プライマリーキーおよびインデクスであることを意味する。必須1360は、NotNull制約(データの空白を認めない)がかかることを意味する。
(明細テーブル作成)
このように作成されたメタ定義データ1300は、全体制御部1040によって、メタ定義データ作成部1060からメタ定義テーブル2040に送られ、メタ定義テーブル2040に格納される。
メタ定義テーブル2040にメタ定義データ1300が格納されると、明細テーブル作成プロシージャ2060が起動する。明細テーブル作成プロシージャ2060は、メタ定義データ1300に定義された各データをパラメータとして受け取り、受け取ったパラメータをDDL文に当てはめ、動的にDDL文を発行することによって、明細テーブル2080を作成する。
このように、本実施形態によれば、従来とは逆の発想で、データベースを起点にしてデータ表を設計するのではなく、データ表の設計を起点としてデータベースのテーブルである明細テーブル2080を作成することができる。具体的には、セル範囲の組み合わせ明細テーブル2080を構成するという設定方法により、作成することができる。
明細テーブル2080は、例えば前述したデータベースのテーブル600,800,900等のように、リレーショナルデータベースにおいて用いられるのに好適なテーブル構造を有している。
なお、明細テーブル2080は、適宜、ユーザによって編集されることが可能となっている。例えば、明細テーブル2080に1レコードも存在しない場合には、ユーザが設定内容を編集することで、明細テーブル2080が再作成されることによって、編集された内容が反映されるようにしている。また、明細テーブル2080に1レコードでもデータが存在する場合には、既存のデータを破壊することなく変更できる内容、つまりデータ長1330の拡張、小数桁1340の拡張、最後尾へのフィールド追加のみを可能としている。
記憶装置2020は、メタ定義テーブル2040および明細テーブル2080を格納する。
(マッピング設定)
アウトマッピング作成部1070およびインマッピング作成部1080は、全体制御部1040を介して明細テーブル2080を取得し、マッピング設定を行う。
図15は、アウトマッピング設定部1070によってなされるアウトマッピング設定を説明するための図である。
アウトマッピング設定部1070は、アウトマッピング設定をしたいマッピング定義1200を表示部1030から表示させるとともに、このマッピング定義1200に対応する明細テーブル2080の明細テーブル構成2090を、記憶装置2020から取得する。明細テーブル構成2090は、図15の右下に示すように、データ項目としてフィールド論理名称2092とデータ型2094とを備えている。このような明細テーブル構成2090の取得は、テーブル選択ボタン3100を用いて、所望の明細テーブル2080を選択することによって実現する。
図示していないが、アウトマッピング作成部1070が起動されると、表示部1030からテーブル選択ボタン3100が表示されるようになっている。ユーザが入力部1020を用いてこのテーブル選択ボタン3100をクリックすると、記憶装置2020に格納されている明細テーブル2080の一覧がプルダウン表示されるようになっており、ユーザは、その中から所望の明細テーブル2080を選択できるようになっている。そして、選択されると、選択された明細テーブル2080の明細テーブル構成2090が、図15の右下図に示すように、表示部1030から表示されるようになっている。
図14に示すマッピング定義1200では、データ項目としてセル範囲名称1210とセル範囲1220しかなかったが、図15の左に示すマッピング定義1200では、さらにフィールド論理名称1230とグループ1240とが追加されている。
このうち、フィールド論理名称1230は、明細テーブル構成2090のフィールド論理名称2092から引き継がれる(G300〜G340)ことにより追加される。
また、グループ1240は、ユーザが、アウトマッピング設定部1070を用いることによって、マッピング定義1200に新たに追加されるデータ項目である。
グループ1240は、同じカラムに複数のセル範囲から書き込む場合に、一緒にレコードを構成するセル範囲の定義である。ユーザは、グループ1240に、一緒にレコードを構成するセル範囲に対して、同じグループ番号を付すことによって、グループ定義を行う。例えば、図15の場合、セル範囲E2、E3、B6:B99、D6:D99、およびE6:E99が、グループ1という同一のグループに属していることを意味する。
図16は、同じ明細テーブル2080に書き込むデータ表が2つあり、2つのグループを定義する場合におけるマッピング定義1200(#1),1200(#2)を示している。マッピング定義1200(#1)はグループ1のためのものであり、マッピング定義1200(#2)はグループ2のためのものである。
図17は、インマッピング設定部1080によってなされるインマッピング設定を説明するための図である。
インマッピング設定部1080は、インマッピング設定をしたいマッピング定義1200を表示部1030から表示させるとともに、このマッピング定義1200に対応する明細テーブル2080の明細テーブル構成2090を、記憶装置2020から取得する。この手順は、アウトマッピング設定部1070によってなされるものと同じであるので説明を省略する。
図14に示すマッピング定義1200では、データ項目としてセル範囲名称1210とセル範囲1220しかなかったが、図17の左上に示すマッピング定義1200では、さらにフィールド論理名称1230とグループ1240と引数設定1250が追加されている。フィールド論理名称1230は、明細テーブル構成2090のフィールド論理名称2092のデータ2093から引き継がれたものである(G350〜G360)。グループ1240については、説明済みであるので、ここでは更なる説明をしない。
引数設定1250とはデータの絞り込みのための条件設定のことであり、引数設定1250の設定内容1255に「引数設定」と指定すると、図17の左下に示すような引数設定画面3120が表示装置3020から表示されるようにしている。
ユーザは、この引数設定画面3120にしたがって条件を入力することによって、データの絞り込みのための条件を設定する。引数の指定が求められるのは、メタ定義データ1300においてPK 1350に指定されている項目である。
図14の右に示すように、本例では、メタ定義データ1300において、フィールド論理名称1310のデータ1315のうちの「年度」、「期間」、「科目コード」についてPK 1350が指定されている。したがって、引数設定画面3120では、年度3122、期間3124、科目コード3126について、絞り込みパターンの設定3123,3125,3127が要求される。
絞り込みパターンとしては、以下の4パターンがある。第1のパターンは、絞り込まないことである。これは、当該PKをデータの絞り込みに利用しないことを意味する。データを一覧表示するだけの目的でデータ表を利用する場合、第1のパターンが適用される。
第2のパターンは、「メニューで絞る」ことである。これは、明細テーブル2080からデータを取得する際に、ユーザが操作するシステム内のメニューにおいて、選択した情報で絞り込んでデータを取得するためのものである。
第3のパターンは、「固定値で絞る」ことである。これは、明細テーブル2080が指定した特定の1つの値で、明細テーブル2080から取得したデータをさらに絞り込むために利用するためのものである。
第4のパターンは、「セルの値で絞る」ことである。これは、ユーザが予めセルに書き込んだ値で、明細テーブル2080から取得したデータをさらに絞り込むためのものである。
図17の左下の図では、年度3122に対する設定3123が「メニューで絞る」であり、期間3124に対する設定3125が「メニューで絞る」であり、科目コード3126に対する設定3127が「セルの値で絞る」であり、さらに、「セルの値で絞る」セル範囲としてB6:B99が指定されている例を示すものである。
このような引数設定が同じであるフィールドは、同じグループに属し、インマッピング時に、データ表に対して同時にデータの書き込みが行われるようになる。例えば、図17の左上のマッピング定義1200では、「金額のエリア」と「備考のエリア」とがともに「引数設定1」に設定されている。このように同一の引数設定がなされているフィールドは同じグループとみなされるので、図17の左上のマッピング定義1200では、「金額のエリア」、「備考のエリア」ともにグループ1となる。
このようなグループ設定により、同じグループに属するデータについては、データ表への書き込みが同時に行われるようになる。これによって、本装置の処理の高速化を図ることが可能となる。
(データ表のタイプ判定)
前述したように、グループ設定がなされたマッピング定義1200を用いて、データ表判定部1090は、アウトマッピングのため、およびインマッピングのため、それぞれについて、データ表が、前述したテーブル型であるか、マトリクス型であるかを判定する。先ず、アウトマッピングためのデータ表の判定フローを図18に示す。
データ表判定部1090は、アウトマッピングのためのマッピング定義1200のうち、同一のグループに属するセル範囲を抽出する(S100)。
次に、S100で抽出されたセル範囲を以下の4つの分類のうちの何れかに振り分ける(S102)。
(1)セル数が1つしかないセル範囲。
(2)左から右へのセル範囲の広がりが、上から下へのセル範囲の広がりよりも1以上上回っているセル範囲(横方向のセル範囲)。
(3)上から下へのセル範囲の広がりが、左から右へのセル範囲の広がりよりも1以上上回っているセル範囲(縦方向のセル範囲)。
(4)セル数が1より大きく、左から右へのセル範囲の広がりと、上から下へのセル範囲の広がりが同じ数のセル範囲。
次に、S100で抽出されたセル範囲のうち、セル数が最大のセル範囲を抽出する(S104)。なお、ここで抽出されるセル範囲は、複数あっても構わない。
次に、最大セル数のセル範囲以外のもので、(2)のセル範囲のうち、セル数が最小のセル範囲を抽出する(S106)。なお、ここで抽出されるセル範囲は、複数あっても構わない。
さらに、最大セル数のセル範囲以外のもので、(3)のセル範囲のうち、セル数が最小のセル範囲を抽出する(S108)。なお、ここで抽出されるセル範囲は、複数あっても構わない。
最後に、以下の(a)〜(c)に示す3つの判定がなされ(S110)、3つすべてが成立している場合(S110:Yes)、このデータ表はマトリクス型であると判定され(S112)、そうではない場合(S110:No)、このデータ表はテーブル型であると判定される(S114)。
(a)「S106で抽出されたセル範囲のセル数」×「S108で抽出されたセル範囲のセル数」=「S104で抽出された、セル数が最大のセル範囲のセル数」
(b)「S106で抽出されたセル範囲のセル数」=「S104で抽出された、セル数が最大のセル範囲の列数」
(c)「S108で抽出されたセル範囲のセル数」=「S104で抽出された、セル数が最大のセルセル範囲の行数」。
このような判定フローによってなされる判定例を以下に示す。
図19(a)は、図12の左に示すものと同じテーブル型のデータ表500であり、図19(b)は、このデータ表500に対応するマッピング定義1200(#OUT)である。
この場合、S100では、セル範囲E2、セル範囲E3、セル範囲B6:B99、セル範囲D6:D99、およびセル範囲E6:E99が抽出される。
S102では、(1)にセル範囲E2およびセル範囲E3が、(3)にセル範囲B6:B99、セル範囲D6:D99、およびセル範囲E6:E99が振り分けられる。なお、(2)および(4)に該当するセル範囲はない。
S104では、セル範囲B6:B99、セル範囲D6:D99、およびセル範囲E6:E99が抽出される。
S106では、該当するセル範囲はない。
S108では、セル範囲B6:B99、セル範囲D6:D99、およびセル範囲E6:E99が抽出される。
S110では、(a)に関し、「0×94=94」となるので成立しない。(b)に関し、「0=1」となるので成立しない。(c)に関し、「94=94」となり成立する。
このように、(a)、(b)、(c)のすべてが成立している訳ではないので、S114に進み、このデータ表500は、テーブル型であると判定される。
図20(a)は、図6のデータ表700に示すものとほぼ同じ(図6のデータ表700で定義されている自社570およびそのセル範囲575が、定義されていない点が異なる)マトリクス型のデータ表702であり、図20(b)は、このデータ表702に対応するマッピング定義1202(#OUT)である。また、図20(a)に示すデータ表702は、図6の左図では記載されていないかったExcelシートのセルアドレス表示((A,B,C,D,E,F,・・・)×(1,2,3,4,5,6,7,8,・・・))が記載されている。
この場合、S100では、セル範囲E2、セル範囲E3、セル範囲B7:B99、セル範囲D5:F5、およびセル範囲D7:F99が抽出される。
S102では、(1)にセル範囲E2およびセル範囲E3が、(2)にセル範囲D5:F5が、(3)にセル範囲B7:B99が、(4)にセル範囲D7:F99が振り分けられる。
S104では、セル範囲D7:F99が抽出される。
S106では、セル範囲B7:B99が抽出される。
S108では、セル範囲B7:B99が抽出される。
S110では、(a)に関し、「3×93=279」となり成立する。(b)に関し、「3=3」となり成立する。(c)に関し、「93=93」となり成立する。
このように、(a)、(b)、(c)のすべてが成立しているので、S112に進み、このデータ表702は、マトリクス型であると判定される。
(アウトマッピング処理)
前述したように、データ表判定部1090によって、データ表のタイプが判定されると、アウトマッピング・インデクス付与部1100が、データ表のセルのおのおのについて、データ項目毎にインデクスを付与する。
すなわち、アウトマッピング・インデクス付与部1100は、データ表に含まれる複数のセル範囲に含まれるセルのおのおのについて、最上行の左端のセルへインデクスとして0を付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからのセル移動量に応じて1ずつインクリメントされるインデクスを付与し、当該行のすべてのセルへのインデクスの付与を完了すると、次の行に移動し、当該行の左端のセルに対し、前の行において最後に付与されたインデクスから1つインクリメントされるインデクスを付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからの移動量に応じて1ずつインクリメントされるインデクスを付与するという規則にしたがって、データ表に含まれる複数のセル範囲に含まれるセルのおのおのについて、データ項目毎にインデクスを付与する。
具体例を、図面を用いて以下に説明する。
図21の左は、テーブル型であるシンプルなデータ表5000のセルのおのおのについて、データ項目毎にインデクスが付与された例を示す図である。
図21の左に示すデータ表5000には5つのデータ項目が含まれ、第1のデータ項目がセル範囲5020、第2のデータ項目がセル範囲5040、第3のデータ項目がセル範囲5060、第4のデータ項目がセル範囲5080、第5のデータ項目がセル範囲5100を有する。
セル範囲5020に属する唯一のセルにはインデクスとして0が付与される。セル範囲5040,5060,5080,5100はともに縦方向に展開されている。したがって、それぞれ、1行目のセルにはインデクスとして0が付与され、2行目のセルには1が、3行目のセルには2が、4行目のセルには3が、最終行のセルには4が付与される。
図22の左は、テーブル型である複雑なデータ表5200のセルのおのおのについて、データ項目毎にインデクスが付与された例を示す図である。
図22の左に示すデータ表5200にも5つのデータ項目が含まれ、第1のデータ項目がセル範囲5220、第2のデータ項目がセル範囲5240、第3のデータ項目がセル範囲5260、第4のデータ項目がセル範囲5280、第5のデータ項目がセル範囲5300を有する。
セル範囲5220に属する唯一のセルにはインデクスとして0が付与される。セル範囲5240,5280はそれぞれ縦方向に展開されている。したがって、それぞれ、1行目のセルにはインデクスとして0が付与され、2行目のセルには1が、3行目のセルには2が、4行目のセルには3が、5行目のセルには4が付与される。セル範囲5300は、2行目と3行目との間にブランクのセルが存在するものの、やはり縦方向に展開されている。この場合、1行目のセルにはインデクスとして0が付与され、2行目のセルには1が、4行目のセルには2が、5行目のセルには3が、6行目のセルには4が付与される。
一方、セル範囲5260は、2列にまたがっている。このようなセル範囲5260に対しては先ず、最上行の左端のセルへインデクスとして0を付与する。当該セルと同一行には他のセルはないので、2行目に移動し、2行目の左端のセルに対して、インデクスとして1を付与する。2行目には左端のセルの右側に1つのセルがある。このセルに対して、インデクスとして2を付与する。2行目にはさらなるセルはないので、3行目に移動する。2乃至4行目は、縦方向に展開されているのみであるので、3行目のセルのインデクスは3となり、4行目のセルのインデクスは4となる。
図23の左は、マトリクス型であるシンプルなデータ表5400のセルのおのおのについて、データ項目毎にインデクスが付与された例を示す図である。
図23の左に示すデータ表5400にも5つのデータ項目が含まれ、第1のデータ項目がセル範囲5420、第2のデータ項目がセル範囲5440、第3のデータ項目がセル範囲5460、第4のデータ項目がセル範囲5480、第5のデータ項目がセル範囲5500を有する。
セル範囲5420に属する唯一のセルにはインデクスとして0を付与する。セル範囲5440は縦方向に展開されている。したがって、1行目のセルにはインデクスとして0を付与し、2行目のセルには1を、3行目のセルには2を、4行目のセルには3を、5行目のセルには4を付与する。セル範囲5460は横方向に展開されている。したがって、1列目のセルにはインデクスとして0を付与し、2例目のセルには1を、3列目のセルには2を、4列目のセルには3を、5列目のセルには4を、6列目のセルには5を付与する。
セル範囲5480は、2次元状に展開されている。したがって、最上行の左端のセルへインデクスとして0を付与し、当該セルと同一行における右方向のセルに対して、左端セルからのセル移動量に応じて1ずつインクリメントされるインデクスを付与する。これによって、1行目のセルに対して、左から0,1,2,3,4,5のようにインデクスを付与する。1行目のすべてのセルへのインデクスの付与が完了すると、2行目の左端のセルに対し、1行目において最後に付与されたインデクスから1つインクリメントされたインデクスである6を付与する。そして、2行目の残りのセルに対しても、左端のセルから右側に移動するにしたがって、セル移動量に応じて1ずつインクリメントされるインデクスを付与する。これによって、2行目のセルに対して、左から6,7,8,9,10,11のようにインデクスを付与する。同様なインデクス付けを、残りの行のセルに対しても行うことによって、3行目のセルに対して左から12,13,14,15,16,17のようにインデクスを付与し、4行目のセルに対して左から18,19,20,21,22,23のようにインデクスを付与し、5行目のセルに対して左から24,25,26,27,28,29のようにインデクスを付与する。
セル範囲5500もセル範囲5480と同様に2次元状に展開されているので、セル範囲5480と同様にしてインデクスを付与する。
図24の左は、マトリクス型である複雑なデータ表5600のセルのおのおのについて、データ項目毎にインデクスを付与する例を示す図である。
図24の左に示すデータ表5600にも5つのデータ項目が含まれ、第1のデータ項目がセル範囲5620、第2のデータ項目がセル範囲5640、第3のデータ項目がセル範囲5660、第4のデータ項目がセル範囲5680、第5のデータ項目がセル範囲5700を有する。
セル範囲5620,5640に属する唯一のセルにはインデクスとして0を付与する。
セル範囲5660は、2列にまたがっており、しかも1列目の1行目と2行目との間にブランクのセルが存在する。これは、セル範囲5260と、セル範囲5300との組み合わせの一種として考えることできる。したがって、当業者であれば、セル範囲5660に対して、図24に示されるようにインデクスが付与されることを理解することができるであろう。
セル範囲5680は、2行にまたがっており、しかも2列目と3列目との間にブランクのセルが存在する。これは、セル範囲5660を90度回転させたパターンであると考えることができる。したがって、当業者であれば、図24に示されるようにインデクスが付与されることを理解することができるであろう。
セル範囲5700は、3列目と4列目との間にブランクの列があるものの、2次元状に展開されている。したがって、当業者であれば、図24に示されるようにインデクスが付与されることを理解することができるであろう。
次に、レコード構成決定部1110が、データ表に配置された各セルに書き込まれたデータをデータベースに格納するために、マッピング定義によって決定されているデータベースのテーブルのフィールドとデータ表の各データ項目の対応関係に基づき、適切なレコードのデータ構成を決定する。
例えば、図21の左のようなデータ表5000の場合、5つのセル範囲5020,5040,5060,5080,5100を有するので、格納されるデータが属するフィールドも5つとなる。

セル範囲5020は1つのセルしかないが、セル範囲5040,5060,5080,5100はそれぞれ5つのセルを有する。したがって、データ表5000に対応するデータベースのテーブル6000のレコードの構成は、図21の右に示すように、セル範囲5020に対応するフィールド6020(列1)、セル範囲5040に対応するフィールド6040(列2)、セル範囲5060に対応するフィールド6060(列3)、セル範囲5080に対応するフィールド6080(列4)、およびセル範囲5100に対応するフィールド6100(列5)で構成され、データベースのテーブル6000には5つのレコードが書き込まれる。

セル範囲5020については、データ表5000では、唯一のセルしか示されていないものの、セル範囲5020はすべてのセル範囲5040,5060,5080,5100に対して共通していることから、データベースのテーブル6000では、フィールド6020については、5つのレコードすべてに対してセル範囲5020に書かれている値を付与する。
この説明により、当業者であれば、図22の左に示すような複雑なテーブル型のデータ表5200に対するデータベースのテーブル6200では、図22の右に示すように、データ項目6220,6240,6260,6280,6300にインデクスが付与されることを理解することができるであろう。
図23の右に示すデータベースのテーブル6400は、図23の左のデータ表5400に対して作成されたものである。
図23の左のようなデータ表5400の場合、5つのセル範囲5420,5440,5460,5480,5500が存在するので、格納されるデータが属するデータ項目も5つとなる。これに従って、データベースのテーブル6400にも、列1〜5のように5つのフィールド6420,6440,6460,6480,6500が設けられる。
さらに、レコード構成決定部1110が、マッピング定義によって決定されているデータベースのテーブルのフィールドとデータ表の各データ項目の対応関係に基づき、適切なレコードのデータ構成を決定する。図23の左のデータ表5400の場合、セル範囲5480,5500に30のセルが含まれることから、レコード数は30となる。よって、図23の右に示すように、データベースのテーブル6400に書き込まれるレコードは、5列の30レコードとなる。

このようにして、図23の左に示すデータ表5400から、図23の右に示されるようにデータベースのテーブル6400に書き込むレコードのデータを作成する。
この説明により、当業者であれば、図24の左に示すような複雑なマトリクス型のデータ表5600に対するデータベース6600では、図24の右に示すように、フィールド6620,6640,6660,6680,6700にインデクスが付与されることを理解することができるであろう。
図25は、図23および図24のようなマトリクス型のデータ表の各セルに対して付与されたインデクスから、データベースのテーブルに書き込む各レコードの構成を決定する処理の具体的な一例を示すフローチャートである。
先ず、図18を用いて説明したステップS102において、(3)として振り分けられたセル範囲のうち、S108で抽出されたセル範囲のセル数をmとする(S200)。次に、同ステップS102において、(2)として振り分けられたセル範囲のうち、S106で抽出されたセル範囲のセル数をnとする(S202)。
行番号r=0とし(S204)、列番号c=0とする(S206)。
c+(n×r)となっているセル範囲のセルを取得し、この時のr,cのセルと合わせてレコードを作成する(S208)。
cを1つインクリメントし(S210)、c<nならば(S212:Yes)、ステップ208に戻って、レコード作成を繰り返す。
一方、ステップS212においてc≧nならば(S212:No)、rを1つインクリメントする(S214)。
その結果、r<mならば(S216:Yes)、同ステップS206に戻って、c=0とし、ステップS208〜S214を繰り返す。
一方、ステップS216においてr≧mならば(S216:No)レコード作成を終了する。
図26は、図25に示すフローチャートを用いて、データ表5800のセル範囲5820,5840,5860の各々にインデクスを付与するために行う処理を、具体例を用いて説明するための図である。
データ表5800は、ステップS200においてm=3となり、ステップS202においてn=2となり、ステップS204においてr=0となり、ステップS206においてc=0となり、ステップS208において0,0,0のレコードができる。データ表5800における実際のセルの値がデータ表5900の通りであるとすると、0,0,0のレコードの値は、A01,C10,100となる。ここで、A01はセル範囲5920に属し、C10はセル範囲5940に属し、100はセル範囲5960に属している。
以下、図26に示すように、0,1,1のレコードの値は、A01,C02,110となり、1,0,2のレコードの値は、A02,C01,200となり、1,1,3のレコードの値は、A02,C02,210となり、2,0,4のレコードの値は、A03,C01,300となり、2,0,5のレコードの値は、A03,C02,310となる。
本実施形態によれば、このようにして、データ表の構造に基づいてデータベースに書き込むレコードの構成を適切に自動的に決定するアウトマッピング処理を行うことが可能となる。
(インマッピング処理)
前述したように、データ表判定部1090によって、データ表のタイプが判定されると、インマッピング・インデクス付与部1120は、データ表のセルのおのおのについて、データ項目毎にインデクスを付与する。
図27、図28、図29、図30の左はそれぞれ、テーブル型のシンプルな形式のデータ表5000、テーブル型の複雑な形式のデータ表5200、マトリクス型のシンプルな形式のデータ表5400、マトリクス型の複雑な形式のデータ表5600に対してインデクスが付与された状態の例を示している。これらデータ表5000,5200,5400,5600については、図21、図22、図23、図24を用いて既に説明済みであるので、ここでは詳細な説明を省略する。
インマッピング・インデクス付与部1120はまた、データベースのテーブルに格納されている各レコードを取得した後、各レコードのデータおのおのに、引数指定がされているマッピング定義によってレコードを貼り付ける場合には下記(1)にしたがって、引数指定がされていないマッピング定義によってレコードを貼り付ける場合には下記(2)にしたがって、インデクスを付与する。
(1)マッピング定義の引数において、スプレッドシート上のデータ表のセルの値を参照することが指定されているフィールドの場合、データ表に付与されたインデクスと同じインデクス番号を付与される。マッピング定義の引数が固定値またはシステムのメニューの値が指定されているフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードのスプレッドシート上のデータ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与する。
(2)マッピング定義の引数の指定がない場合、データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する。
図27、図28、図29、図30の右はそれぞれ、データ表5000,5200,5400,5600に対応するデータベースのテーブル6000,6200,6400,6600を示している。データベースのテーブル6000,6200,6400,6600の各レコードには、データ表5000,5200,5400,5600における対応するセルと同じインデクスが付与されている。これらデータベースのテーブル6000,6200,6400,6600については、図21、図22、図23、図24を用いて既に説明済みであるので、ここでは詳細な説明を省略する。
次に、データ表作成部1130が、データベースにおいて各データ項目に属する各レコードに格納されているそれぞれのデータを、データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、データ表を作成する。ただし、同時に書き込むデータは、マッピング定義1200で定義されたグループ毎に行う。このため、データ表作成部1130は、図16や図17に示されるようなマッピング定義1200において定義されているグループ1240を確認する。グループ設定がない場合には、データ書込部1140が、データベースからデータ表へと、すべてのデータを同時に書き込む。
一方、第1のグループの引数にセル範囲が指定され、かつ第2のグループのインマッピングにその範囲が書き込み範囲として指定されている場合、データ作成部1130は、第1のグループの実行順序を1つ下げる。引数にセル範囲が指定され、かつ第1のグループのインマッピングにその範囲が書き込み範囲として指定されている第2のグループのデータを、引数として利用するために第1のグループよりも先にデータ表のセルに書き込む必要があるからである。
データ表作成部1130は、このような実行順序決定処理を繰り返すことにより、すべてのグループに対して、実行順序を決定する。実行順序を後にするか先にするかの判断をできないグループもあるが、その場合、任意の順序としてよい。このような順序決定は、タイプVIを行うための判定を自動で行っていることに相当する。そして、決定された実行順序にしたがって、データ書込部1140が、データテーブルからデータ表へのデータの書き込みを行う。このように決定された実行順序にしたがってインマッピング処理を行う一例である2段階インマッピングについて、図10および図9を用いて説明する。
図10は、2段階インマッピングの第1の類型を示している。ここでは、この第1の類型を通常パターンと称するものとする。図10に示すデータ表700およびデータベースのテーブル800,900の構造は、既に説明した通りである。
図10に一例を示す通常パターンの2段階インマッピングでは、会社マスタである第1のデータベースのテーブル900と、内部取引明細である第2のデータベースのテーブル800との両方からデータ表700にデータを書き込むように定義されている。
第1のデータベースのテーブル900は、フィールドとして会社コード910および会社名称920を規定しており、会社コード910および会社名称920に、それぞれデータ915,925が書き込まれている。
第2のデータベースのテーブル800は、フィールドとして年度610、期間620、自社コード660、相手コード670、科目コード630、金額640を規定しており、これら各々に対応するデータ615,625,665,675,635,645がレコードとして書き込まれている。
一方、データ表700において、第1のデータベースのテーブル900における会社コード910に対応する相手コード580に含まれるセル範囲585は、引数となるセル範囲であるので、先ずこのセル範囲585に、第1のデータベースのテーブル900の会社コード910に書き込まれているデータ915を書き込む。その後、第2のデータベースのテーブル800の金額640に書き込まれたデータ645から、データ表700のセル範囲535へのインマッピングが、セル範囲585に書き込まれたデータを引数としてなされる。
このように、金額640の引数にセル範囲585が指定され、金額640のインマッピングにセル範囲585が書き込み範囲として指定されている場合、データ表作成部1130は、金額640に書き込まれたデータ645から、セル範囲535へのインマッピング処理の実行順序を、会社コード910に書き込まれたデータ915から、セル範囲595へのインマッピング処理よりも1つ下げる。
このように、本類型では、第1のデータベースのテーブル900から会社コード910に書き込まれたデータ915を、データ表700のセル範囲585に書き込む1段階目のインマッピング(A345)と、第2のデータベースのテーブル800の金額640に書き込まれたデータ645を、データ表700のセル範囲535に書き込む2段階目のインマッピング(A350)とによって、インマッピング処理を行う。
なお、1段階目のインマッピングは、テーブル型の非検索型に、2段階目のインマッピングは、マトリクス型のインマッピングに相当する。
次に、図32を用いて、2段階インマッピングの第2の類型について説明する。図32に示すような第2の類型は、入力キー・パターンと称するものとする。
図32に一例を示す入力キー・パターンの2段階インマッピングでは、データベースのテーブル800からデータ表700にデータを書き込むように定義されている。図32に示すデータ表700およびデータベースのテーブル800の構造は、図9を用いて既に説明した通りである。
データ表700における相手コード580として、セル範囲585に、データベースのテーブル800の相手コード670に書き込まれているデータ675を書き込み、さらに、セル範囲585に書き込まれたデータ(相手コード)と、科目コード510に属するセル範囲515に書き込まれているデータとに応じて、セル範囲535の各セルに対応する金額を、データベースのテーブル800の金額640に書き込まれたデータ645から書き込むためには、1段階目として、データベースのテーブル800における相手コード670に書き込まれたデータ675を、データ表700における相手コード580のセル範囲585に書き込むインマッピング(A330)を行い、2段階目として、データベースのテーブル800における金額640に書き込まれたデータ645を、データ表700における対応するセル範囲535に書き込むインマッピング(A350)とを行う必要がある。
2段階目のインマッピングでは、セル範囲585に書き込まれたデータを引数として行う。そのため、1段階目のインマッピングにおいて、データ表700のセル範囲585に、データベースのテーブル800の相手コード670に書き込まれているデータ675を書き込む。
この場合、金額640の引数としてセル範囲585が指定され、セル範囲535へのインマッピングがなされるので、金額640に書き込まれたデータ645の、セル範囲535へのインマッピング処理の実行順序を、相手コード670に書き込まれたデータ675のセル範囲585へのインマッピング処理の実行順序よりも1つ下げる。ここで、1段階目のインマッピング(A330)はテーブル型かつ非検索型のインマッピングに、2段階目のインマッピング(A350)は、マトリクス型のインマッピングに該当する。
さらに、第2の類型に属する2段階インマッピングでは、1段階目のインマッピングと、2段階目のインマッピングとが、以下の3つの条件、すなわち、(1)実行順序が2番目以降とされたグループのインマッピングについて、データ表のタイプ判定において、マトリクス型と判定された場合、(2)引数に指定されている横方向のセル範囲、または縦方向のセル範囲が、他グループのインマッピングの書き込み範囲に指定されている場合、(3)次グループと同じデータベースからインマッピングする場合、を満たしている場合、1段階目のインマッピングについて、重複削除のインマッピングを行う。このような重複削除のインマッピングによってなされるデータの書き込みを、図31を用いて説明する。
図31は、重複削除のインマッピングを説明するために、図9におけるA330の処理が、相手コード670に書き込まれたデータ675を認識する処理A330−1と、重複が省かれたデータ677を得る処理A330−2と、データ677のデータ表700への書き込みを行う処理A330−3とを備えていることを示している。
すなわち、データベースのテーブル800に書き込まれたままの状態では、相手コード670に書き込まれたデータ675の中には、同じデータが何度も登場する(A330−1)。したがって、このままの状態でデータを書き込むと、ユーザが所望するデータ表700が得られない。したがって、データ677に示すように、相手コード670に含まれるデータ675から、重複するものを除く処理を行う(A330−2)。実際、相手コード670に書き込まれたデータ675の中には3種類のデータ、すなわち、「C2000」、「C3000」、および「C4000」しか存在しないので、重複するものが除かれた結果、データ677に示されるように、3つのデータに集約される。このように集約された3つのデータがデータ表700のセル範囲585に書き込まれる(A330−3)。
本実施形態によれば、このようにして、適切にインマッピング処理を行うようにしている。
上述したように、本願の実施形態に係るマッピング方法が適用されたマッピング装置によれば、アウトマッピング時に、セル範囲とテーブルのフィールド名の紐づけだけの情報から、表の形式を自動判定し、レコードを適切に自動で作成することができる。
また、データ表の型式がテーブル型であるかマトリクス型であるかに基づいて、アウトマッピング時におけるデータベースへ格納するレコードの作成方法や、インマッピング時におけるデータベースからデータ表へのデータの書き込み方法の判断を、プログラムが自動的に行うことができる。
さらには、複数のグループを含むインマッピング処理の場合であっても、どのグループからインマッピング処理を実施するのかを自動的に判断することができる。
以上のことから、ユーザは、データベースの構成を気にすることなく、データ表を直観的に自由に設計することが可能となる。
また、本願の実施形態に係るマッピング方法が適用されたマッピング装置によれば、データベースに書き込まれたデータを、データ表のセルに書き込むインマッピング処理を行う場合、データ項目とインデクスに基づいてデータの書き込みがなされる。
このような書き込み方式によって、データ表におけるセルの位置情報(行、列)に基づいてデータの書き込みを行う従来方式よりも、より高速にデータの書き込みを行うことが可能となる。
これによって、ユーザは、従来よりも短時間で、必要な情報をデータベースに収集したり、所望する目的に適した構成を有するデータ表を、より容易に作成することが可能となり、集計作業の効率化や、分析効率の向上を図ることが可能となる。
これらのことにより、ユーザの利便性の向上のみならず、データ収集効率および生産性の向上にも寄与することができ、もって、ユーザは、データの利活用により資源(時間・人)を投入することが可能となり、ビジネス等の業務をより分析的、効果的、かつ経済的に実施することが可能となる。
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
業務用ソフトウェアで、データを多数の人から集めるシステム。例えば連結会計システム。
100 テーブル
140 社員名
160 給与
200 テーブル
220 部門
240 部門名
260 所在地
300 テーブル
400 住所録テーブル
420 レコード
440 フィールド
500 データ表
510 科目コード
515 セル範囲
520 科目名称
525 セル範囲
530 金額
535 セル範囲
540 備考
545 セル範囲
550 年度
555 セル範囲
560 期間
565 セル範囲
570 自社
575 セル範囲
580 相手コード
585 セル範囲
595 セル範囲
598 セル範囲
600 データベースのテーブル
610 年度
615 データ
620 期間
625 データ
630 科目コード
635 データ
640 金額
645 データ
650 備考
655 データ
660 自社コード
665 データ
670 相手コード
675 データ
677 データ
700 データ表
800 データベースのテーブル
900 データベースのテーブル
910 会社コード
915 データ
920 会社名
925 データ
1000 マッピング装置
1020 入力部
1030 表示部
1040 全体制御部
1050 マッピング定義部
1060 メタ定義データ作成部
1070 アウトマッピング設定部
1080 インマッピング設定部
1090 データ表判定部
1100 アウトマッピング・インデクス付与部
1110 レコード構成決定部
1120 インマッピング・インデクス付与部
1130 データ表作成部
1140 データ書込部
1200 マッピング定義
1202 マッピング定義
1210 セル範囲名称
1215 データ
1220 セル範囲
1225 データ
1230 フィールド論理名称
1240 グループ
1250 引数設定
1255 設定内容
1300 メタ定義データ
1310 フィールド論理名称
1315 データ
1320 データ型
1330 データ長
1340 小数桁
1360 必須
2020 記憶装置
2040 メタ定義テーブル
2060 明細テーブル作成プロシージャ
2080 明細テーブル
2090 明細テーブル構成
2092 フィールド論理名称
2094 データ型
3100 テーブル選択ボタン
3120 引数設定画面
3122 年度
3123 設定
3124 期間
3125 設定
3126 科目コード
3127 設定
5000 データ表
5020 セル範囲
5040 セル範囲
5060 セル範囲
5080 セル範囲
5100 セル範囲
5200 データ表
5220 セル範囲
5240 セル範囲
5260 セル範囲
5280 セル範囲
5300 セル範囲
5400 データ表
5420 セル範囲
5440 セル範囲
5460 セル範囲
5480 セル範囲
5500 セル範囲
5600 データ表
5620 セル範囲
5640 セル範囲
5660 セル範囲
5680 セル範囲
5700 セル範囲
5800 データ表
5820 セル範囲
5840 セル範囲
5860 セル範囲
5900 データ表
5920 セル範囲
5940 セル範囲
5960 セル範囲
6000 データベースのテーブル
6020 データ項目
6040 データ項目
6060 データ項目
6080 データ項目
6100 データ項目
6200 データベースのテーブル
6220 フィールド
6240 フィールド
6260 フィールド
6280 フィールド
6300 フィールド
6400 データベース
6420 フィールド
6440 フィールド
6460 データ項目
6480 フィールド
6500 フィールド
6600 データベースのテーブル
6620 フィールド
6640 フィールド
6660 フィールド
6680 フィールド
6700 フィールド
本発明はこのような事情に鑑みてなされたものであり、その目的は、ユーザが表計算ソフトを用いて作成したデータ表内の各セルに対して、データ表のレイアウトを判定し、データベースから適切なデータを自動的に書き込むようにすることによって、ユーザの負担の軽減を図ることが可能なインマッピングのための装置、方法、プログラム、および記録媒体を提供することにある。
すなわち、請求項の発明は、表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのマッピング装置であって、第1のインデクス手段と、第2のインデクス手段と、データ作成手段とを備える。第1のインデクス手段は、同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成されるデータ表のセルのおのおのについて、データ項目毎にインデクスを付与する。第2のインデクス手段は、データベースのテーブルに格納されている各レコードをコピーした後、コピーされた各レコードを、各レコードのデータおのおのに、引数指定がされているマッピング定義に従ってペーストする場合には下記(1)にしたがって、引数指定がされていないマッピング定義に従ってペーストする場合には下記(2)にしたがって、インデクスを付与する。(1)マッピング定義の引数において、データ表のセルの値を参照することが指定されているフィールドの場合、第1のインデクス手段で付与されたインデクスと同じインデクス番号を付与され、マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードのデータ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与する。(2)マッピング定義の引数の指定がない場合、データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する。
請求項は、請求項に対応する方法であり、請求項15は、同記録媒体であり、請求項16は、同プログラムである。
請求項の発明は、請求項1記載のマッピング装置においてさらに、データ表のレイアウトに基づいて、データベースのテーブルの構成を定義するメタ定義データを作成するメタ定義データ作成手段を備えている。
請求項は、請求項に対応する方法である。
請求項の発明は、請求項に記載のマッピング装置において、データ作成手段によって決定された順序にしたがって、データ項目毎に、レコードからセルへのデータの書き込みを行うデータ書込手段をさらに備える
請求項10は、請求項に対応する方法である。
請求項の発明は、請求項に記載のマッピング装置において、最初にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、データ書込手段によって書き込まれたデータは、次にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、データ書込手段によって書き込まれるデータのための引数となる。
請求項11は、請求項に対応する方法である。
請求項の発明は、請求項1乃至のうち何れか1項に記載のマッピング装置に対してさらに、データ表が、複数のデータ項目に属するデータが書き込まれたセルを有する場合、データ表を、マトリクス型であると判定するタイプ判定手段を備える。そして、タイプ判定手段は、
(A)複数のセル範囲が、以下に示す(1)乃至(3)のうちの何れに属するのか否かを判定し、
(1)セルが複数配置されており、これら複数のセルが左右方向×上下方向からなる2次元状に配置されており、左右方向に配置されているセルの数が、上下方向に配置されているセルの数よりも多い場合、
(2)セルが複数配置されており、これら複数のセルが2次元状に配置されており、上下方向に配置されているセルの数が、左右方向に配置されているセルの数よりも多い場合、
(3)セルが複数配置されており、これら複数のセルが2次元状に配置されており、上下方向に配置されているセルの数と、左右方向に配置されているセルの数とが等しい場合、
(B)1または複数のセル範囲のうち、最も多くのセルが配置されているセル範囲を判定し、
(C)(B)において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、(1)の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
(D)(B)において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、(2)の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
(E)(C)において判定されたセル範囲に配置されているセルの数と、(D)において判定されたセル範囲に配置されているセルの数との積が、(B)において判定されたセル範囲に配置されているセルの数に等しく、(C)において判定されたセル範囲に配置されているセルの数と、(B)において判定されたセル範囲において左右方向に配置されているセルの数とが等しく、(D)において判定されたセル範囲に配置されているセルの数と、(B)において判定されたセル範囲において上下方向に配置されているセルの数とが等しい場合、データ表のタイプがマトリクス型であると判定し、それ以外の場合、テーブル型であると判定する。
請求項12は、請求項に対応する方法である。
請求項の発明は、請求項1乃至のうち何れか1項に記載のマッピング装置において、第1のインデクス手段は、複数のセル範囲のおのおのについて、最上行の左端のセルへインデクスとして0を付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからのセル移動量に応じて1ずつインクリメントされるインデクスを付与し、当該行のすべてのセルへのインデクスの付与が完了すると、次の行の左端のセルに対し、前の行において最後に付与されたインデクスから1つインクリメントされたインデクスを付与し、当該セルと同一行における右方向のセルに対して、当該セルからの移動量に応じて1ずつインクリメントされるインデクスを付与するという規則にしたがって、データ表のセルのおのおのについて、データ項目毎にインデクスを付与する。
請求項13は、請求項に対応する方法である。
請求項の発明は、請求項1乃至のうち何れか1項に記載のマッピング装置においてさらに、データ表に含まれている複数のセル範囲を定義するためのセル範囲定義手段であって、データ表において、複数のセル範囲を含む領域がユーザによって指定されると、この指定された領域を、行単位または列単位で分割することによって、複数のセル範囲から、各セル範囲を定義するようにしたセル範囲定義手段を備える。
請求項14は、請求項に対応する方法である。
インマッピング・インデクス付与部1120はまた、データベースのテーブルに格納されている各レコードをコピーした後、コピーされた各レコードを、各レコードのデータおのおのに、引数指定がされているマッピング定義に従ってペーストする場合には下記(1)にしたがって、引数指定がされていないマッピング定義に従ってペーストする場合には下記(2)にしたがって、インデクスを付与する。

Claims (20)

  1. スプレッドシート上に表示されているデータ表から、データベースのテーブルに書き込むレコードを作成するためのマッピング装置であって、
    同一のデータ項目に属する各データがそれぞれ書き込まれた複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する第1のインデクス手段と、
    前記データ表に配置された各セルに書き込まれたデータを格納するために、前記レコードの構成を決定するレコード構成決定手段と、
    前記データ表において各データ項目に属する各セルに書き込まれているそれぞれのデータを、同一のインデクスを付与された値、またはすべてのレコードに同じ値を適用するデータ項目の場合にはその値を利用して、前記レコードを構成し、定義されたマッピング定義によって決定されている前記データベースのテーブルのフィールドと前記データ表の各データ項目の対応関係に基づき、前記データベースのテーブルにレコードを書き込むレコード作成手段と、
    を備えるマッピング装置。
  2. 表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、前記データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのマッピング装置であって、
    同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する第1のインデクス手段と、
    前記データベースのテーブルに格納されている各レコードを取得した後、各レコードのデータおのおのに、引数指定がされているマッピング定義によってレコードを貼り付ける場合には下記(1)にしたがって、前記引数指定がされていないマッピング定義によってレコードを貼り付ける場合には下記(2)にしたがって、インデクスを付与する第2のインデクス手段であって、(1)前記マッピング定義の引数において、前記データ表のセルの値を参照することが指定されているフィールドの場合、前記第1のインデクス手段で付与されたインデクスと同じインデクス番号を付与され、前記マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードの前記データ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与し、(2)前記マッピング定義の引数の指定がない場合、前記データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する、第2のインデクス手段と、
    前記データベースのテーブルに格納されている各レコードのそれぞれのデータを、定義されたマッピング定義によって決定されている前記テーブルのフィールドと前記データ表の各データ項目との対応関係に基づき、前記データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、前記データ表を作成するデータ作成手段と、
    を備えるマッピング装置。
  3. 前記データ表のレイアウトに基づいて、前記データベースのテーブルの構成を定義するメタ定義データを作成するメタ定義データ作成手段、をさらに備えた請求項1または2に記載のマッピング装置。
  4. 前記データ作成手段は、決定された順序にしたがって、データ項目毎に、レコードからセルへのデータの書き込みを行うようにした、請求項2に記載のマッピング装置。
  5. 最初にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、前記データ作成手段によって書き込まれたデータは、次にデータの書き込みを行うと決定されたデータ項目に属するセルに対して、前記データ作成手段によって書き込まれるデータのための引数となる、請求項4に記載のマッピング装置。
  6. 前記データ表が、複数のデータ項目に属するデータが書き込まれたセルを有する場合、前記データ表を、マトリクス型であると判定するタイプ判定手段をさらに備え、
    前記タイプ判定手段は、
    (A)前記複数のセル範囲が、以下に示す(1)乃至(3)のうちの何れに属するのか否かを判定し、
    (1)セルが複数配置されており、これら複数のセルが左右方向×上下方向からなる2次元状に配置されており、前記左右方向に配置されているセルの数が、前記上下方向に配置されているセルの数よりも多い場合、
    (2)セルが複数配置されており、これら複数のセルが前記2次元状に配置されており、前記上下方向に配置されているセルの数が、前記左右方向に配置されているセルの数よりも多い場合、
    (3)セルが複数配置されており、これら複数のセルが前記2次元状に配置されており、前記上下方向に配置されているセルの数と、前記左右方向に配置されているセルの数とが等しい場合、
    (B)前記1または複数のセル範囲のうち、最も多くのセルが配置されているセル範囲を判定し、
    (C)前記(B)において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、前記(1)の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
    (D)前記(B)において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、前記(2)の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
    (E)前記(C)において判定されたセル範囲に配置されているセルの数と、前記(D)において判定されたセル範囲に配置されているセルの数との積が、前記(B)において判定されたセル範囲に配置されているセルの数に等しく、前記(C)において判定されたセル範囲に配置されているセルの数と、前記(B)において判定されたセル範囲において前記左右方向に配置されているセルの数とが等しく、前記(D)において判定されたセル範囲に配置されているセルの数と、前記(B)において判定されたセル範囲において前記上下方向に配置されているセルの数とが等しい場合、前記データ表のタイプが前記マトリクス型であると判定し、それ以外の場合、テーブル型であると判定する、請求項1乃至5のうち何れか1項に記載のマッピング装置。
  7. 前記第1のインデクス手段は、複数のセル範囲のおのおのについて、最上行の左端のセルへインデクスとして0を付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからのセル移動量に応じて1ずつインクリメントされるインデクスを付与し、当該行のすべてのセルへのインデクスの付与が完了すると、次の行の左端のセルに対し、前の行において最後に付与されたインデクスから1つインクリメントされたインデクスを付与し、当該セルと同一行における右方向のセルに対して、当該セルからの移動量に応じて1ずつインクリメントされるインデクスを付与するという規則にしたがって、前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する、請求項1乃至6のうち何れか1項に記載のマッピング装置。
  8. 前記データ表に含まれている複数のセル範囲を定義するためのセル範囲定義手段であって、前記データ表において、複数のセル範囲を含む領域がユーザによって指定されると、この指定された領域を、行単位または列単位で分割することによって、前記複数のセル範囲から、各セル範囲を定義するようにしたセル範囲定義手段、をさらに備える請求項1乃至7のうち何れか1項に記載のマッピング装置。
  9. スプレッドシート上に表示されているデータ表から、データベースのテーブルに書き込むレコードを作成するためのマッピング方法であって、
    同一のデータ項目に属する各データがそれぞれ書き込まれた複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与することと、
    前記データ表に配置された各セルに書き込まれたデータを格納するために、前記レコードの構成を決定することと、
    前記データ表において各データ項目に属する各セルに書き込まれているそれぞれのデータを、同一のインデクスを付与された値、またはすべてのレコードに同じ値を適用するデータ項目の場合にはその値を利用して、前記レコードを構成し、定義されたマッピング定義によって決定されている前記データベースのテーブルのフィールドと前記データ表の各データ項目の対応関係に基づき、前記データベースのテーブルにレコードを書き込むことと、
    を備えるマッピング方法。
  10. 表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、前記データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのマッピング方法であって、
    同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与することと、
    前記データベースのテーブルに格納されている各レコードを取得した後、各レコードのデータおのおのに、引数指定がされているマッピング定義によってレコードを貼り付ける場合には下記(1)にしたがって、前記引数指定がされていないマッピング定義によってレコードを貼り付ける場合には下記(2)にしたがって、インデクスを付与することであって、(1)前記マッピング定義の引数において、前記データ表のセルの値を参照することが指定されているフィールドの場合、前記第1のインデクス手段で付与されたインデクスと同じインデクス番号を付与され、前記マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードの前記データ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与し、(2)前記マッピング定義の引数の指定がない場合、前記データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与することと、
    前記データベースのテーブルに格納されている各レコードのそれぞれのデータを、定義されたマッピング定義によって決定されている前記テーブルのフィールドと前記データ表の各データ項目との対応関係に基づき、前記データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、前記データ表を作成することと、
    を備えるマッピング方法。
  11. 前記データ表のレイアウトに基づいて、前記データベースのテーブルの構成を定義するメタ定義データを作成することをさらに備えた、請求項9または10に記載のマッピング方法。
  12. 前記データ表の作成は、決定された順序にしたがって、データ項目毎に、レコードからセルへのデータの書き込みを行うことによってなされる、請求項10に記載のマッピング方法。
  13. 最初にデータの書き込みを行うと決定されたデータ項目に属するセルに対して書き込まれたデータは、次にデータの書き込みを行うと決定されたデータ項目に属するセルに対して書き込まれるデータのための引数となる、請求項12に記載のマッピング方法。
  14. 前記データ表が、複数のデータ項目に属するデータが書き込まれたセルを有する場合、前記データ表を、マトリクス型であると判定することをさらに備え、
    前記判定することは、
    (A)前記複数のセル範囲が、以下に示す(1)乃至(3)のうちの何れに属するのか否かを判定し、
    (1)セルが複数配置されており、これら複数のセルが左右方向×上下方向からなる2次元状に配置されており、前記左右方向に配置されているセルの数が、前記上下方向に配置されているセルの数よりも多い場合、
    (2)セルが複数配置されており、これら複数のセルが前記2次元状に配置されており、前記上下方向に配置されているセルの数が、前記左右方向に配置されているセルの数よりも多い場合、
    (3)セルが複数配置されており、これら複数のセルが前記2次元状に配置されており、前記上下方向に配置されているセルの数と、前記左右方向に配置されているセルの数とが等しい場合、
    (B)前記1または複数のセル範囲のうち、最も多くのセルが配置されているセル範囲を判定し、
    (C)前記(B)において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、前記(1)の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
    (D)前記(B)において、最も多くのセルが配置されていると判定されたセル範囲以外のセル範囲のうち、前記(2)の場合に属するセル範囲のうち、最も少ないセルが配置されているセル範囲を判定し、
    (E)前記(C)において判定されたセル範囲に配置されているセルの数と、前記(D)において判定されたセル範囲に配置されているセルの数との積が、前記(B)において判定されたセル範囲に配置されているセルの数に等しく、前記(C)において判定されたセル範囲に配置されているセルの数と、前記(B)において判定されたセル範囲において前記左右方向に配置されているセルの数とが等しく、前記(D)において判定されたセル範囲に配置されているセルの数と、前記(B)において判定されたセル範囲において前記上下方向に配置されているセルの数とが等しい場合、前記データ表のタイプが前記マトリクス型であると判定し、それ以外の場合、テーブル型であると判定する、請求項9乃至13のうち何れか1項に記載のマッピング方法。
  15. 前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与することは、複数のセル範囲のおのおのについて、最上行の左端のセルへインデクスとして0を付与し、当該セルと同一行における右方向のセルに対して、当該左端のセルからのセル移動量に応じて1ずつインクリメントされるインデクスを付与し、当該行のすべてのセルへのインデクスの付与が完了すると、次の行の左端のセルに対し、前の行において最後に付与されたインデクスから1つインクリメントされたインデクスを付与し、当該セルと同一行における右方向のセルに対して、当該セルからの移動量に応じて1ずつインクリメントされるインデクスを付与するという規則にしたがって、前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する、請求項9乃至14のうち何れか1項に記載のマッピング方法。
  16. 前記データ表に含まれている複数のセル範囲を定義することであって、前記データ表において、複数のセル範囲を含む領域がユーザによって指定されると、この指定された領域を、行単位または列単位で分割することによって、前記複数のセル範囲から、各セル範囲を定義すること、をさらに備える請求項9乃至15のうち何れか1項に記載のマッピング方法。
  17. スプレッドシート上に表示されているデータ表から、データベースのテーブルに書き込むレコードを作成するためのプログラムを記録したコンピュータ読取可能な記録媒体であって、コンピュータに、
    同一のデータ項目に属する各データがそれぞれ書き込まれた複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する機能と、
    前記データ表に配置された各セルに書き込まれたデータを格納するために、前記レコードの構成を決定する機能と、
    前記データ表において各データ項目に属する各セルに書き込まれているそれぞれのデータを、同一のインデクスを付与された値、またはすべてのレコードに同じ値を適用するデータ項目の場合にはその値を利用して、前記レコードを構成し、定義されたマッピング定義によって決定されている前記データベースのテーブルのフィールドと前記データ表の各データ項目の対応関係に基づき、前記データベースのテーブルにレコードを書き込む機能と、
    を実現させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
  18. 表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、前記データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのプログラムを記録したコンピュータ読取可能な記録媒体であって、コンピュータに、
    同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する機能と、
    前記データベースのテーブルに格納されている各レコードを取得した後、各レコードのデータおのおのに、引数指定がされているマッピング定義によってレコードを貼り付ける場合には下記(1)にしたがって、前記引数指定がされていないマッピング定義によってレコードを貼り付ける場合には下記(2)にしたがって、インデクスを付与する機能であって、(1)前記マッピング定義の引数において、前記データ表のセルの値を参照することが指定されているフィールドの場合、前記第1のインデクス手段で付与されたインデクスと同じインデクス番号を付与され、前記マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードの前記データ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与し、(2)前記マッピング定義の引数の指定がない場合、前記データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する、機能と、
    前記データベースのテーブルに格納されている各レコードのそれぞれのデータを、定義されたマッピング定義によって決定されている前記テーブルのフィールドと前記データ表の各データ項目との対応関係に基づき、前記データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、前記データ表を作成する機能と
    を実現させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
  19. スプレッドシート上に表示されているデータ表から、データベースのテーブルに書き込むレコードを作成ためのプログラムであって、コンピュータに、
    同一のデータ項目に属する各データがそれぞれ書き込まれた複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する機能と、
    前記データ表に配置された各セルに書き込まれたデータを格納するために、前記レコードの構成を決定する機能と、
    前記データ表において各データ項目に属する各セルに書き込まれているそれぞれのデータを、同一のインデクスを付与された値、またはすべてのレコードに同じ値を適用するデータ項目の場合にはその値を利用して、前記レコードを構成し、定義されたマッピング定義によって決定されている前記データベースのテーブルのフィールドと前記データ表の各データ項目の対応関係に基づき、前記データベースのテーブルにレコードを書き込む機能と、
    を実現させるためのプログラム。
  20. 表形式のデータベースに格納されている各レコードのそれぞれのフィールドのデータを、前記データベースのテーブルの各フィールドに対応するスプレッドシート上のデータ表におけるデータ項目に属するセルに書き込むためのプログラムであって、コンピュータに、
    同一のデータ項目に属する各データがそれぞれ書き込まれる複数のセルを含んでなるセル範囲を、複数配置して構成される前記データ表のセルのおのおのについて、前記データ項目毎にインデクスを付与する機能と、
    前記データベースのテーブルに格納されている各レコードを取得した後、各レコードのデータおのおのに、引数指定がされているマッピング定義によってレコードを貼り付ける場合には下記(1)にしたがって、前記引数指定がされていないマッピング定義によってレコードを貼り付ける場合には下記(2)にしたがって、インデクスを付与する機能であって、(1)前記マッピング定義の引数において、前記データ表のセルの値を参照することが指定されているフィールドの場合、前記第1のインデクス手段で付与されたインデクスと同じインデクス番号を付与され、前記マッピング定義の引数が、固定値または指定された値であるフィールドのデータ及び引数の指定がされていないフィールドのデータは、同じレコードの前記データ表のセルの値を参照することが指定されているフィールドと同じインデクス番号を付与し、(2)前記マッピング定義の引数の指定がない場合、前記データベースのテーブルから取得したレコードを取得した順番に各フィールドにインデクスを付与する、機能と、
    前記データベースのテーブルに格納されている各レコードのそれぞれのデータを、定義されたマッピング定義によって決定されている前記テーブルのフィールドと前記データ表の各データ項目との対応関係に基づき、前記データ表における対応するデータ項目が有するセルのうち、当該レコードと同一のインデクスを付与されたセルに書き込むことによって、前記データ表を作成する機能と
    を実現させるプログラム。
JP2015103110A 2015-05-20 2015-05-20 マッピングのための装置、方法、プログラム、および記録媒体 Active JP6037577B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015103110A JP6037577B1 (ja) 2015-05-20 2015-05-20 マッピングのための装置、方法、プログラム、および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015103110A JP6037577B1 (ja) 2015-05-20 2015-05-20 マッピングのための装置、方法、プログラム、および記録媒体

Publications (2)

Publication Number Publication Date
JP6037577B1 JP6037577B1 (ja) 2016-12-07
JP2016218747A true JP2016218747A (ja) 2016-12-22

Family

ID=57483187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015103110A Active JP6037577B1 (ja) 2015-05-20 2015-05-20 マッピングのための装置、方法、プログラム、および記録媒体

Country Status (1)

Country Link
JP (1) JP6037577B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020190849A (ja) * 2019-05-20 2020-11-26 株式会社DSi データ連携システム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10269304A (ja) * 1997-03-28 1998-10-09 Matsushita Electric Ind Co Ltd 文書管理情報作成方法、文書管理情報記録媒体、文書情報管理方法、文書情報管理装置、及び文書情報管理プログラム記録媒体
JP2005038404A (ja) * 2003-07-03 2005-02-10 Information Services International Dentsu Ltd データマッピング装置、データマッピング方法、およびプログラム
JP2005251136A (ja) * 2004-03-08 2005-09-15 Nec Corp 自動データマッピング装置、自動データマッピングシステムおよび自動データマッピングプログラム
JP2012173983A (ja) * 2011-02-22 2012-09-10 Apsto Web:Kk 業務アプリケーション構成装置
JP2014164548A (ja) * 2013-02-26 2014-09-08 Mitsubishi Electric Corp 情報処理システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10269304A (ja) * 1997-03-28 1998-10-09 Matsushita Electric Ind Co Ltd 文書管理情報作成方法、文書管理情報記録媒体、文書情報管理方法、文書情報管理装置、及び文書情報管理プログラム記録媒体
JP2005038404A (ja) * 2003-07-03 2005-02-10 Information Services International Dentsu Ltd データマッピング装置、データマッピング方法、およびプログラム
JP2005251136A (ja) * 2004-03-08 2005-09-15 Nec Corp 自動データマッピング装置、自動データマッピングシステムおよび自動データマッピングプログラム
JP2012173983A (ja) * 2011-02-22 2012-09-10 Apsto Web:Kk 業務アプリケーション構成装置
JP2014164548A (ja) * 2013-02-26 2014-09-08 Mitsubishi Electric Corp 情報処理システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020190849A (ja) * 2019-05-20 2020-11-26 株式会社DSi データ連携システム
JP7284958B2 (ja) 2019-05-20 2023-06-01 株式会社DSi データ連携システム

Also Published As

Publication number Publication date
JP6037577B1 (ja) 2016-12-07

Similar Documents

Publication Publication Date Title
JP7179981B2 (ja) 選択したデータソースのオブジェクトモデルに従ったデータ視覚化の生成
CN111542813B (zh) 使用异构数据的对象模型来便于建立数据可视化
US20220092059A1 (en) Dynamically materialized views for sheets based data
CN107111639B (zh) 构建报表
CN107622103B (zh) 管理数据查询
US11086894B1 (en) Dynamically updated data sheets using row links
JP2019194881A (ja) データ検索装置、プログラム、及び記録媒体
US9436672B2 (en) Representing and manipulating hierarchical data
CN102521417B (zh) 一种基于虚拟数据立方体的多维数据处理方法及其系统
CN102541867A (zh) 数据字典生成方法及系统
US11068131B1 (en) Integrated drill down within a natural language interface for a data analysis platform
JP6132698B2 (ja) 表形式多次元データ変換方法及び装置
CN106570047A (zh) 智能管理系统生成系统Hxcel技术方法
JP7116744B2 (ja) テキスト情報を表示する方法および装置
CN112100200A (zh) 一种基于维度模型自动化生成sql语句的方法
JP6623754B2 (ja) 表形式データ処理プログラム、方法及び装置
US10552423B2 (en) Semantic tagging of nodes
US20220237381A1 (en) Visually Correlating Individual Terms in Natural Language Input to Respective Structured Phrases Representing the Natural Language Input
CN110674195A (zh) 一种基于表单的查询方法
JP6037577B1 (ja) マッピングのための装置、方法、プログラム、および記録媒体
CN114661704B (zh) 数据资源全生命周期管理方法、系统、终端及介质
JP5916974B1 (ja) データ検索装置、プログラム、及び記録媒体
CN115658748A (zh) 支持图形点击交互界面的专利检索方法及装置
CN117033438A (zh) 一种基于动态属性的主子表的数据显示方法、装置及设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161031

R150 Certificate of patent or registration of utility model

Ref document number: 6037577

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250