(57)【要約】【課題】データベースの性能を劣化させずに、給与データの計算を効率よく行う。【解決手段】給与データ計算装置は、算出ルール記憶部、横明細記憶部、縦明細記憶部、記録先決定部を有する。算出ルール記憶部は、給与データの算出値および算出値の算出過程で算出される中間値を算出するための算出ルールを給与データごとに記憶する。横明細記憶部は、従業員ごとかつ年月ごとの各給与データの算出値および算出値に対応する中間値を、横明細テーブルの１レコードの横方向のフィールドに記録する。縦明細記憶部は、各給与データの算出値および算出値に対応する中間値を縦明細テーブルの縦方向の複数レコードに分けて記録する。記録先決定部は、算出ルールをもとに算出される給与データの算出値の数および算出値に対応する中間値の数の少なくともいずれかに応じて算出値および中間値を横明細記憶部および縦明細記憶部のいずれか一方または両方に記録すると決定する。【選択図】図１
2019012367.tif 000002
【特許請求の範囲】
【請求項１】
給与データの算出値、および、該算出値の算出過程で算出される中間値を算出するための算出ルールを給与データごとに記憶する算出ルール記憶部と、
従業員ごとかつ年月ごとの各給与データの算出値および該算出値に対応する中間値を、横明細テーブルの１レコードの横方向のフィールドに記録する横明細記憶部と、
前記各給与データの算出値および該算出値に対応する中間値を、縦明細テーブルの縦方向の複数レコードに分けて記録する縦明細記憶部と、
前記算出ルールをもとに算出される給与データの算出値の数および該算出値に対応する中間値の数の少なくともいずれかに応じて、該算出値および該中間値を前記横明細記憶部および前記縦明細記憶部のいずれか一方または両方に記録すると決定する記録先決定部と
を備えたことを特徴とする給与データ計算装置。
【請求項２】
前記記録先決定部は、
前記横明細テーブルの１レコードにおいて値の記録先として未決定のフィールドの残数が前記算出値の数および前記中間値の数の合計以上である場合には、前記算出値および前記中間値の記録先を前記横明細記憶部と決定し、
前記フィールドの残数が０となった場合には、前記算出値および前記中間値の記録先を前記縦明細記憶部と決定する
ことを特徴とする請求項１に記載の給与データ計算装置。
【請求項３】
前記記録先決定部は、
前記フィールドの残数が前記算出値の数および前記中間値の数の合計未満となった場合には、前記算出値の記録先を前記横明細記憶部と決定し、前記中間値の記録先を前記縦明細記憶部と決定する
ことを特徴とする請求項２に記載の給与データ計算装置。
【請求項４】
前記記録先決定部は、
前記横明細テーブルの１レコードにおいて値の記録先として未決定のフィールドの残数が０より大である場合には、前記算出値の記録先を前記横明細記憶部と決定し、前記中間値の記録先を前記縦明細記憶部と決定し、
前記フィールドの残数が０となった場合には、前記算出値および前記中間値の記録先を前記縦明細記憶部と決定する
ことを特徴とする請求項１に記載の給与データ計算装置。
【請求項５】
前記記録先決定部は、
前記横明細テーブルの１レコードにおいて値の記録先として未決定のフィールドの残数が前記中間値の数以上である場合には、前記中間値の記録先を前記横明細記憶部と決定し、前記算出値の記録先を前記縦明細記憶部と決定し、
前記フィールドの残数が０となった場合には、前記算出値および前記中間値の記録先を前記縦明細記憶部と決定する
ことを特徴とする請求項１に記載の給与データ計算装置。
【請求項６】
前記記録先決定部は、
前記フィールドの残数が前記中間値の数未満となった場合には、前記中間値のうち該残数分の中間値の記録先を前記横明細記憶部と決定し、該残数の超過分の中間値および前記算出値の記録先を前記縦明細記憶部と決定する
ことを特徴とする請求項５に記載の給与データ計算装置。
【請求項７】
前記記録先決定部は、
前記横明細テーブルの１レコードにおいて値の記録先として未決定のフィールドの残数が前記算出値の数および前記中間値の数の合計以上である場合には、前記算出値および前記中間値の記録先を前記横明細記憶部と決定し、
前記フィールドの残数が０となった場合には、前記横明細記憶部に記録されている前記中間値の記録先を前記縦明細記憶部へ変更後、新たな前記算出値の記録先を前記横明細記憶部と決定する
ことを特徴とする請求項１に記載の給与データ計算装置。
【請求項８】
コンピュータに、
給与データの算出値、および、該算出値の算出過程で算出される中間値を算出するための算出ルールをもとに、従業員ごとかつ年月ごとの各給与データの算出値の数および該算出値に対応する中間値の数の少なくともいずれかを算出し、
算出した前記算出値の数および前記中間値の数の少なくともいずれかに応じて、従業員ごとかつ年月ごとの各給与データの算出値および該算出値に対応する中間値を横明細テーブルの１レコードの横方向のフィールドに記録する横明細記憶部、および、前記各給与データの算出値および中間値を縦明細テーブルの縦方向の複数レコードに分けて記録する縦明細記憶部のいずれか一方または両方に記録すると決定する
各処理を実行させるための給与データ計算プログラム。
【請求項９】
コンピュータが、
給与データの算出値、および、該算出値の算出過程で算出される中間値を算出するための算出ルールをもとに、従業員ごとかつ年月ごとの各給与データの算出値の数および該算出値に対応する中間値の数の少なくともいずれかを算出し、
算出した前記算出値の数および前記中間値の数の少なくともいずれかに応じて、従業員ごとかつ年月ごとの各給与データの算出値および該算出値に対応する中間値を横明細テーブルの１レコードの横方向のフィールドに記録する横明細記憶部、および、前記各給与データの算出値および中間値を縦明細テーブルの縦方向の複数レコードに分けて記録する縦明細記憶部のいずれか一方または両方に記録すると決定する
各処理を実行することを特徴とする給与データ計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、給与データ計算装置、給与データ計算プログラム、給与データ計算方法に関する。
【背景技術】
【０００２】
従来より、企業等では、給与アプリケーションを用いて、従業員に支給する給与の給与データを、算出基礎データに基づいて算出することが一般的である。給与データは、給与の各給与項目の金額であり、例えば、総支給額、基本給額、職能給額、諸手当額がある。また、算出基礎データは、例えば、職種、等級、各種手当、勤怠がある。一般的に、給与アプリケーションでは、企業ごとに異なる給与データの算出方法に柔軟に対応できるように、給与データや給与データの算出式を任意に定義することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−０７１６４３号公報
【特許文献２】特開２０１４−１５３７５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述の従来技術では、給与アプリケーションにおいて、例えばリレーショナルデータベース（Relational  Database、以下、ＲＤＢという）を用いてデータ管理が行われる。例えば、給与データは、従業員ごと月度ごとに算出される。また、例えば、月度を遡って等級変更等の算出基礎データの変更が行われた場合には、給与データも月度を遡って再計算される。そのため、給与データだけでなく、給与データの算出過程の中間データも記録しておく。さらに、給与支給日前の決められた締め日までに金融機関に対して給与の振込み依頼を行うため、決められた期日までに給与データの算出を完了しておく。そのために、給与データおよび中間データの算出および記録を効率的に行うことが求められる。
【０００５】
例えば、従業員数が多く、給与データの算出式が複雑な場合であっても、ＲＤＢを効率的に用いて給与データおよび中間データの算出および記録を行うためには、給与データは、従業員ごと月度ごとにテーブルの１レコードに記録されることが望ましい。また、給与データだけでなく、中間データ、および給与データの算出式もテーブルの１レコードに記録することで、より効率的に給与データ等の算出および記録を行うことができる。
【０００６】
しかし、給与アプリケーションの仕様やＲＤＢの特性上、テーブルの１レコードに記録可能な項目数には上限がある。そのため、給与計算に関する記録対象データが多数あると、テーブルの１レコードに記録可能な項目数の上限を超過し、全ての記録対象データを記録し切れない場合がある。
【０００７】
このような問題を解決するために、従業員ごと月度ごとに記録対象データをテーブルの１レコードに記録するのではなく、記録対象データごとにテーブルの複数レコードに分けて記録することが考えられる。しかし、ＲＤＢの特性上、記録対象データをテーブルの複数レコードに分けて記録すると、データベースの性能が劣化し、給与データ算出の処理が遅延するおそれがある。
【０００８】
本願の一実施形態は、上記に鑑みてなされたものであって、データベースの性能を劣化させずに、給与データの計算を効率よく行うことができる給与データ計算装置、給与データ計算プログラム、給与データ計算方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の一実施形態では、給与データ計算装置は、給与データの算出値、および、該算出値の算出過程で算出される中間値を算出するための算出ルールを給与データごとに記憶する算出ルール記憶部と、従業員ごとかつ年月ごとの各給与データの算出値および該算出値に対応する中間値を、横明細テーブルの１レコードの横方向のフィールドに記録する横明細記憶部と、前記各給与データの算出値および該算出値に対応する中間値を、縦明細テーブルの縦方向の複数レコードに分けて記録する縦明細記憶部と、前記算出ルールをもとに算出される給与データの算出値の数および該算出値に対応する中間値の数の少なくともいずれかに応じて、該算出値および該中間値を前記横明細記憶部および前記縦明細記憶部のいずれか一方または両方に記録すると決定する記録先決定部とを備えたことを特徴とする。
【発明の効果】
【００１０】
本願の一実施形態によれば、データベースの性能を劣化させずに、給与データの計算を効率よく行うことができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、給与データ計算装置の一例を示す図である。
【図２】図２は、月例給与項目マスタテーブルの一例を示す図である。
【図３】図３は、月例給与支給データテーブルの一例を示す図である。
【図４】図４は、従業員マスタテーブルの一例を示す図である。
【図５】図５は、従業員勤怠データテーブルの一例を示す図である。
【図６】図６は、給与体系マスタテーブルの一例を示す図である。
【図７】図７は、役職手当マスタテーブルの一例を示す図である。
【図８】図８は、家族手当マスタテーブルの一例を示す図である。
【図９】図９は、算出式マスタテーブルの一例を示す図である。
【図１０】図１０は、横明細データテーブルの一例を示す図である。
【図１１】図１１は、縦明細データテーブルの一例を示す図である。
【図１２】図１２は、縦横記録先データテーブルの一例を示す図である。
【図１３】図１３は、給与項目記録処理の一例を示すフローチャートである。
【図１４】図１４は、算出値（中間値）算出処理のサブルーチンの一例を示すフローチャートである。
【図１５】図１５は、実施例１にかかる縦横記録先決定処理の一例を示すフローチャートである。
【図１６】図１６は、実施例２にかかる縦横記録先決定処理の一例を示すフローチャートである。
【図１７】図１７は、実施例３にかかる縦横記録先決定処理の一例を示すフローチャートである。
【図１８】図１８は、実施例４にかかる縦横記録先決定処理の一例を示すフローチャートである。
【図１９】図１９は、給与データ計算プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示技術にかかる給与データ計算装置、給与データ計算プログラム、給与データ計算方法の実施形態を図面に基づいて詳細に説明する。開示技術にかかる給与データ計算装置等は、企業等において、従業員に対して支給される給与の給与データおよび給与データの算出過程の中間データを、予め定められた算出式および計算順序に従って計算する。そして、給与データ計算装置等は、テーブルの１レコードに、もしくはテーブルのレコードごとに記録する。以下では、給与データは算出値であり、中間データは中間値である。
【００１３】
なお、以下の実施形態により本発明が限定されるものではない。例えば、以下の実施形態では、月度単位の給与の計算例を示すが、月度に限られず、任意の所定期間を単位とする給与であってもよい。また、以下の実施形態における実施例および変形例は、処理内容が矛盾しない範囲で適宜組合せることができる。
【００１４】
図１は、給与データ計算装置の一例を示す図である。給与データ計算装置１００は、サーバ装置等のコンピュータである。なお、給与データ計算装置１００は、オンプレミスのサーバに実装されてもよいし、データセンタに設置され、ネットワークを介してＳａａＳ（Software  as  a  Service）として給与データ計算サービスを提供するクラウドサーバに実装されてもよい。
【００１５】
給与データ計算装置１００は、記憶部１０、制御部２０を有する。記憶部１０は、ＨＤＤ（Hard  Disk  Drive）等の磁気記憶装置やＳＳＤ（Solid  State  Drive）等の半導体記憶装置を含む外部記憶装置である。記憶部１０は、月例給与項目マスタテーブル１０−１、月例給与支給データテーブル１０−２、従業員マスタテーブル１０−３、従業員勤怠データテーブル１０−４、給与体系マスタテーブル１０−５、役職手当マスタテーブル１０−６を有する。また、記憶部１０は、家族手当マスタテーブル１０−７、算出式マスタテーブル１０−８、横明細データテーブル１０−９、縦明細データテーブル１０−１０、縦横記録先データテーブル１０−１１を有する。記憶部１０は、月例給与項目マスタテーブル１０−１〜縦横記録先データテーブル１０−１１を有するＲＤＢである。給与データ計算装置１００は、ＲＤＢを管理するＲＤＢ管理システムを含む。
【００１６】
（記憶部に格納されるテーブル）
以下、記憶部１０に記憶される月例給与項目マスタテーブル１０−１〜縦横記録先データテーブル１０−１１について説明する。月例給与項目マスタテーブル１０−１〜縦横記録先データテーブル１０−１１は、ＲＤＢのテーブルである。異なるテーブルに存在する同一名称のカラムは、ＲＤＢにおいて関連付けられるカラムである。
【００１７】
（月例給与項目マスタテーブル）
図２は、月例給与項目マスタテーブルの一例を示す図である。月例給与項目マスタテーブル１０−１は、「給与項目」「計算順序」のカラムを有する。「給与項目」は、企業が従業員に対して支給する給与の項目であり、算出値となる給与データの項目名を示す。「給与項目」は、予め定められた算出式を従業員の各マスタテーブルおよび各データテーブルに格納されているデータに適用した算出結果である。図２に示す例では、ｎ個（ｎは２以上の自然数）の「給与項目」のうち、（ｎ−１）個の「給与項目」“基本給”〜“残業手当”・・・は、「給与項目」“総支給額”の内訳である。
【００１８】
また、「計算順序」は、対応する「給与項目」を、予め定められた算出式をもとに算出する算出順序である。例えば、図２において、１番目に“役職手当”、２番目に“資格手当”、３番目に“家族手当”、４番目に“残業手当”、５番目に“総手当額”、６番目に“基本給”、７番目に“職能給”・・・が算出される。そして、最後のｎ番目に“総支給額”が算出される。このように、「給与項目」ごとに「計算順序」が定められるのは、先に算出された「給与項目」が、後に他の「給与項目」の算出に用いられる場合があるためである。
【００１９】
（月例給与支給データテーブル）
図３は、月例給与支給データテーブルの一例を示す図である。月例給与支給データテーブル１０−２は、「月度」「従業員番号」「総支給額」「基本給」「職能給」「役職手当」「総手当額」「家族手当」「残業手当」・・・のカラムを有する。月例給与支給データテーブル１０−２における「総支給額」「基本給」「職能給」「役職手当」「総手当額」「家族手当」「残業手当」・・・は、月例給与項目マスタテーブル１０−１で定められている「計算順序」に従って算出された「給与項目」である。
【００２０】
月例給与支給データテーブル１０−２における１レコードが、「従業員番号」で識別される従業員に対して「月度」で識別される年月に支給される月例給与の「給与項目」を含む。例えば、月例給与支給データテーブル１０−２に含まれるカラムの名称および対応する値は、その一部または全部が、給与明細書等に出力される「給与項目」およびその算出値である。
【００２１】
（従業員マスタテーブル）
図４は、従業員マスタテーブルの一例を示す図である。従業員マスタテーブル１０−３は、レコードごとに各従業員の属性情報が格納されているテーブルである。従業員マスタテーブル１０−３は、「従業員番号」「従業員名」「入社年月日」「退社年月日」「日給月給区分」「役職」「職級」「基本給額」「時給額」「扶養家族数」「未就学扶養者数」「配偶者有無」・・・のカラムを有する。図４に示す例では、「従業員番号」“223043”で識別される従業員は、「従業員名」“○○○○”、「入社年月日」“1996/4/1”、「退社年月日」“−”（未退社）・・・である。
【００２２】
（従業員勤怠データテーブル）
図５は、従業員勤怠データテーブルの一例を示す図である。従業員勤怠データテーブル１０−４は、レコードごとに各従業員の勤怠情報が格納されているテーブルである。従業員勤怠データテーブル１０−４は、「従業員番号」「月度」「所定日数」「労働日数」「休日出勤日数」「所定労働時間」「労働時間」「時間外時間」「深夜労働時間」「有給日数」・・・である。図５に示す例では、「従業員番号」“223043”で識別される従業員は、「月度」“2017年1月度”において、「所定日数」“20”の勤務日のうち「労働日数」“19”だけ勤務し、「所定労働時間」“160”であり、「労働時間」“172”だけ労働したことを示す。そして、「従業員番号」“223043”で識別される従業員は、「月度」“2017年1月度”において、「時間外時間」“12”、「深夜労働時間」“1”であり、「有給日数」“1”だけ有給を取得したことを示す。
【００２３】
（給与体系マスタテーブル）
図６は、給与体系マスタテーブルの一例を示す図である。給与体系マスタテーブル１０−５は、「職級」ごとの「職能給」を示すテーブルである。図６では、例えば、「職級」“IV”である場合には、「職能給」“160000”であることを示す。
【００２４】
（役職手当マスタテーブル）
図７は、役職手当マスタテーブルの一例を示す図である。役職手当マスタテーブル１０−６は、「役職」に応じた「役職給」を示すテーブルである。図７では、例えば、「役職」“本部長”である場合には、「役職給」“50000”であることを示す。
【００２５】
（家族手当マスタテーブル）
図８は、家族手当マスタテーブルの一例を示す図である。家族手当マスタテーブル１０−７は、「扶養家族数」に応じた「基準額」を示すテーブルである。図８では、例えば、「扶養家族数」“１人”である場合には、「基準額」“3000”であることを示す。
【００２６】
（算出式マスタテーブル）
図９は、算出式マスタテーブルの一例を示す図である。算出式マスタテーブル１０−８は、「給与項目」「条件」「算出値（中間値）」「算出式」のカラムを有する。以下、「算出値（中間値）」の表記は、「算出値」、および「算出値」の算出過程で発生する「中間値」をいう。また、「算出値」の表記は、算出値のみを指し、「中間値」の表記は、中間値のみを示す。
【００２７】
また、「給与項目」の“総支給額”“基本給”“職能給”“総手当額”“役職手当”“家族手当”“残業手当”・・・の計算は、月例給与項目マスタテーブル１０−１に格納されている順序に従う。また、「給与項目」および「条件」の組合せに対応する「算出値（中間値）」は、「算出値（中間値）」のカラムに格納されている格納行の順序で算出される。例えば、「給与項目」“総支給額”、「条件」“給与月度  IN  （従業員マスタ->入社年月日）  and  従業員マスタ->日給月給区分＝月給”の組合せに対応する「算出値（中間値）」は、先ず“$総支給額_基本給”が算出された後に、“総支給額”が算出される。
【００２８】
なお、図９において、例えば、「条件」“給与月度  IN  （従業員マスタ->入社年月日）  and  従業員マスタ->日給月給区分＝月給”は、月給制の従業員が、給与月度の当月に入社し、給与の日割り計算を行う場合を示す。また、例えば、「条件」“給与月度  IN  （従業員マスタ->退社年月日）  and  従業員マスタ->日給月給区分＝月給”は、月給制の従業員が、給与月度の当月に退社（退職）し、給与の日割り計算を行う場合を示す。
【００２９】
算出式マスタテーブル１０−８によれば、各「給与項目」について、「条件」が充足される場合に、対応する「算出式」に従って「算出値（中間値）」が順次算出される。なお、算出式マスタテーブル１０−８において１つの「給与項目」および「条件」に対応する「算出値（中間値）」内の算出値および中間値の縦の並び順は、これら算出値および中間値の計算順序に等しい。また、算出式マスタテーブル１０−８において、“$”をプレフィックスとして持つ「算出値（中間値）」は、中間値である。また、算出式マスタテーブル１０−８において、「条件」“-”は、条件がないこと（無条件）を示す。また、算出式マスタテーブル１０−８において、“Ｔ->Ｉ”は、マスタテーブルＴの項目Ｉの値を参照することを示す。また、算出式マスタテーブル１０−８において、“IF  ‘Ｃ’  THEN  ‘Ｄ’”は、条件Ｃが成立するならば値Ｄを返すことを示す。また、算出式マスタテーブル１０−８において、“Ｉ==Ｖ”は、マスタテーブルＴの項目Ｉの値がＶに等しいことを示す。
【００３０】
例えば、「総支給額」は、「条件」“給与月度  IN（従業員マスタ->入社年月日）and  従業員マスタ->日給月給区分＝月給”の条件が満たされる場合に、中間値である“$総支給額_基本給”は、“基本給×（従業員勤怠データ->労働日数÷従業員勤怠データ->所定日数）”により算出される。また、“総支給額”は、“$総支給額_基本給＋職能給”により算出される。すなわち、該当従業員の給与支給対象の年月が従業員マスタテーブル１０−３の「入社年月日」に該当し、かつ、従業員マスタテーブル１０−３の「日給月給区分」が“月給”である場合に、「中間値」である“$総支給額_基本給”を、従業員勤怠データテーブル１０−４の「労働日数」を「所定日数」で割った結果に、先に算出済みの「基本給」を乗じることで算出される。そして、「総支給額」は、「$総支給額_基本給」に、既に算出済みの「職能給」を加算することで算出される。他の「基本給」「職能給」「総手当額」「役職手当」「家族手当」「残業手当」・・・も、月例給与項目マスタテーブル１０−１に格納されている順序に従って、対応する「条件」が充足される場合に、対応する「算出式」を用いて「算出値（中間値）」が算出される。
【００３１】
（横明細データテーブル）
図１０は、横明細データテーブルの一例を示す図である。図１０に示す例では、横明細データテーブル１０−９は、「従業員番号」「月度」「項目１」〜「項目１０」のカラムを有する。「項目１」〜「項目１０」のレコードごとの各フィールドは、後述の実施例１〜４の縦横記録先決定処理で横明細データテーブル１０−９に記録すると決定された「算出値（中間値）」を記録するためのフィールドである。横明細データテーブル１０−９は、「従業員番号」および「月度」に対応する複数のデータを１レコードに格納することから、テーブルへのアクセス性能が良いが、フィールドの数の制限により、記録できるデータの数に制限がある。なお、図１０では、「項目１」〜「項目１０」の１０個の「項目」のカラムを有する例を示すが、１０個に限られず、所定上限の範囲内で適宜設計変更可能である。
【００３２】
（縦明細データテーブル）
図１１は、縦明細データテーブルの一例を示す図である。図１１に示す例では、縦明細データテーブル１０−１０は、「従業員番号」「月度」「項目」「値」のカラムを有する。縦明細データテーブル１０−１０には、レコードに、「従業員番号」、「月度」および「項目」に対応する「値」が格納されている。「項目」は、後述の実施例１〜４の縦横記録先決定処理で縦明細データテーブル１０−１０に格納すると決定された「算出値」または「中間値」である。例えば、「従業員番号」“223043”の「月度」“2017年1月度”の「項目」は、「中間値」である“$家族手当_特別加算１”であり、その「値」は“０”である。縦明細データテーブル１０−１０は、「従業員番号」および「月度」に対応する複数のデータを複数レコードに分けて格納することから、記録できるデータの数に制限がないが、テーブルへのアクセス性能が劣る。
【００３３】
なお、縦明細データテーブル１０−１０が有するカラムは、「従業員番号」「月度」「項目」「値」の４つであるとするが、「項目」および「値」の組は、２組以上であってもよい。
【００３４】
（縦横記録先データテーブル）
図１２は、縦横記録先データテーブルの一例を示す図である。図１２に示す例では、縦横記録先データテーブル１０−１１は、「月度」「項目」「縦横」「横明細記録先」のカラムを有する。縦横記録先データテーブル１０−１１には、レコードごとに、「月度」および「項目」に対応する「縦横」および「横明細記録先」が記録される。「縦横」は、「月度」に対応する「項目」を横明細データテーブル１０−９および縦明細データテーブル１０−１０のいずれか一方または両方に記録することを示す。「縦横」“横明細”かつ「横明細記録先」“項目１”である場合には、対応する「月度」の「項目」が、横明細データテーブル１０−９の“項目１”に記録されることを示す。「縦横」が“縦明細”である場合には、対応する「月度」の「項目」が、縦明細データテーブル１０−１０に記録されることを示す。
【００３５】
（制御部）
図１の説明に戻る。制御部２０は、ＣＰＵ（Central  Processing  Unit）等の処理装置である。制御部２０は、縦横記録先決定部２１、給与項目記録処理部２２、給与項目算出処理部２３を有する。
【００３６】
縦横記録先決定部２１は、後述の実施例１〜４のいずれかの縦横記録先決定処理により、算出値である「給与項目」と、「給与項目」の算出過程における「中間値」の記録先を、横明細データテーブル１０−９および縦明細データテーブル１０−１０のいずれか一方または両方とすることを決定する。縦横記録先決定処理の詳細は、後述の実施例１〜４で詳述する。
【００３７】
給与項目記録処理部２２は、「給与項目」の一覧を月例給与項目マスタテーブル１０−１から取得する。そして、給与項目記録処理部２２は、月例給与項目マスタテーブル１０−１から取得した「給与項目」について、給与項目算出処理部２３により、対応する「計算順序」に従って、「算出値」である「給与項目」と、「算出値」の算出過程の「中間値」を算出する。そして、給与項目記録処理部２２は、「算出値」および「中間値」を、縦横記録先決定処理により既に決定された記録先である横明細データテーブル１０−９および縦明細データテーブル１０−１０のいずれか一方または両方に記録する。
【００３８】
給与項目算出処理部２３は、算出式マスタテーブル１０−８から取得された「給与項目」および「条件」に該当する「算出値（中間値）」の「算出式」を計算し、「算出値（中間値）」を算出する。給与項目算出処理部２３により算出された「算出値（中間値）」は、上述のように、既に決定された記録先である横明細データテーブル１０−９および縦明細データテーブル１０−１０のいずれか一方または両方に記録される。
【００３９】
（給与項目記録処理）
図１３は、給与項目記録処理の一例を示すフローチャートである。給与項目記録処理は、給与データ計算装置１００の制御部２０の給与項目記録処理部２２により実行される。給与項目記録処理は、後述の実施例１〜４のいずれかの縦横記録先決定処理により、算出値である「給与項目」および「給与項目」の算出過程における「中間値」が、横明細データテーブル１０−９および縦明細データテーブル１０−１０のいずれか一方または両方に記録されることが決定され、縦横記録先データテーブル１０−１１に記録先が記録されていることを前提として実行される。縦横記録先データテーブル１０−１１に記録先が記録される縦横記録先決定処理については、実施例１〜４を参照して後述する。なお、給与項目記録処理は、月度単位に定期的に実行されるとするが、月度に限られず、任意の所定期間を単位とする周期で実行されてもよい。
【００４０】
先ず、ステップＳ１０１では、給与項目記録処理部２２は、月例給与項目マスタテーブル１０−１から、給与項目一覧として、全ての「給与項目」および「計算順序」を取得する。
【００４１】
次に、ステップＳ１０２〜Ｓ１１２では、給与項目記録処理部２２は、ステップＳ１０１で取得した「給与項目」の算出を、ステップＳ１０１で同時に取得した「計算順序」に従って繰り返し実行する。ステップＳ１０２では、給与項目記録処理部２２は、例えば１回目の実行の際には、月例給与項目マスタテーブル１０−１から「計算順序」が“１”である「給与項目」“役職手当”を選択する。
【００４２】
次に、ステップＳ１０３では、給与項目記録処理部２２は、算出式マスタテーブル１０−８から、直前のステップＳ１０２で選択された「給与項目」および「条件」に該当する「算出値（中間値）」および「算出式」を全て取得する。
【００４３】
次に、ステップＳ１０４〜Ｓ１１０では、給与項目記録処理部２２は、従業員マスタテーブル１０−３に記録されている全従業員について、直前のステップＳ１０３で取得した「算出値（中間値）」ごとに、対応する「算出式」によりその計算結果を算出する。そして、給与項目記録処理部２２は、縦横記録先データテーブル１０−１１に格納されている記録先に従って、算出した「算出値（中間値）」を横明細データテーブル１０−９および縦明細データテーブル１０−１０のいずれか一方または両方に記録する。
【００４４】
ステップＳ１０４では、給与項目記録処理部２２は、例えば１回目の実行の際には、算出式マスタテーブル１０−８において、該当する「給与項目」および「条件」の組合せに対応する「算出値（中間値）」のうち、１行目に格納されている「算出値（中間値）」“$総支給額_基本給”を選択する。
【００４５】
次に、ステップＳ１０５では、給与項目記録処理部２２は、ステップＳ１０４で選択した「算出値（中間値）」を入力とし、計算結果＝Ａを出力する算出値（中間値）算出処理を実行する。算出値（中間値）算出処理の詳細は、図１４を参照して後述する。
【００４６】
次に、ステップＳ１０６では、給与項目記録処理部２２は、縦横記録先データテーブル１０−１１を参照し、ステップＳ１０５で算出した「算出値（中間値）」の記録先が、横明細データテーブル１０−９および縦明細データテーブル１０−１０のいずれか一方または両方であるかの情報を取得する。
【００４７】
次に、ステップＳ１０７では、給与項目記録処理部２２は、ステップＳ１０６で取得した記録先が横明細データテーブル１０−９であるか否かを判定する。給与項目記録処理部２２は、ステップＳ１０６で取得した記録先が横明細データテーブル１０−９である場合（ステップＳ１０７Ｙｅｓ）、ステップＳ１０８へ処理を移す。一方、給与項目記録処理部２２は、ステップＳ１０６で取得した記録先が横明細データテーブル１０−９でない場合（ステップＳ１０７Ｎｏ）、ステップＳ１１３へ処理を移す。
【００４８】
ステップＳ１０８では、給与項目記録処理部２２は、縦横記録先データテーブル１０−１１の「横明細記録先」から、横明細データテーブル１０−９の「項目１」〜「項目１０」のカラムのうち、ステップＳ１０５で算出した「算出値（中間値）」（計算結果＝Ａ）を記録する記録項目を取得する。次に、ステップＳ１０９では、給与項目記録処理部２２は、ステップＳ１０５で算出した「算出値（中間値）」（計算結果＝Ａ）を、ステップＳ１０９で取得した横明細データテーブル１０−９の記録項目（「項目１」〜「項目１０」のいずれか）に、「従業員番号」および「月度」ごとに登録する。
【００４９】
次に、ステップＳ１１０では、給与項目記録処理部２２は、ステップＳ１０３で取得した「算出値（中間値）」を全て処理したか否かを判定する。給与項目記録処理部２２は、ステップＳ１０３で取得した「算出値（中間値）」を全て処理した場合（ステップＳ１１０Ｙｅｓ）、ステップＳ１１１へ処理を移す。一方、給与項目記録処理部２２は、ステップＳ１０３で取得した「算出値（中間値）」を全て処理していない場合（ステップＳ１１０Ｎｏ）、ステップＳ１０４へ処理を移す。給与項目記録処理部２２は、ステップＳ１１０から処理を移したステップＳ１０４において、前回の実行の際に算出式マスタテーブル１０−８から選択した「算出値（中間値）」の次の格納行の「算出値（中間値）」を選択する。
【００５０】
次に、ステップＳ１１１では、給与項目記録処理部２２は、ステップＳ１０５で算出した「算出値」を、月例給与支給データテーブル１０−２の該当する「給与項目」のカラムに、「月度」および「従業員番号」ごとに記録する。次に、ステップＳ１１２では、給与項目記録処理部２２は、ステップＳ１０４〜Ｓ１１１で、ステップＳ１０１で取得した「給与項目」を全て処理したか否かを判定する。給与項目記録処理部２２は、ステップＳ１０４〜Ｓ１１１で、ステップＳ１０１で取得した「給与項目」を全て処理した場合（ステップＳ１１２Ｙｅｓ）、給与項目記録処理を終了する。一方、給与項目記録処理部２２は、ステップＳ１０４〜Ｓ１１１で、ステップＳ１０１で取得した「給与項目」を全て処理していない場合（ステップＳ１１２Ｎｏ）、ステップＳ１０２へ処理を移す。給与項目記録処理部２２は、ステップＳ１１２から処理を移したステップＳ１０２において、前回の実行の際に月例給与項目マスタテーブル１０−１から選択した「給与項目」の次の「計算順序」の「給与項目」を選択する。
【００５１】
他方、ステップＳ１１３では、給与項目記録処理部２２は、ステップＳ１０５で算出した「算出値（中間値）」（計算結果＝Ａ）を、縦明細データテーブル１０−１０の「従業員番号」および「月度」ごとの「項目」に登録する。ステップＳ１１３が終了すると、給与項目記録処理部２２は、ステップＳ１１１へ処理を移す。
【００５２】
（算出値（中間値）算出処理）
図１４は、算出値（中間値）算出処理のサブルーチンの一例を示すフローチャートである。算出値（中間値）算出処理のサブルーチンは、図１３のステップＳ１０５に該当する。算出値（中間値）算出処理のサブルーチンは、給与データ計算装置１００の制御部２０の給与項目算出処理部２３により実行される。
【００５３】
先ず、ステップＳ１０５−１では、給与項目算出処理部２３は、ステップＳ１０４で選択された「算出値（中間値）」に対応する「算出式」を、算出式マスタテーブル１０−８から取得する。例えば、ステップＳ１０４で選択された「算出値（中間値）」が「給与項目」“総支給額”、「条件」“給与月度  IN  （従業員マスタ->入社年月日）  and  従業員マスタ->日給月給区分＝月給”の組合せに対応する「算出値（中間値）」“総支給額”である場合、対応する「算出式」として“$総支給額_基本給＋職能給”を選択する。
【００５４】
次に、ステップＳ１０５−２では、給与項目算出処理部２３は、ステップＳ１０５−１で取得した「算出式」に含まれる「算出値（中間値）項目」を取得する。「算出値（中間値）項目」とは、「算出式」に含まれる項および因子のうち、「算出値」または「中間値」に該当するものをいう。「算出式」が“$総支給額_基本給＋職能給”である場合、「算出値（中間値）項目」は、“$総支給額_基本給”である。
【００５５】
次に、ステップＳ１０５−３〜Ｓ１０５−８では、給与項目算出処理部２３は、ステップＳ１０５−２で取得した「算出値（中間値）項目」ごとに、「算出値（中間値）項目」の格納先を取得し、取得した格納先から該当の「算出値（中間値）項目」の値を取得する。
【００５６】
ステップＳ１０５−３では、給与項目算出処理部２３は、ステップＳ１０５−２で取得した「算出値（中間値）項目」のうち、未選択の「算出値（中間値）項目」を選択する。次に、ステップＳ１０５−４では、給与項目算出処理部２３は、縦横記録先データテーブル１０−１１を参照し、ステップＳ１０５−３で選択した「算出値（中間値）項目」の格納先が横明細データテーブル１０−９および縦明細データテーブル１０−１０のいずれであるかを取得する。
【００５７】
次に、ステップＳ１０５−５では、給与項目算出処理部２３は、ステップＳ１０５−４で取得した「算出値（中間値）項目」の格納先が横明細データテーブル１０−９であるか否かを判定する。給与項目算出処理部２３は、ステップＳ１０５−４で取得した「算出値（中間値）項目」の格納先が横明細データテーブル１０−９である場合（ステップＳ１０５−５Ｙｅｓ）、ステップＳ１０５−６へ処理を移す。一方、給与項目算出処理部２３は、ステップＳ１０５−４で取得した「算出値（中間値）項目」の格納先が縦明細データテーブル１０−１０である場合（ステップＳ１０５−５Ｎｏ）、ステップＳ１０５−９へ処理を移す。
【００５８】
ステップＳ１０５−６では、給与項目算出処理部２３は、縦横記録先データテーブル１０−１１を参照し、ステップＳ１０５−４で取得した、格納先が横明細データテーブル１０−９である「算出値（中間値）項目」の「横明細記録先」を取得する。次に、ステップＳ１０５−７では、給与項目算出処理部２３は、ステップＳ１０５−６で取得した「横明細記録先」をもとに横明細データテーブル１０−９を参照し、ステップＳ１０５−４で取得した「算出値（中間値）項目」に該当する値を取得する。
【００５９】
次に、ステップＳ１０５−８では、給与項目算出処理部２３は、ステップＳ１０５−３〜Ｓ１０５−７の処理で、ステップＳ１０５−２で取得した全ての「算出値（中間値）項目」に該当する「算出値（中間値）」の値を取得したか否かを判定する。給与項目算出処理部２３は、ステップＳ１０５−３〜Ｓ１０５−７の処理で、ステップＳ１０５−２で取得した全ての「算出値（中間値）項目」に該当する「算出値（中間値）」の値を取得した場合（ステップＳ１０５−８Ｙｅｓ）、ステップＳ１０５−１０へ処理を移す。
【００６０】
一方、給与項目算出処理部２３は、ステップＳ１０５−３〜Ｓ１０５−７の処理で、ステップＳ１０５−２で取得した全ての「算出値（中間値）項目」に該当する「算出値（中間値）」の値を取得していない場合（ステップＳ１０５−８Ｎｏ）、ステップＳ１０５−３へ処理を移す。給与項目算出処理部２３は、ステップＳ１０５−８から処理を移したステップＳ１０５−３において、前回の実行までに未選択の「算出値（中間値）項目」を選択する。
【００６１】
一方、ステップＳ１０５−９では、給与項目記録処理部２２は、縦明細データテーブル１０−１０から、ステップＳ１０５−４で取得した「算出値（中間値）項目」に該当する値を取得する。給与項目記録処理部２２は、ステップＳ１０５−９が終了すると、ステップＳ１０５−１０へ処理を移す。
【００６２】
次に、ステップＳ１０５−１０では、給与項目算出処理部２３は、ステップＳ１０５−１で取得した算出式に含まれる「マスタ参照値」を取得する。「マスタ参照値」とは、月例給与項目マスタテーブル１０−１、従業員マスタテーブル１０−３、給与体系マスタテーブル１０−５、役職手当マスタテーブル１０−６、家族手当マスタテーブル１０−７の各カラムのフィールドに格納されている値をいう。
【００６３】
次に、ステップＳ１０５−１１では、給与項目算出処理部２３は、ステップＳ１０５−７、Ｓ１０５−９、Ｓ１０５−１０で取得した値を、ステップＳ１０５−１で取得した算出式にあてはめて計算を行い、計算結果＝Ａを算出する。給与項目算出処理部２３は、ステップＳ１０５−１１が終了すると、図１３の給与項目記録処理のステップＳ１０６へ処理を移す。
【００６４】
（縦横記録先決定処理）
以下、「給与項目」の「算出値」、および「算出値」の算出過程における「中間値」が、横明細データテーブル１０−９および縦明細データテーブル１０−１０のいずれか一方または両方に記録されることが決定され、縦横記録先データテーブル１０−１１に記録先が記録される縦横記録先決定処理の実施例について説明する。
【００６５】
縦横記録先決定処理は、給与データ計算装置１００の制御部２０の縦横記録先決定部２１により実行される。縦横記録先決定処理は、例えば、図１３および図１４に示す、定例（月次もしくは所定期間を単位とする周期）の給与計算処理の前もしくは前段に実行される。もしくは、縦横記録先決定処理は、給与制度の変更等に伴う月例給与項目マスタテーブル１０−１、月例給与支給データテーブル１０−２、従業員マスタテーブル１０−３、従業員勤怠データテーブル１０−４、給与体系マスタテーブル１０−５、役職手当マスタテーブル１０−６、家族手当マスタテーブル１０−７、算出式マスタテーブル１０−８等の変更があった都度、実行されてもよい。給与制度の変更は、例えば、給与に関する項目の追加、給与の計算式の変更、給与の計算式の追加等を含む。
【実施例１】
【００６６】
図１５は、実施例１にかかる縦横記録先決定処理の一例を示すフローチャートである。実施例１にかかる縦横記録先決定処理では、「給与項目」の「算出値（中間値）」を横明細データテーブル１０−９に優先して記録し、横明細データテーブル１０−９の１レコードの全てのフィールドに「算出値（中間値）」を記録した後、残りの「算出値（中間値）」を縦明細データテーブル１０−１０に記録すると決定し、その情報を縦横記録先データテーブル１０−１１に登録する。
【００６７】
先ず、ステップＳ１１では、縦横記録先決定部２１は、月例給与項目マスタテーブル１０−１から給与項目一覧として、全ての「給与項目」および「計算順序」を取得する。
【００６８】
次に、ステップＳ１２〜Ｓ１８では、縦横記録先決定部２１は、ステップＳ１１で取得した各「給与項目」に対応する「算出値」および「中間値」それぞれの数を、ステップＳ１１で同時に取得した「計算順序」に従って算出する。そして、縦横記録先決定部２１は、横明細データテーブル１０−９にデータ記録先として未決定のフィールドが存在し、かつ、該当の「算出値」および「中間値」の合計数が横明細データテーブル１０−９のデータ記録先として未決定のフィールドの数以下である場合に、該当の「給与項目」に対応する「算出値」および「中間値」の記録先を横明細データテーブル１０−９とし、その情報を縦横記録先データテーブル１０−１１に登録する。
【００６９】
また、縦横記録先決定部２１は、横明細データテーブル１０−９にデータ記録先として未決定のフィールドが存在しない場合に、該当の「給与項目」に対応する「算出値」および「中間値」の記録先を縦明細データテーブル１０−１０とし、その情報を縦横記録先データテーブル１０−１１に登録する。ステップＳ１２では、縦横記録先決定部２１は、例えば１回目の実行の際には、月例給与項目マスタテーブル１０−１から「計算順序」が“１”である「給与項目」“役職手当”を選択する。
【００７０】
次に、ステップＳ１３では、縦横記録先決定部２１は、算出式マスタテーブル１０−８から、直前のステップＳ１２で選択された「給与項目」に対応する「算出値」および「中間値」を全て取得する。次に、ステップＳ１４では、縦横記録先決定部２１は、ステップＳ１３で取得した「算出値」の数＝Ｂ１および「中間値」の数＝Ｂ２を算出する。
【００７１】
次に、ステップＳ１５では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０より大であるか（存在するか）否かを判定する。縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０より大である（存在する）場合（ステップＳ１５Ｙｅｓ）、ステップＳ１６へ処理を移す。一方、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０である（存在しない）場合（ステップＳ１５Ｎｏ）、ステップＳ１９へ処理を移す。
【００７２】
ステップＳ１６では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が、ステップＳ１４で算出した「算出値」および「中間値」の合計数＝Ｂ１＋Ｂ２以上か否かを判定する。縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が、ステップＳ１４で算出した「算出値」および「中間値」の合計数＝Ｂ１＋Ｂ２以上である場合（ステップＳ１６Ｙｅｓ）、ステップＳ１７へ処理を移す。一方、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が、ステップＳ１４で算出した「算出値」および「中間値」の合計数＝Ｂ１＋Ｂ２未満である場合（ステップＳ１６Ｎｏ）、ステップＳ２０へ処理を移す。
【００７３】
なお、「横明細データテーブル１０−９にデータ記録先として未決定のフィールドが存在」とは、「横明細データテーブル１０−９にデータ記録先として決定されているフィールドが所定数未満」であることをいう。同様に、「横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が所定数以上」も、「横明細データテーブル１０−９にデータ記録先として決定されているフィールドが所定数未満」であることをいう。
【００７４】
ステップＳ１７では、縦横記録先決定部２１は、ステップＳ１３で取得した「算出値」および「中間値」の記録先を横明細データテーブル１０−９と決定して縦横記録先データテーブル１０−１１に登録する。
【００７５】
次に、ステップＳ１８では、縦横記録先決定部２１は、ステップＳ１１で取得した全ての「給与項目」について、ステップＳ１２〜Ｓ２２の処理を実行したか否かを判定する。縦横記録先決定部２１は、ステップＳ１１で取得した全ての「給与項目」について、ステップＳ１２〜Ｓ２２の処理を実行した場合（ステップＳ１８Ｙｅｓ）、実施例１にかかる縦横記録先決定処理を終了する。一方、縦横記録先決定部２１は、ステップＳ１１で取得した全ての「給与項目」について、ステップＳ１２〜Ｓ２２の処理を実行していない場合（ステップＳ１８Ｎｏ）、ステップＳ１２へ処理を移す。縦横記録先決定部２１は、ステップＳ１８から処理を移したステップＳ１２において、前回の実行の際に月例給与項目マスタテーブル１０−１から選択した「給与項目」の次の「計算順序」の「給与項目」を選択する。
【００７６】
他方、ステップＳ１９では、縦横記録先決定部２１は、「算出値」および「中間値」の記録先を縦明細データテーブル１０−１０と決定して縦横記録先データテーブル１０−１１に登録する。縦横記録先決定部２１は、ステップＳ１９が終了すると、ステップＳ１８へ処理を移す。
【００７７】
また、ステップＳ２０では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数がＢ１以上であるか否かを判定する。縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数がＢ１以上である場合（ステップＳ２０Ｙｅｓ）、ステップＳ２１へ処理を移す。一方、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数がＢ１未満である場合（ステップＳ２０Ｎｏ）、ステップＳ１９へ処理を移す。
【００７８】
ステップＳ２１では、縦横記録先決定部２１は、ステップＳ１３で取得した「算出値」の記録先を横明細データテーブル１０−９と決定して縦横記録先データテーブル１０−１１に登録する。次に、ステップＳ２２では、縦横記録先決定部２１は、ステップＳ１３で取得した「中間値」の記録先を縦明細データテーブル１０−１０と決定して縦横記録先データテーブル１０−１１に登録する。縦横記録先決定部２１は、ステップＳ２２が終了すると、ステップＳ１８へ処理を移す。
【００７９】
実施例１にかかる縦横記録先決定処理では、「給与項目」に対応する「算出値」および「中間値」に関わらず、先ず、横明細データテーブル１０−９に記録すると決定する。そして、実施例１にかかる縦横記録先決定処理では、横明細データテーブル１０−９のデータ記録先として未決定のフィールドが不足した場合には、「算出値」を優先的に横明細データテーブル１０−９に、「中間値」を縦明細データテーブル１０−１０に記録すると決定する。
【００８０】
よって、実施例１によれば、膨大な数の「算出値」または「中間値」が算出される場合であっても、ＲＤＢの処理性能の劣化を抑制しつつ、「給与項目」の「算出値」および「中間値」の数を上限なく取り扱って給与データの算出を行うことができる。
【００８１】
（実施例１の変形例）
実施例１にかかる縦横記録先決定処理において、ステップＳ２１とステップＳ２２とは、処理順序を入れ替えてもよい。
【００８２】
また、上述のステップＳ２０では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が「算出値」の数＝Ｂ１以上である場合にのみ、「算出値」の記録先を横明細データテーブル１０−９と決定する。しかし、これに限られず、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が「算出値」の数＝Ｂ１未満の場合、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数の全てを「算出値」の記録先とし、横明細データテーブル１０−９に記録し切れない残りの「算出値」の記録先を縦明細データテーブル１０−１０と決定してもよい。
【００８３】
また、ステップＳ２０では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数がＢ１以上であるか否かを判定し、ステップＳ２１で「算出値」の記録先を横明細データテーブル１０−９と決定し、ステップＳ２２で「中間値」の記録先を縦明細データテーブル１０−１０と決定する。しかし、これに限られず、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数がＢ２以上であるか否かを判定し、「算出値」の記録先を縦明細データテーブル１０−１０と決定し、「中間値」の記録先を横明細データテーブル１０−９と決定してもよい。
【実施例２】
【００８４】
図１６は、実施例２にかかる縦横記録先決定処理の一例を示すフローチャートである。実施例１にかかる縦横記録先決定処理では、「給与項目」の「算出値」を横明細データテーブル１０−９に優先して記録し、「中間値」を縦明細データテーブル１０−１０に記録すると決定し、その情報を縦横記録先データテーブル１０−１１に登録する。そして、縦横記録先決定部２１は、横明細データテーブル１０−９にデータ記録先として未決定のフィールドが存在しなくなった場合には、「算出値」および「中間値」ともに縦明細データテーブル１０−１０に記録すると決定し、その情報を縦横記録先データテーブル１０−１１に登録する。
【００８５】
実施例２にかかる縦横記録先決定処理におけるステップＳ３１〜Ｓ３３ぞれぞれは、実施例１にかかる縦横記録先決定処理のステップＳ１１〜Ｓ１３と同様である。ステップＳ３２〜Ｓ３８では、縦横記録先決定部２１は、ステップＳ３１で取得した各「給与項目」に対応する「算出値」および「中間値」のうち、「算出値」を横明細データテーブル１０−９に記録し、「中間値」を縦明細データテーブル１０−１０に記録すると決定し、その情報を縦横記録先データテーブル１０−１１に登録する。そして、縦横記録先決定部２１は、横明細データテーブル１０−９にデータ記録先として未決定のフィールドが存在しなくなった場合には、「算出値」も縦明細データテーブル１０−１０に記録するとし、その情報を縦横記録先データテーブル１０−１１に登録する。
【００８６】
ステップＳ３４では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０より大であるか（存在するか）否かを判定する。縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０より大である（存在する）場合（ステップＳ３４Ｙｅｓ）、ステップＳ３５へ処理を移す。一方、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０である（存在しない）場合（ステップＳ３４Ｎｏ）、ステップＳ３８へ処理を移す。
【００８７】
ステップＳ３５では、縦横記録先決定部２１は、ステップＳ３３で取得した「算出値」の記録先を横明細データテーブル１０−９と決定して縦横記録先データテーブル１０−１１に登録する。次に、ステップＳ３６では、縦横記録先決定部２１は、ステップＳ３３で取得した「中間値」の記録先を縦明細データテーブル１０−１０と決定して縦横記録先データテーブル１０−１１に登録する。
【００８８】
次に、ステップＳ３７では、縦横記録先決定部２１は、ステップＳ３１で取得した全ての「給与項目」について、ステップＳ３２〜Ｓ３８の処理を実行したか否かを判定する。縦横記録先決定部２１は、ステップＳ３１で取得した全ての「給与項目」について、ステップＳ３２〜Ｓ３８の処理を実行した場合（ステップＳ３７Ｙｅｓ）、実施例２にかかる縦横記録先決定処理を終了する。
【００８９】
一方、縦横記録先決定部２１は、ステップＳ３１で取得した全ての「給与項目」について、ステップＳ３２〜Ｓ３８の処理を実行していない場合（ステップＳ３７Ｎｏ）ステップＳ３２へ処理を移す。縦横記録先決定部２１は、ステップＳ３７から処理を移したステップＳ３２において、前回の実行の際に月例給与項目マスタテーブル１０−１から選択した「給与項目」の次の「計算順序」の「給与項目」を選択する。
【００９０】
他方、ステップＳ３８では、縦横記録先決定部２１は、「算出値」および「中間値」の記録先を縦明細データテーブル１０−１０と決定して縦横記録先データテーブル１０−１１に登録する。ステップＳ３８が終了すると、縦横記録先決定部２１は、ステップＳ３７へ処理を移す。
【００９１】
実施例２にかかる縦横記録先決定処理では、「給与項目」に対応する「算出値」を横明細データテーブル１０−９に記録すると決定し、「中間値」を縦明細データテーブル１０−１０に記録すると決定する。そして、実施例２にかかる縦横記録先決定処理では、横明細データテーブル１０−９のデータ記録先として未決定のフィールドが不足した場合には、「算出値」も縦明細データテーブル１０−１０に記録すると決定する。
【００９２】
よって、実施例２によれば、膨大な数の「中間値」が算出される場合であっても、ＲＤＢの処理性能の劣化を抑制しつつ、「給与項目」の「算出値」および「中間値」の数を上限なく取り扱って給与データの算出を行うことができる。
【００９３】
（実施例２の変形例）
実施例２にかかる縦横記録先決定処理において、ステップＳ３５とステップＳ３６とは、処理順序を入れ替えてもよい。
【実施例３】
【００９４】
図１７は、実施例３にかかる縦横記録先決定処理の一例を示すフローチャートである。実施例３にかかる縦横記録先決定処理では、「給与項目」の「中間値」を横明細データテーブル１０−１０に優先して記録し、「算出値」を縦明細データテーブル１０−９に記録すると決定する。
【００９５】
実施例３にかかる縦横記録先決定処理におけるステップＳ４１〜Ｓ４３のぞれぞれは、実施例１にかかる縦横記録先決定処理のステップＳ１１〜Ｓ１３と同様である。ステップＳ４２〜Ｓ５２では、縦横記録先決定部２１は、ステップＳ４１で取得した各「給与項目」に対応する「算出値」および「中間値」のうち、「算出値」を縦明細データテーブル１０−１０に記録し、「中間値」を横明細データテーブル１０−９に記録すると決定し、その情報を縦横記録先データテーブル１０−１１に登録する。そして、縦横記録先決定部２１は、横明細データテーブル１０−９にデータ記録先として未決定のフィールドが存在しなくなった場合には、「算出値」および「中間値」ともに縦明細データテーブル１０−１０に記録すると決定し、その情報を縦横記録先データテーブル１０−１１に登録する。
【００９６】
ステップＳ４４では、縦横記録先決定部２１は、ステップＳ４３で取得した「中間値」の数＝Ｃを算出する。次に、ステップＳ４５では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０より大であるか（存在するか）否かを判定する。縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０より大である（存在する）場合（ステップＳ４５Ｙｅｓ）、ステップＳ４６へ処理を移す。一方、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０である（存在しない）場合（ステップＳ４５Ｎｏ）、ステップＳ５２へ処理を移す。
【００９７】
次に、ステップＳ４６では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が、ステップＳ４４で算出した「中間値」の数＝Ｃ以上か否かを判定する。縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が、ステップＳ４４で算出した「中間値」の合計数＝Ｃ以上である場合（ステップＳ４６Ｙｅｓ）、ステップＳ４７へ処理を移す。一方、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が、ステップＳ４４で算出した「中間値」の数＝Ｃ未満である場合（ステップＳ４６Ｎｏ）、ステップＳ５０へ処理を移す。
【００９８】
ステップＳ４７では、縦横記録先決定部２１は、ステップＳ４３で取得した「中間値」の記録先を横明細データテーブル１０−９と決定して縦横記録先データテーブル１０−１１に登録する。次に、ステップＳ４８では、縦横記録先決定部２１は、ステップＳ４３で取得した「算出値」の記録先を縦明細データテーブル１０−１０と決定して縦横記録先データテーブル１０−１１に登録する。縦横記録先決定部２１は、ステップＳ４８が終了すると、ステップＳ４９へ処理を移す。
【００９９】
次に、ステップＳ４９では、縦横記録先決定部２１は、ステップＳ４１で取得した全ての「給与項目」について、ステップＳ４２〜Ｓ４８、Ｓ５０〜Ｓ５２の処理を実行したか否かを判定する。縦横記録先決定部２１は、テップＳ４１で取得した全ての「給与項目」について、ステップＳ４２〜Ｓ４８、Ｓ５０〜Ｓ５２の処理を実行した場合（ステップＳ４９Ｙｅｓ）、実施例３にかかる縦横記録先決定処理を終了する。一方、縦横記録先決定部２１は、ステップＳ４１で取得した全ての「給与項目」について、ステップＳ４２〜Ｓ４８、Ｓ５０〜Ｓ５２の処理を実行していない場合（ステップＳ４９Ｎｏ）、ステップＳ４２へ処理を移す。縦横記録先決定部２１は、ステップＳ４９から処理を移したステップＳ４２において、前回の実行の際に月例給与項目マスタテーブル１０−１から選択した「給与項目」の次の「計算順序」の「給与項目」を選択する。
【０１００】
一方、ステップＳ５０では、縦横記録先決定部２１は、ステップＳ４３で取得した「中間値」の記録先を、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数分だけ横明細データテーブル１０−９に記録すると決定して縦横記録先データテーブル１０−１１に登録する。次に、ステップＳ５１では、縦横記録先決定部２１は、ステップＳ４３で取得した「中間値」のうち、ステップＳ５０で記録先が登録されなかった「中間値」の記録先を、縦明細データテーブル１０−１０と決定して縦横記録先データテーブル１０−１１に登録する。縦横記録先決定部２１は、ステップＳ５１が終了すると、ステップＳ４８へ処理を移す。
【０１０１】
他方、ステップＳ５２では、縦横記録先決定部２１は、「算出値」および「中間値」の記録先を縦明細データテーブル１０−１０と決定して縦横記録先データテーブル１０−１１に登録する。ステップＳ５２が終了すると、縦横記録先決定部２１は、ステップＳ４９へ処理を移す。
【０１０２】
実施例３にかかる縦横記録先決定処理では、「給与項目」に対応する「中間値」を横明細データテーブル１０−９に記録すると決定し、「算出値」を縦明細データテーブル１０−１０に記録すると決定する。そして、実施例３にかかる縦横記録先決定処理では、横明細データテーブル１０−９のデータ記録先として未決定のフィールドが不足した場合には、「中間値」も縦明細データテーブル１０−１０に記録すると決定する。
【０１０３】
よって、実施例３によれば、膨大な数の「中間値」が算出される場合であっても、ＲＤＢの処理性能の劣化を抑制しつつ、「給与項目」の「算出値」および「中間値」の数を上限なく取り扱って給与データの算出を行うことができる。また、実施例３によれば、アクセス効率が比較的よい横明細データテーブル１０−９に「中間値」を記録することから、例えば「算出値」の検算や「算出値」の算出基礎の変更等にかかる「算出値」の再計算の際に、効率的に処理を実行することができる。
【０１０４】
（実施例３の変形例）
上述のステップＳ５０〜Ｓ５１では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が「中間値」の数＝Ｃ未満の場合、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数の全てを「中間値」の記録先とし、横明細データテーブル１０−９に記録し切れない残りの「中間値」の記録先を縦明細データテーブル１０−１０と決定する。しかし、これに限られず、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が「中間値」の数＝Ｃ以上である場合にのみ、「中間値」の記録先を横明細データテーブル１０−９と決定してもよい。
【０１０５】
また、実施例３にかかる縦横記録先決定処理において、ステップＳ４７とステップＳ４８とは、処理順序を入れ替えてもよい。
【実施例４】
【０１０６】
図１８は、実施例４にかかる縦横記録先決定処理の一例を示すフローチャートである。実施例４にかかる縦横記録先決定処理では、先ず、「給与項目」の「算出値」および「中間値」を横明細データテーブル１０−９に優先して記録すると決定し、その情報を縦横記録先データテーブル１０−１１に登録する。そして、縦横記録先決定部２１は、横明細データテーブル１０−９にデータ記録先として未決定のフィールドが存在しなくなった際に記録対象の新たな「算出値」が算出された場合には、横明細データテーブル１０−９に記録されている１以上の「中間値」を縦明細データテーブル１０−１０に移動させる。そして、縦横記録先決定部２１は、移動させた「中間値」が記録されていた横明細データテーブル１０−９のフィールドに新たな「算出値」を記録すると決定し、それらの情報を縦横記録先データテーブル１０−１１に登録する。
【０１０７】
実施例４にかかる縦横記録先決定処理におけるステップＳ６１〜Ｓ６３ぞれぞれは、実施例１にかかる縦横記録先決定処理のステップＳ１１〜Ｓ１３と同様である。ステップＳ６２〜Ｓ６８では、縦横記録先決定部２１は、ステップＳ６１で取得した各「給与項目」に対応する「算出値」および「中間値」の両方を横明細データテーブル１０−９に優先して記録すると決定し、その情報を縦横記録先データテーブル１０−１１に登録する。そして、縦横記録先決定部２１は、横明細データテーブル１０−９にデータ記録先として未決定のフィールドが存在しなくなった場合には、「算出値」も縦明細データテーブル１０−１０に記録するとし、その情報を縦横記録先データテーブル１０−１１に登録する。
【０１０８】
ステップＳ６４では、縦横記録先決定部２１は、ステップＳ６３で取得した「算出値」および「中間値」の合計数＝Ｄを算出する。次に、ステップＳ６５では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０より大であるか（存在するか）否かを判定する。縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０より大である（存在する）場合（ステップＳ６５Ｙｅｓ）、ステップＳ６６へ処理を移す。一方、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が０である（存在しない）場合（ステップＳ６５Ｎｏ）、ステップＳ６９へ処理を移す。
【０１０９】
次に、ステップＳ６６では、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が、ステップＳ６４で算出した「算出値」および「中間値」の合計数＝Ｄ以上か否かを判定する。縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が、ステップＳ６４で算出した「算出値」および「中間値」の合計数＝Ｄ以上である場合（ステップＳ６６Ｙｅｓ）、ステップＳ６７へ処理を移す。一方、縦横記録先決定部２１は、横明細データテーブル１０−９のデータ記録先として未決定のフィールドの残数が、ステップＳ６４で算出した「算出値」および「中間値」の合計数＝Ｄ未満である場合（ステップＳ６６Ｎｏ）、ステップＳ７１へ処理を移す。
【０１１０】
次に、ステップＳ６８では、縦横記録先決定部２１は、ステップＳ６１で取得した全ての「給与項目」について、ステップＳ６２〜Ｓ６７、Ｓ６９〜Ｓ７３の処理を実行したか否かを判定する。縦横記録先決定部２１は、ステップＳ６１で取得した全ての「給与項目」について、ステップＳ６２〜Ｓ６７、Ｓ６９〜Ｓ７３の処理を実行した場合（ステップＳ６８Ｙｅｓ）、実施例４にかかる縦横記録先決定処理を終了する。
【０１１１】
一方、縦横記録先決定部２１は、ステップＳ６１で取得した全ての「給与項目」について、ステップＳ６２〜Ｓ６７、Ｓ６９〜Ｓ７３の処理を実行していない場合（ステップＳ６８Ｎｏ）、ステップＳ６２へ処理を移す。縦横記録先決定部２１は、ステップＳ６８から処理を移したステップＳ６２において、前回の実行の際に月例給与項目マスタテーブル１０−１から選択した「給与項目」の次の「計算順序」の「給与項目」を選択する。
【０１１２】
他方、ステップＳ６９では、縦横記録先決定部２１は、記録先が横明細データテーブル１０−９として登録されている「中間値」が縦横記録先データテーブル１０−１１に存在するか否かを判定する。縦横記録先決定部２１は、記録先が横明細データテーブル１０−９として登録されている「中間値」が縦横記録先データテーブル１０−１１に存在する場合（ステップＳ６９Ｙｅｓ）、ステップＳ７０へ処理を移す。一方、縦横記録先決定部２１は、記録先が横明細データテーブル１０−９として登録されている「中間値」が縦横記録先データテーブル１０−１１に存在しない場合（ステップＳ６９Ｎｏ）、ステップＳ７３へ処理を移す。
【０１１３】
次に、ステップＳ７０では、縦横記録先決定部２１は、縦縦横記録先データテーブル１０−１１において、記録先が横明細データテーブル１０−９として登録されている「中間値」のいずれか１つの記録先の登録を、縦明細データテーブル１０−１０へ変更する。この結果、縦横記録先データテーブル１０−１１において、記録先として登録可能な横明細データテーブル１０−９のフィールドが１つ分だけ確保される。
【０１１４】
次に、ステップＳ７１では、縦横記録先決定部２１は、ステップＳ６３で取得した「算出値」の記録先を横明細データテーブル１０−９と決定して縦横記録先データテーブル１０−１１に登録する。ステップＳ７１では、ステップＳ７０の後の実行であれば、「中間値」の記録先が横明細データテーブル１０−９から縦明細データテーブル１０−１０へ変更されて確保された横明細データテーブル１０−９のフィールドが、新たな「算出値」の記録先として登録されることになる。
【０１１５】
次に、ステップＳ７２では、縦横記録先決定部２１は、ステップＳ６３で取得した「中間値」の記録先を縦明細データテーブル１０−１０と決定して縦横記録先データテーブル１０−１１に登録する。縦横記録先決定部２１は、ステップＳ７２が終了すると、ステップＳ６８へ処理を移す。
【０１１６】
他方、ステップＳ７３では、縦横記録先決定部２１は、ステップＳ６３で取得した「算出値」および「中間値」の記録先を縦明細データテーブル１０−１０と決定して縦横記録先データテーブル１０−１１に登録する。縦横記録先決定部２１は、ステップＳ７３が終了すると、ステップＳ６８へ処理を移す。
【０１１７】
実施例４にかかる縦横記録先決定処理では、「給与項目」に対応する「算出値」および「中間値」を横明細データテーブル１０−９に記録すると決定する。そして、実施例４にかかる縦横記録先決定処理では、横明細データテーブル１０−９のデータ記録先として未決定のフィールドが不足した場合には、既に記録先が横明細データテーブル１０−９として決定済の「中間値」の記録先を、縦明細データテーブル１０−１０に変更すると決定し、新たな「算出値」を、確保された横明細データテーブル１０−９のフィールドに記録する。
【０１１８】
よって、実施例４によれば、「算出値」を優先的に横明細データテーブル１０−９に記録してもなお横明細データテーブル１０−９に余裕がある場合に、一部または全部の「中間値」を横明細データテーブル１０−９に記録することができる。よって、「算出値」および「中間値」の記録効率の両立を図ることができる。
【０１１９】
（実施例４の変形例）
上述のステップＳ７０では、縦横記録先決定部２１は、縦横記録先データテーブル１０−１１において、横明細データテーブル１０−９から縦明細データテーブル１０−１０へ記録先を変更する対象の「中間値」は、予め付与されている優先度に応じて決定してもよい。すなわち、上述のステップＳ７０では、縦横記録先決定部２１は、縦横記録先データテーブル１０−１１において、横明細データテーブル１０−９から縦明細データテーブル１０−１０へ、優先度が最も低い「中間値」を記録先を変更する対象として決定してもよい。
【０１２０】
また、上述のステップＳ７０では、縦横記録先決定部２１は、縦横記録先データテーブル１０−１１において、記録先が横明細データテーブル１０−９として登録されている「中間値」のいずれか１つの記録先を、縦明細データテーブル１０−１０へ変更する。しかし、これに限られず、縦横記録先決定部２１は、縦横記録先データテーブル１０−１１において、記録先が横明細データテーブル１０−９として登録されている「中間値」の複数の記録先を、縦明細データテーブル１０−１０へ変更するとしてもよい。
【０１２１】
また、実施例４にかかる縦横記録先決定処理において、ステップＳ７１とステップＳ７２とは、処理順序を入れ替えてもよい。
【０１２２】
（その他の実施形態）
以上、実施例１〜４を含む実施形態について説明したが、開示技術は上述した実施例１〜４を含む実施形態以外にも、種々の異なる形態にて実施されてよい。そこで、以下にその他の実施形態を説明する。
【０１２３】
上述の実施例１〜４を含む実施形態では、「算出値」を横明細データテーブル１０−９および縦明細データテーブル１０−１０のいずれか一方に記録する。しかし、これに限られず、「算出値」を横明細データテーブル１０−９および縦明細データテーブル１０−１０の両方に記録してもよい。例えば、「給与項目」が“その他支給”や“その他控除”である場合、縦明細データテーブル１０−１０にその内訳として「中間値」を記録するが、内訳として重要度が高いとする「中間値」を、縦明細データテーブル１０−１０とともに、横明細データテーブル１０−９にも記録してもよい。このようにすることで、「中間値」であっても、重要な「中間値」は、横明細データテーブル１０−９を参照して迅速に取得することができる。
【０１２４】
（ハードウェアおよび給与データ計算プログラム）
図１９は、給与データ計算プログラムを実行するコンピュータを示す図である。図１９は、図１等に示す給与データ計算装置１のハードウェア構成を示す。図１９に示すように、コンピュータ１は、ＣＰＵ（Central  Processing  Unit）２、メモリ３、外部記憶装置４、通信インタフェース５を有する。また、図１９に示した各部は、バス（不図示）等で相互に接続される。
【０１２５】
通信インタフェース５は、ネットワークインタフェースカード等である。外部記憶装置４は、ＨＤＤ（Hard  Disk  Drive）等の磁気記憶装置やＳＳＤ（Solid  State  Drive）等の半導体記憶装置であり、図２〜図１２に示す各テーブル、図１３〜図１８に示す処理をコンピュータ１に実行させるプログラムを記憶する。外部記録装置４は、ＲＯＭ（Read  Only  Memory）、ＲＡＭ、ＣＤ−ＲＯＭ等の他のコンピュータが読み取り可能な記録媒体に各種プログラムを格納しておき、コンピュータに読み取らせる装置であってもよい。なお、記録媒体を遠隔地に配置し、コンピュータが、その記憶媒体にアクセスすることでプログラムを取得して利用してもよい。また、その際、取得したプログラムをコンピュータ１の記憶装置に格納して用いてもよい。
【０１２６】
ＣＰＵ２は、図１に示した制御部２０の各部と同様の処理を実行するプログラムを外部記憶装置４等から読み出してメモリ３に展開することで、コンピュータ１に、図１３〜図１８に示す処理を実行するプロセスを動作させる。すなわち、ＣＰＵ２は、縦横記録先決定部２１、給与項目記録処理部２２、給与項目算出処理部２３と同様の機能を有するプログラムを外部記憶装置４等から読み出す。そして、ＣＰＵ２は、制御部２０の各部と同様の処理を実行するプロセスを実行する。
【０１２７】
このように、コンピュータ１は、プログラムを読み出して実行することで給与データ計算方法を実行する情報処理装置として動作する。また、コンピュータ１は、媒体読取装置によって記録媒体から上述のプログラムを読み出し、読み出されたプログラムを実行することで上述の実施例１〜４を含む実施形態と同様の機能を実現することができる。なお、このプログラムは、コンピュータ１によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、開示技術を同様に適用することができる。
【符号の説明】
【０１２８】
１  コンピュータ
２  ＣＰＵ
３  メモリ
４  外部記憶装置
５  通信インタフェース
１０  記憶部
１０−１  月例給与項目マスタテーブル
１０−２  月例給与支給データテーブル
１０−３  従業員マスタテーブル
１０−４  従業員勤怠データテーブル
１０−５  給与体系マスタテーブル
１０−６  役職手当マスタテーブル
１０−７  家族手当マスタテーブル
１０−８  算出式マスタテーブル
１０−９  横明細データテーブル
１０−１０  縦明細データテーブル
１０−１１  縦横記録先データテーブル
２０  制御部
２１  縦横記録先決定部
２２  給与項目記録処理部
２３  給与項目算出処理部
１００  給与データ計算装置
【図１】
2019012367.tif 000003
【図２】
2019012367.tif 000004
【図３】
2019012367.tif 000005
【図４】
2019012367.tif 000006
【図５】
2019012367.tif 000007
【図６】
2019012367.tif 000008
【図７】
2019012367.tif 000009
【図８】
2019012367.tif 000010
【図９】
2019012367.tif 000011
【図１０】
2019012367.tif 000012
【図１１】
2019012367.tif 000013
【図１２】
2019012367.tif 000014
【図１３】
2019012367.tif 000015
【図１４】
2019012367.tif 000016
【図１５】
2019012367.tif 000017
【図１６】
2019012367.tif 000018
【図１７】
2019012367.tif 000019
【図１８】
2019012367.tif 000020
【図１９】
2019012367.tif 000021