過去の桐井戸端BBS (桐ver.9)
20057 CSVファイルの書き出しで個人別データに事業所別データを加えて書き出したい 牧野 2003/04/19-16:34
こんにちわ、お教えください。

 社会保険事務所に賞与のデータをフロッピーディスクにCSVファイルで個人別書き出し
提出したいのですが、その際に事業所別にいくつかのデータを加えなければなりません。

 ところが、CSVで書き出すと個人別データは何とか指定方式で作成できるようなりましたが、
会社データの付け方が上手くいきません。

 個人別に作成したCSVファイルを読んで、その先頭にいくつかの会社データを追加することは可能ですか?

 よろしくお願いします。

20058 Re:CSVファイルの書きだし 宮城 2003/04/19-17:19
記事番号20057へのコメント
牧野さん、こんにちは。

素直に読むと、個人別データレコードの前に、
会社データ数レコードをくっつけた形で提出せよと求められているようですね。

個人別データ表の CSV書き出し。
会社データ表の CSV書き出し。
当然に二つのファイルになっているはずですが、
なんらかのテキストエディタ(Windows添付の「メモ帳」を例示するとクレームがつきそうですが、
よほどの大会社でない限り「メモ帳」で十分だと思います。)で会社データを「コピー」して個人データの先頭に「貼り付け」。

これで問題なく可能なはずですが・・・。

どう「上手くいかないか」をお書きにならないとこれ以上はちょっと・・・。

20064 確認>「先頭に」の意味 佐田 守弘 2003/04/19-22:31
記事番号20057へのコメント
牧野さん
>個人別に作成したCSVファイルを読んで、その先頭にいくつかの会社データを追加
>することは可能ですか?
ここでいう「先頭に」とは、次のどちらの意味でしょうか。
@データファイル全体の先頭、つまり
 company  ← (会社情報のデータ)
 abc,111,efghi ← (故人のデータ)
 cde,222,vwxyz

A各レコードの先頭の先頭、つまり
 company,abc,111,efghi 
 company,cde,222,vwxyz 

宮城さんは上記の@と理解された様ですが、私はAの方と思ったのですが。
この場合だと、予め会社のデータも元の表に入れておかなければなりません。

●印字コマンドで書き出す方法
ちょっと高等手段ですが、印字コマンドを使えば、どの様な形式のデータでも自在に書き出す事が可能です。

佐田守弘(KS-00119)
20066 Re:確認>「先頭に」の意味 悲しげ 2003/04/19-22:44
記事番号20064へのコメント
最初の方だとして、

>●印字コマンドで書き出す方法
>ちょっと高等手段ですが、印字コマンドを使えば、どの様な形式のデータでも
>自在に書き出す事が可能です。

一括処理/印字コマンドが使えなければ、2表を使って「書き出し」だけでも同等の結果は得られそうです。
例えば、はじめに会社用の表からそれなりの項目をCSV書き出し。
この時、「追加」等のパラメータは無指定。
次に、個人用の表から、CSV書き出しをする際にパラメータとして「追加」指定する。

20070 Re:CSVファイルの書きだし 通りすがり 2003/04/20-00:05
記事番号20057へのコメント
具体的なデータを示して下さい。
(実名でなくダミーで良いですよ)
表データが「●●」とあって、これを「××」と出力したいなどと。

憶測が憶測をよんで・・・・ツリーが長くなる。(T_T)


20075 憶測>3つ目の解釈 佐田 守弘 2003/04/20-15:44
記事番号20066へのコメント
牧野さん

悲しげさんのコメントを見て、もう1つの「憶測」の可能性が出て来ました。
 >一括処理/印字コマンドが使えなければ、2表を使って「書き出し」だけ
 >でも同等の結果は得られそうです。

つまり個人と会社のデータは別の表になっていて、
これをつなぎ合わせて出力するという意味とも解釈できますね。

この場合には結合表を使って1つの表にデータをまとめてから、
CSVファイルに出力すればよいでしょう。

佐田守弘(KS-00119)

20071 csvデータ仕様について ruby 2003/04/20-01:45
仕事上で私も関係しているので、
横やりを入れますね。
以下がCSVデータ("1:"等はレコードの番号を解りやすいように
付けてあるものなので、実際のデータファイルにはありません。
念のため..)

1:01,アアカ,001,20030420,22223↓
2:[kanri]↓
3:,01↓
4:01,アアカ,01234,012,3456,東京都千代田区1234,会
  ,代表者名,012-012-0123↓
5:[data]↓
6:22657041,01,アアカ,001234,5,361008,7,150706,ナガノ タロウ
  ,長野 太郎,1,1230000,0000000,1230000,,,↓
7:   〃
8:   〃
[EOF]

ごらんのように、1行目から4行目までが会社名等を表すヘッダの部分。
5行目に、以降がデータであることを示す[data]の記述。
6行目以降が、従業員の申請データ(ちなみに6行目は標準賞与額の場合)
社会保険庁では、それぞれ
1:FD管理レコード
2:事業所識別符号
3:事業所管理レコード(事業所数)
4:事業所管理レコード
5:データ識別符号
6:データレコード
と呼んでいるようです。
詳しくは、
http://www.sia.go.jp/outline/iryo/fd/index.htm

さて、桐での処理ですが、NO.20064 で佐田さんがおっしゃっているように
印字コマンドを使うのがよいのではないでしょうか。

20074 ヘッダ等があり複数行に渡るデータの読み書き 佐田 守弘 2003/04/20-15:36
記事番号20071へのコメント
rubyさん
書かれているデータの形式をいうならば、表題に書いたように、
データヘッダやフッタがあり、明細データが複数行から構成される
テキストデータという事になります。

これ以外にも例えばJICSTで科学技術文献データをダウンロードしたり、
PATRISでダウンロードした特許データなどがその様な形です。

●印字コマンド
この様な1レコードが1行ずつに単純にならんでいる一般的なCSVデータ
以外の形式のデータを、桐から出力しようとすると、印字コマンドを
使う必要があります。

印字コマンドとは、元来、コマンド以下に記述した値をプリンタに送って
印刷するためのコマンドでした。現在ではプリンタに直接出力する機能は
なくなり、ファイルに出力する機能だけになっています。

印字コマンドを使ったファイル出力では、出力したい順序に印字コマンドを
記述するだけです。
表全体のデータを出力する部分は、繰り返しコマンドを使って、表のデータ行を1行ずつ進めながら、
1項目ずつ印字コマンドで出力します。

記述するコマンドの行数が多くなりますが、書いた通りのデータが出力できます。

ちなみに、htlmファイルを桐から出力する場合にも、htmlファイルの形式に
合わせたデータを印字コマンドで出力すれば可能になります。

●ファイル入力コマンド
一方、この様なデータを桐に読み込むには、ファイル入力コマンドを使います。
ファイル入力では、まず、ファイル入力開始コマンドで、読み込むテキストファイル名を指定して、開きます。
その後、ファイル入力コマンドで1区切りずつ、ないしは1行ずつ読み込んで、変数に値を取り込みます。
そして最後にファイル入力終了コマンドで、テキストファイルを閉じます。

読み込む対象のテキストファイルのデータ形式が分っていれば、ファイル入力コマンドを使って、
不用な部分を読み飛ばし、必要な部分を取り込んで必要に応じて
それらをつなぎ合わせて、表の中に書き込んで行きます。

このコマンドも実際に使おうとすると、難しいというより大変に面倒ではありますが、
複雑な形式のテキストデータの読み込みが可能です。

佐田守弘(KS-00119)
20076 印字コマンドですね 牧野 2003/04/20-17:13
記事番号20074へのコメント
 ありがとうございました。

 印字という方法を知りませんでした。
ヘルプを参考に印字の一括処理に挑戦してみます。

20079 Re:csvデータ仕様について 悲しげ 2003/04/20-18:22
記事番号20071へのコメント
rubyさん、
挙げられたデータについて、一括処理(印字コマンド)での記載例を
書いてあげてはどうでしょう?

20089 Re:csvデータ仕様について ruby 2003/04/21-11:17
記事番号20079へのコメント
 rubyです。
 すっかり春ですね。
 長野の桜は満開です。

 このツリーは No.20070[悲しげ]さんへのコメントのつもりだったんですが
私のミスで、新規発言になってしまいました。
読みにくくてごめんなさい。

さて、一括処理を作ってみました。

「以下一括処理」
表 "FD管理DATA"
書き出し CSV,"SHYOFD01",*

印字開始 "SHYOFD01.CSV",追加
印字 "[kanri]"
印字 ",01"
印字終了 改頁=しない
表 "事業所DATA"
書き出し CSV,"SHYOFD01",追加,*

印字開始 "SHYOFD01.CSV",追加
印字 "[data]"
印字終了 改頁=しない
表 "賞与支払届DATA"
書き出し CSV,"SHYOFD01",追加,*

「一括処理終わり」

テーブルは次の3つ

FD管理DATA.tbl
[郡市区記号][事業所記号][FD通番][作成年月日][代表届書コード]

事業所DATA.tbl
[郡市区記号][事業所記号][事業所番号][親番号(郵便番号)]
[子番号(郵便番号)][事業所所在地][事業所名称][事業主氏名][電話番号]

賞与支払届DATA.tbl
[届出コード][郡市区記号][事業所記号][被保険者整理番号]
[元号(生年月日)][年月日(生年月日)][元号(賞与支払年月)]
[年月日(賞与支払年月日)][被保険者氏名(カナ)][被保険者氏名(漢字)]
[種別(性別)][種別(性別)][金銭によるものの額][現物によるものの額]
[合計][予備1][予備2][作成原因]

3つとも用意して、一括処理を実行すると、結果として以下のような
SHYOFD01.csv
ができあがります。

「以下csvファイル」
01,アアカ,001,20030701,22223
[kanri]
,01
01,アアカ,01,160,0023,東京都新宿区西新宿9−99−9,桐BBS株式会社,鈴木 一郎,03-1234-5678
[data]
22657041,01,アアカ,79,5,361008,7,150706,コウネン タロウ,厚年 太郎,1,450000,0,450000,,,
22657041,01,アアカ,80,5,400805,7,150706,ケンポ ジロウ,健保 次郎,1,360000,0,360000,,,
22657041,01,アアカ,81,5,160510,7,150706,ロウドウ サブロウ,労働 三郎,1,582000,50000,632000,,,
「csvファイル終わり」

 今年の4月から賞与を支払っている会社は、すべての従業員の
それぞれの賞与額を社会保険事務所に届け出ることになりました。
給与ソフト側でちゃんと対処してくれればいいのですけれど
そうでない場合は、手書きでの申請になってしまいます。
そこで、牧野さんや私のような担当者は、「何とかならないのか」と、
思い始めている、ちょうどそんな時期で、タイムリーな話題です。
(少人数の申請に対応するソフトは社会保険庁のホームページからDL可能。)

 ちなみに賞与額以外にもほとんどの申請はフロッピーのやりとりで
可能になっていて、その形式は上記CSVファイルの[DATA]以降で
混在するような仕様になっているので、システム化するには、
もうちょっと工夫をする必要があります。
 また、データ数が膨大で複数のFDが必要になる場合
(ほとんどないかな..)の対応もシステムとしては
考えておかなければなりません。

長くなりましたが、参考になれば幸いです。

ruby

20106 ありがとうございます 牧野 2003/04/22-04:29
具体的な一括処理まで教えて頂いてありがとうございました。
印字とCSV書き出しを組み合わせて使えば良いのですね。

20110 結局は何がしたかったのでしょうか 佐田 守弘 2003/04/22-17:40
記事番号20106へのコメント
牧野さん
書き出したいデータ形式についていくつかの憶測が飛び交いましたが、
結局、どの様な形のものを書き出したかったのでしょうか。

過去ログを後から利用する方のために、どのような点が質問事項であり、
結果としてどのような方法で解決できたのかを記録しておいて頂くと有り難いと思います。

また、過去ログを財産として残し、後で活用するためにも、
元コメントに最終的な報告をして頂けますと助かります。

佐田守弘(KS-00119)

管理者の幅田さんに代わりまして、お願い申し上げます。
20112 Re:結局は何がしたかったのでしょうか 牧野 2003/04/22-20:07
記事番号20110へのコメント
佐田さん、コメントが具体的でなく申し訳ございませんでした。
私が必要にしたのは、rubyさんが示したくれた社会保険のFD申請です。

このデータの形式が、データヘッダと、明細データが複数行から構成されるテキストデータ(CSV形式)という表現が
わからずにおりました。
佐田さんのコメントを読んで、表現の仕方を学びました。

データヘッダをつくるのに途方にくれていました。
というのは多数の会社のデータを処理する短期間に処理する必要があるので、
データヘッダーをエディターで書くのは大変だからです。

現在、rubyさんが示してくれた見本を参考に一括処理を記載しておる最中です。

私が分からなかったことは2つです。
一つは、印字コマンドでデータヘッダーを作成すること。
もう一つはテキストデータを事業所ファイルで”追加”し、さらに明細データを”追加”していく発想です。

ありがとうございました。

戻る

戻る