二科目仕訳ファイルを一科目仕訳ファイルに変換する 12


1.変換手順

1.仕訳ファイル(XJ_hhhh)の全ての仕訳を抽出し仕訳抽出ファイル(WXJ_hhhh)を作成します(註1)
2.スクリプト「Cvt7JEnt2to112WXJ」を実行し仕訳抽出ファイルから変換ファイル(WXJ21_hhhh)を作成します(註2)
3.スクリプト「Del7J12WXJ21_Z」を実行して、変換ファイルに含まれる不要な仕訳を削除します
4.スクリプト「Chg7Ord12WXJ21」を実行して、変換ファイルのタグの並びを変更します
5.変換ファイルのファイル名を仕訳ファイルにリネームします

(註1)仕訳ファイル、仕訳抽出ファイルは二科目仕訳ファイルです
(註2)スクリプト「Cvt7JEnt2to112WXJ」によって作成されたファイル(二科目仕訳ファイルから生成された一科目仕訳ファイル)を、以降、変換ファイルと呼びます


2.仕訳の抽出

仕訳ファイルから仕訳抽出ファイルを作成するには「Sel9MK1XJ2WXJ_SetV」スクリプトを利用します
このスクリプトには、抽出条件を指定するパラメタがあります
仕訳ファイルの全ての仕訳を抽出する場合は、例えば、「Sel9MK1XJ2WXJ_SetV("m","J_M",0,12)」とします
この例では、抽出条件に使用するタグを「経過月("J_M")」とし、経過月がゼロ(開始仕訳)から12(か月目)までの仕訳を抽出対象としています
このスクリプトを実行すると仕訳抽出ファイル(WXJ_hhhh)が作成されます(アンダーバー以下のhhhhにはプロファイルで指定した法人番号が入ります)、最初のパラメタの「m」は仕訳抽出ファイルを新規に作成するときに指定します−既存の仕訳抽出ファイルに追加するときは「a」を指定します


3.スクリプト「Cvt7JEnt2to112WXJ

仕訳抽出ファイル(WXJ_hhhh)から変換ファイル(WXJ21_hhhh)を作成するスクリプトです
このスクリプトにはパラメタがないので、「Cvt7JEnt2to112WXJ()」とします

変換ファイル作成のロジックの概要は以下のとおりです
---------------------------------------------------------------------------
1.仕訳定義ファイルからタグ名配列dを作成する
2.仕訳抽出ファイルの仕訳を1件読み込み、タグ(フィールド)の値を配列yに展開する
3.配列dに"J_Date"が存在するか調べ、存在すればその順位k(何番目か)を得る
4.y[k]を文字列fooに追加する
5.二科目仕訳で利用できる全てのタグについて3.を繰り返す(註)
6.貸借区分など一科目仕訳に特有のタグを文字列fooに追加し、変換ファイルに文字列fooを書き出す
7.上記3.〜6.の処理を借方と貸方それぞれに行い、二科目仕訳一行から一科目仕訳二行を作成する
8.上記の処理を仕訳抽出ファイルの全仕訳に対して行う
--------------------------------------------------------------------------

(註)
スクリプトは仕訳ファイルに定義されているタグの有無を調べ該当するものの値を一科目仕訳として紡いでいきます
出来上がる一科目仕訳のタグの並びは以下のようになります(スクリプト記載の順序通り、該当なければスキップされます)
No.3・4 はスクリプトが値を与えます、ユーザ定義タグはスキップされます(一科目仕訳には含まれないので注意!)
「展開一番」Ver.7.06 以降、変換されたタグの並びをログ(OpeLog_hhhh)に出力するようにこのスクリプトの仕様を拡張しています

No. 借方仕訳の並び 貸方仕訳の並び
1. J_Date J_Date
2. J_M J_M
3. J_XDC...「D」 J_XDC...「C」
4. J_XDCNo...自動付番 J_XDCNo...自動付番
5. J_AU J_AU
6. J_DD J_CD
7. J_DA J_CA
8. J_DX J_CX
9. J_DCF J_CCF
10. J_DP J_CP
11. J_CA J_DA
12. J_DAmt J_CAmt
13. J_DAmtS J_CAmtS
14. J_DTax J_CTax
15. J_DDD J_CDD
16. J_DRem J_CRem
17. J_SlipNo J_SlipNo
18. J_AutoNo J_AutoNo
19. J_RemCode J_RemCode
20. J_Rem J_Rem
21. J_CustCode J_CustCode
22. J_FlgX J_FlgX
23. J_FlgJ J_FlgJ
24. J_FlgD J_FlgD
25. J_FlgS J_FlgS


4.スクリプト「Del7J12WXJ21_Z」

変換ファイルから不要な仕訳を削除するスクリプトです
二科目仕訳から一科目仕訳を作成するロジックでは、意味のない仕訳が作成されることがあります
例えば、{販売費 420/預金 630}{管理費 210/諸口 0}のような場合、一科目仕訳として「諸口 0(貸借区分:貸方、相手科目:管理費)」が作成されますが、この仕訳は必要ありません
一科目仕訳で運用するするときは、金額ゼロの仕訳は必要ないので、この仕訳を削除します
削除対象ファイルは変換ファイル(WXJ21_hhhh)で、ゼロ仕訳削除後のファイルは「WXJ21_DelZ_hhhh」です
このスクリプトにはパラメタがあります、金額欄のタグ位置を指定します(ゼロからカウントします)
一科目仕訳の自金額(タグ名は「J_XAmt」)に対応するタグが八番目であれば、「Del7J12WXJ21_Z(7)」とします
このスクリプトは実行後、削除した金額ゼロの仕訳件数を出力します


5.スクリプト「Chg7Order12WXJ21」

変換ファイルのタグの並びを変更するスクリプトです
対象ファイルは変換ファイルで、並び替え後のファイルは「WXJ21_Ord_hhhh」です
したがって、スクリプト「Del7J12WXJ21_Z」を実行したときは、
「WXJ21_DelZ_hhhh」ファイルを「WXJ21_hhhh」ファイルにファイル名を変更しておく必要があります
ファイル名を変更する方法は幾つもありますが、ここでの説明は省略します
「展開一番」にも「ReN12t1F」というスクリプトがあります(このスクリプトはファイルに付加されている法人番号を自動で引き継いでくれます)
「Chg7Order12WXJ21」このスクリプトには二つのパラメタがあります
第一のパラメタで、変換ファイルの先頭から幾つのタグを固定するかを指定し、第二のパラメタで、その次に配置するタグの順位を指定します
例えば、現在のタグの並びが「t1,t2,t3,t4,t5・・・」であるとき、パラメタを(2,1)とすると、固定されるタグは、t1とt2の二つ、その次に配置するタグはt4となるので(固定されたタグの次をゼロとしてカウントするので、t3はゼロ、t4は1、t5は2となり、パラメタ指定のタグはt4となります)、変換ファイルのタグの並びは、「t1,t2,t4,t3,t5・・・」となります
このスクリプトを複数回実行すれば、タグの並びを自由に変更することが出来ます(ユーザスクリプトを作成しておけば一回実行するだけで済みます)





Last Update 2022/01/22