質問箱 No.68: 職員の履歴管理表に行を追加したい

  ◆ 質問箱 No.68 質問者: 西村 重幸    1998年01月 192号 P.18
      ◆ 質問箱 目次へ
No.68-1    職員の履歴管理表に行を追加したい 回答者
  高橋  周助
1998年02月
193号 P.20
  ◆ No.68(1998年 1月号)の回答-1

<注>   『質問箱』中の完成例は、間違いだとの判断で、上記の通りにしました。 すなわち、表1中の  9年7月1日  特昇  の行と、9年10月1日   昇給  の行とが混合してしまって、9年10月1日  特昇  の行になってしまった、との判断です。

  1 <RIREKI1>
  2 /********* A.初期設定******************************/
  3         LET X1=9;   LET X2=12;  LET X3=8; 
  4         LET X4=X1;  LET X5= 4;  LET X6=1; 
  5 /********* B.『DATA』バインダーのコピーを作る。***************/
  6         CPP;DATA;WK/D;Y;
  7 /********* C. 級号の欄が空欄なら、直前行の級号データをコピーする。*******/
  8         LET V21="";
  9         FOR X11=1 TO BINDER("WK");
 10           G;WK/%X11;
 11           FOR X12=H TO T;
 12               LET V22="";  LET V22=[X12,@級号  ];
 13               IF V22="" THEN LET [X12,@級号  ]=V21;
 14               LET V21=[X12,@級号  ];
 15           NEXT;
 16           P;WK/%X11;
 17         NEXT;
 18 /********* D. 適用日以降の行のみを検索する。************************/
 19   CS;WK;@年 =%X4 & @月 <=%X5) ;;WK2/D;
 20           IF RESULT(1)=0 THEN GOTO $終;
 21 /********* E. 新月額を書き込む。************************************/
 22         MPU;WK2;PAY9;@級号 ;;@級号 ;;S@月額 =@月額 ;E;Y;
 23 /********* F. 事項・年・月・日 欄を書き替え。**************************/
 24         FOR X11=1 TO BINDER("WK2");
 25           G;WK2/%X11;
 26           FOR X12=H TO T;
 27             LET V21=[X12,@年 ]+"年"+[X12,@月 ]+"月"+[X12,@日 ]+"日";
 28             LET [X12,@事項 ]="給与条例改定(平成"+V21+"から適用)";
 29             LET [X12,@年   ]=NUM$(X1);
 30             LET [X12,@月   ]=NUM$(X2);
 31             LET [X12,@日   ]=NUM$(X3);
 32           NEXT;
 33           P;WK2/%X11;
 34         NEXT;
 35 /********* G. 元バインダへ アペンド *********************************/
 36         APD;WK2;DATA;Y;
 37 /********* Z. 終わり ***********************************************/
 38 $終:STOP;

<付記>   私も、埼玉県のある外郭団体の給与計算に係わってきました。年末最も忙しい時期に給与改定があり、遡って支給済み給与との差額を計算し、年末調整までもやらねばなりません。単純に給与の差額だけなら我慢もできますが、次のようなもろもろをすべて計算するとなると、発狂寸前です。

月毎の給与・賞与について、次の再計算
   各種  手当/厚生年金・健康保険・雇用保険の保険料/
   各種  親睦会・共済会・互助会の会費/県からの出向職員固有の計算等々すべて、月毎の給与・賞与の額に応じて、それぞれの体系にしたがって算定されます。

  こんな時、つくづく設計段階の作業が大事だと思い知らされます。特に、他人が作ったシステムを引き継いだ場合は、その基本思想がはっきりしないと、手の付けようがなくなります。

  本来のPIPSの流儀は、『まず、キー入力してしまえ。その後に何をやるべきかを考えれば良い・・・・カンタンカンタン』と、いつも教えられてきましたが、上記のような業務となると、根本から考えを変えねばなりません。
  処理結果のチェック、障害処理、オペレーションミスに対するリカバリ、仕事の流れの変化に伴うプログラム変更、等々をスムーズにこなすためには、ソフトウェアシステム全体が、いつでも明瞭に見渡せることがどうしても必要です。

  従って、データの構造設計、システムの構造設計、プログラムの構造設計、の段階をきちんと経ていないと、典型的な『スパゲッティ システム』『スパゲッティ プログラム』になってしまいます。ただ、やみくもにプログラムを書き出すと、後で大変苦労を背負い込むことになります。

  こうなると、今まで、一口に『PIPS』、『PIPS』と言って来ましたが、まるで人格の違った2つのPIPSが、同居している状態ではないかと、気がつきます。---本来のPIPSと、そうでないPIPSと。
  そして、本来のPIPSでないPIPSは、果たして良いソフトか? または、良い使い方か? という疑問が湧いてきます。
戻る