試算表 20

スクリプトは、「#---」で挟まれた部分です(「#」以降は、Rubyではコメントとして処理されます)
スクリプト先頭の番号(1:など)は、説明のためのもので、実際には記述しません
以下の例では、試算表作成のスクリプトは、開始残高(この例では「期首残高」)と期間取引高の二つに分かれていますが、一つに纏めることもできます
試算表は11行のスクリプトで作成することができます(纏める場合は最初のおまじないは1つでよい)
試算表作成スクリプトに適当な名前(例えば「TB.rb」)を付け、Ruby実行環境から「ruby TB.rb」と入力すれば試算表ファイルが作成されます
試算表ファイルから決算書を作成する方法については、アウトプット処理を参考にしてください
月次推移表の作成方法については、項を改めて解説します

1.開始残高の計算

#---------------------
1:require "t1"
2:MkF1YA2ZTB()
3:Sel9MA1XJ2WXJ_SetV("m","J_M",0,0)

4:
MkF1WXJ2WSumDC()
5:
Pst1WSumDC2ZTB(0,0)
6:Cal7Bal12ZTB(3)
#------------------------

1:「展開一番」のスクリプトを利用するためのおまじない
2:科目マスタから空の試算表を作成

3:経過月がゼロ(期首繰越残高)の仕訳を抽出
4:3の仕訳を科目別に集計
5:試算表ファイルの開始残高欄に4:を転記
6:試算表ファイルの開始残高欄の残高欄を計算

2:空の試算表ファイルは、科目マスタから作成され、開始残高借方欄以降の9つのフィールドにはゼロが埋められます

3:の「J_M」は「経過月」のタグ名です、期首残高の仕訳は「経過月」がゼロと決められいるので、抽出範囲はゼロからゼロになります、抽出された仕訳は「WXJ」というファイルに書き出され、以後はこのファイルが処理の対象になります
なお、タグ名はダブルコーテーションで囲むことになっています
パラメタの最初の「"m"」は「WXJ」というファイルを新規に作成する(既存のファイルがあれば削除する)ことを指示しています
4:抽出された仕訳の科目別貸借別の合計金額を計算します
5:試算表ファイルのフォーマットは、以下のように決められています
科目Code,科目名,貸借区分,開始残高欄(Dr,Cr,Bal),期間取引高欄(Dr,Cr,Bal),繰越残高欄(Dr,Cr,Bal)
5:のスクリプトは、科目別に集計された金額を試算表ファイルに転記するものですが、転記場所と転記後の科目別集計ファイルの処理を指定する仕様になっています
第一パラメタのゼロは、転記する場所が開始残高欄であること、第二パラメタのゼロは、ワークファイルを削除しないで残すことを、それぞれ指定しています
6:のスクリプトは試算表ファイルの残高欄(Bal)を計算するものです、残高欄は開始残高、期間取引高、繰越残高それぞれにあるので、開始残高の残高欄である3を指定しています

2.期間取引高の計算

#------------------------------------
1:require "t1"
2:
Sel9MA1XJ2WXJ_SetV("m","J_Date",20030401,20030630)
3:
MkF1WXJ2WSumDC()
4:
Pst1WSumDC2ZTB(1,0)
5:
Cal7Bal12ZTB(6)
6:
Bal7CgF12ZTB()
#-----------------------------------------

1:「展開一番」のスクリプトを利用するためのおまじない
2:4月から6月の仕訳を抽出
3:2:の仕訳を科目別に集計
4:試算表ファイルの期間取引欄に3:を転記
5:試算表ファイルの期間取引欄の残高欄を計算
6:試算表ファイルの繰越残高欄の各欄を計算

2:仕訳抽出の範囲を第一四半期としています、抽出キーとして会計日(タグ名は「J_Date」をt使用しています、範囲指定は会計日のため yyyymmdd で指定しています
4:は開始残高欄の計算と同じですが、転記場所が期間取引高欄のため、第一パラメタを1としています
5:も上記と同様で、残高計算欄が期間取引欄のため6を指定しています
6:のスクリプトは、繰越残高欄を計算するもので、開始残高欄と期間取引高欄の各欄を金額を合計します

3.変数の利用

試算表作成のスクリプトを一つに纏めた例です
仕訳抽出範囲を指定する部分に変数を使用し、スクリプト冒頭で範囲を指定できるようにします
この例では、変数に値をセットする式を使用しているので、「展開法」によるスクリプトの作成に該当します、def...endによるメソッドの作成と、その実行コードが必要になります


#--------------------------------------------------------------
def TB()
$fBDate="20030331" #開始残高計算開始日をセット(通常期末日)
$tBDate="20030331" #開始残高計算終了日をセット(この日が開始残高になる)
$fTDate="20030401" #期間計算の開始日(開始残高計算終了日の翌日)
$tTDate="20040331" #期間計算の終了日(この日が繰越残高になる)

require "t1"
MkF1YA2ZTB()
Sel9MA1XJ2WXJ_SetV("m","J_Date",$fBDate,$tBDate)

MkF1WXJ2WSumDC()
Pst1WSumDC2ZTB(0,0)
Cal7Bal12ZTB(3)

Sel9MA1XJ2WXJ_SetV("m","J_Date",$fTDate,$tTDate)
MkF1WXJ2WSumDC()
Pst1WSumDC2ZTB(1,0)
Cal7Bal12ZTB(6)
Bal7CgF12ZTB()
end
TB()

#-----------------------------------------------------------------------


Last Update 2022/01/19