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は、果たして良いソフトか? または、良い使い方か? という疑問が湧いてきます。
|
|