|
|
データテーブルにおけるカラム値の自動設定 [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;
|
|||||