ValenceのAppBuilderアプリは、アプリ変数を使用することで様々な機能制御が行えます。
Valenceがバージョンアップする毎に、アプリ変数で制御できる機能は増えています。
Tipsでは、アプリ変数で制御できる機能について、複数回にわたってご紹介をしていきます。
第1回では、アプリ変数の追加方法/設定方法をご紹介します。
Valence AppBuilderのアプリ変数とは?
アプリ変数は、AppBuilderアプリで使用できる独自の変数です。
AppBuilderアプリ開発者自身で追加することができます。
アプリ変数を利用することで、AppBuilderアプリでウィジェットを制御したり、アプリ内の機能を制限/制御することができます。
アプリ変数の追加方法
AppBuilderのアプリ変数設定画面は、アプリケーション編集画面のアプリ変数アイコンから呼び出せます。 AppBuilderのアプリ変数設定画面では、右上の「Add」ボタンをクリックすることでアプリ変数を追加することができます。
追加したアプリ変数は、初期値「initial Value (Optional)」やURLパラメータ「Pull from URL Parameter」でアプリ起動時に設定することができます。
アプリ変数の値 変更方法
AppBuilderアプリ変数の値を変更するには、以下の方法があります。
- 各イベントの「アプリ変数の設定」を使用して変更する方法
- 「スクリプトの実行」でsetAppVarを使用して変更する方法
- 「RPG」のSetResponse または、SetAppVarを使用して変更する方法
各イベントの「アプリ変数の設定」を使用して変更する方法
AppBuilder「動作内容」の各イベント設定で、「アプリ変数の設定」からアプリ変数の値を設定できます。
固定値を値に記述したり、イベントを設定するウィジェットによっては、データソースのフィールドの値をアプリ変数に設定することも可能です。
「スクリプトの実行」でSetAppVarを使用して変更する方法
「スクリプトの実行」からsetAppVarを使用して、アプリ変数を変更することができます。
例) setAppVar
setAppVar('アプリ変数名', '値');
「RPG」のSetResponse または、SetAppVarを使用して変更する方法
各RPGプログラム側でSetResponseまたは、SetAppVarを使用してアプリ変数を変更することも可能です。
完全フリーフォーマットRPG (QRPGLESRC)
例) EXNABBTNテンプレート
SetResponseの例
**free
/copy qcpylesrc,vvHspec
/include qcpylesrc,vvNabBtn
// --------------------------------------------------------------
// program start
// --------------------------------------------------------------
Initialize();
Process();
CleanUp();
*inlr=*on;
// --------------------------------------------------------------
dcl-proc process;
SetResponse('success':'true');
SetResponse('appVar':'hideDownloadButton':'true');
end-proc;
/include qcpylesrc,vvNabBtn
例) EXNABSTARTテンプレート
SetAppVarの例
**free
/copy qcpylesrc,vvHspec
/define nabStartup
/include qcpylesrc,vvNabTmpl
// --------------------------------------------------------------
// program start
// --------------------------------------------------------------
Initialize();
Process();
CleanUp();
*inlr=*on;
// --------------------------------------------------------------
dcl-proc Process;
if gUserId < 1005;
SetAppVar('hideDownloadButton':'true');
endif;
end-proc;
/include qcpylesrc,vvNabTmpl
固定フォーマット混合 フリーフォーマットRPG(QRPGLESRC2)
例) EXNABBTNテンプレート
SetResponseの例
/copy qcpylesrc,vvHspec
/include qcpylesrc,vvNabBtn
** --------------------------------------------------------------
** program start
** --------------------------------------------------------------
/free
Initialize();
// place your code within the Process procedure...
//
Process();
CleanUp();
*inlr=*on;
/end-free
** --------------------------------------------------------------
p Process b
d pi
/free
// send back a response...
//
SetResponse('success':'true');
SetResponse('appVar':'hideDownloadButton':'true');
/end-free
p e
/include qcpylesrc,vvNabBtn
例) EXNABSTARTテンプレート
SetAppVarの例
/copy qcpylesrc,vvHspec
/define nabStartup
/include qcpylesrc,vvNabTmpl
** --------------------------------------------------------------
** program start
** --------------------------------------------------------------
/free
Initialize();
// place your code within the Process procedure...
//
Process();
CleanUp();
*inlr=*on;
/end-free
** --------------------------------------------------------------
p Process b
d pi
/free
if gUserId < 1005;
SetAppVar('hideDownloadButton':'true');
endif;
/end-free
p e
/include qcpylesrc,vvNabTmpl
ウィジェットにアプリ変数をリンクする方法
アプリケーション編集画面では、各ウィジェットのプロパティにアプリ変数をリンクすることができます。アプリ変数をリンクさせることで、ウィジェットの動作/表示を制御することができます。
アプリケーション編集画面でウィジェットを選択後、表示されるアイコンから「リンク」アイコンをクリックすることで、「アプリ変数にリンク」画面に移動します。
「アプリ変数にリンク」画面では、ウィジェットのプロパティにアプリ変数を設定できます。
おわりに
次回のTipsでは、Gridウィジェットにアプリ変数をリンクして制御できる機能について紹介します。