SAMPLE2701

複数DBからの値を同じブロックに出力

URLコピー

複数DB接続で異なるデータベースから取得したテーブルの値を、同じブロックに出力する方法


開発のポイント
TALONではJavaScriptエンジンを使用して以下のような機能を設定する事が可能です。

1)指定した複数DB接続のデータベースに対してSQLを実行する事ができます。

2)SQL(SELECT文)で取得した値を、指定したブロックの値として転記する事ができます。
  この機能を利用し、複数DB接続先のデータを画面に表示します。


サンプルソース(検索後JavaScriptで複数DB接続先のテーブルを参照し同一レコードとして画面に表示する)
function exec() {

  //◆値をセットした画面のブロック情報を取得(ブロック1)
  var blockSelectMap = TALON.getBlockData_Card(1);

  if(blockSelectMap != null){
      //◆複数DB接続で設定した接続先でデータを抽出(SELECT文)を実行
      var sql = "SELECT Name FROM TestCollection WHERE ITEM_CODE = '" + blockSelectMap['ITEM_CODE'] + "' ";
      var selectList = TalonDbUtil.select( TALON.getOtherDBConn("1") , sql );
      var selectMap = selectList[0];

      //◆SELECTで取得したデータとブロックのデータで、画面に出力したデータを作成
      var margeData = {
        'ITEM_CODE'     : blockSelectMap['ITEM_CODE'],
        'ITEM_NM'       : blockSelectMap['ITEM_NM'],
        'SMPL_ITEM_KBN' : blockSelectMap['SMPL_ITEM_KBN'],
        'ITEM_SIZE'     : blockSelectMap['ITEM_SIZE'],
        'SMPL_SIZE_KBN' : blockSelectMap['SMPL_SIZE_KBN'],
        'NAME'          : selectMap['Name']
      };
      var arr = [margeData];

      //◆作成した出力用のデータをブロックにセットする(ブロック1)
      TALON.setSearchedDisplayList(1,arr);
  }
}
//処理開始
exec();