2014年11月11日火曜日

全銀協フォーマット

給与振込データの全銀協フォーマット。

データレコードの次の トレーラレコード、エンドレコードをVBAでコーディングすると、


’トレーラレコード
Print #1, "8";
Print #1, Right("000000" & Mid(Str(振込件数), 2), 6);
Print #1, Right("000000000000" & Mid(Str(振込送金額), 2), 12);
Print #1, Space(101);  

’エンドレコード
Print #1, "9";
Print #1, Space(119)
Close #1


てな感じになる。これで うまくいっていた。

しかし、今月の計算済みデータをお届けしたところ、「送れません」と。
なんでも、「こんど、ネットバンキングに対応したんです」とか。

全銀協フォーマットで作成しているし、問題ないはずだがなあ、また 実際にこれまでは送信できてたんだよなあ、、と思いながら再チェックすると、(秀丸エディタで覗いてみると)、

なんと、
エンドレコードの119個のスペースの後に、改行コードがはいっちゃってます。

そりゃあそうだ、Print #1, Space(119) だもん、改行コード(アスキーコード13)がはいりますわ。
いれたくなけりゃあ Print #1, Space(119); と末尾にセミコロンを記述せねばならん。

まあ、これで うまく送れたんだが、しかしなあ、これまでは、CRコードが入ってても送れてたんですけどね。

受ける側の作法も関係すんですかねえ。

いやまてよ、 CRだけでなく、LFも無理やり送り込んで2バイトにすれば解決したったのかな。

でみ、まあいいか、解決したんだから。




  

0 件のコメント:

コメントを投稿