データテーブルにおけるカラム値の自動設定 [OS]ALL
[リリース] 6.11以降
[キーワード] af, frame, datatable, add, row
[質問]
FRAMEエントリのデータテーブルオブジェクトは、実行時[行の追加]ができます。 [回答]
データテーブルで、[MODEL SCL] に以下のプログラムを記述すれば、このようなカラム値の自動的な計算ができます。 [MODEL SCL] にプログラムを記述する手順を以下に説明します。
(プログラム) dfinit: /* すべての行を表示する前の初期化 */ infolist=makelist(); rc=insertc(infolist,' ',-1,'new'); dsid=open('work.test','i'); /* 設定するデータセット名 */ return; init: /* 各行を表示する前の初期化 */ call send(_self_,'_get_record_info_',infolist); newrow=getnitemc(infolist,'new'); /* 新しい行の場合 */ if newrow= 'Y' then do; rc=varstat(dsid,'col1','max',initval); /* 最大値を入手 */ initval+1; col1=initval; /* COL1 は設定するカラム名 */ end; return; dfterm: /* オブジェクト終了時の処理 */ if infolist then infolist=dellist(infolist); if dsid then dsid=close(dsid); return; |