<%@ LANGUAGE=JAVASCRIPT%><% //************************************************************ // 初期化など //************************************************************ //------------------------------ // param2field のキーと値をひっくり返す //------------------------------ var field2param = new Object(); for( var key in param2field ) { field2param[ param2field[key] ] = key; } //------------------------------ // 省略形と年号 //------------------------------ var KanjiYear = load_KanjiYear( YEAR_CSV ); //------------------------------ // フォーム変数 //------------------------------ var param = new Object(); for( var key in form2param ) { param[ form2param[key] ] = or( request(key), "" ); } var g_companyColumnEnabled = true; if ( '' == param[ 'Message' ] ) { g_companyColumnEnabled = false; } //------------------------------ // データベース //------------------------------ var db = database('aqua'); var rs = recordset(); //************************************************************ // メイン処理 //************************************************************ //------------------------------ // 該当件数を調べる //------------------------------ var HitCount = get_HitCount( param ); %><% //------------------------------ // 降順の年度ごとの表示 //------------------------------ var YearList = get_YearList( param ); for( var i = 0; i < YearList.length; ++i ) { var Year = KanjiYear[ YearList[i] ]; %><% param['Year'] = YearList[i]; rs = open_SekouList( param ); for( ; ! rs.EOF; rs.moveNext() ) { var Sekou = rs; %><% } rs.Close(); %><% } %><% db.Close(); function load_KanjiYear( fname ) { var arr = new Array(); var buf = file( fname ); for( var i = 0; i < buf.length; ++i ) { buf[i].search( /^([^,]*),(.*)$/ ); var alpha, kanji; alpha = RegExp.$1; kanji = RegExp.$2; alpha = ltrim(rtrim(alpha)); kanji = ltrim(rtrim(kanji)); arr[ alpha ] = kanji; } return arr; } function get_HitCount( param ) { var n; var sql, where; where = build_where(param); sql = sprintf("SELECT A FROM T_Sekou %s;", where); rs.Open( sql, db, 3, 3 ); n = rs.RecordCount; rs.Close(); return n; } function get_YearList( param ) { var arr = new Array(); var sql, where; arr = new Array(); where = build_where(param); sql = sprintf("SELECT %s AS Year FROM T_Sekou %s GROUP BY A ORDER BY A DESC;", param2field['Year'], where); rs.Open( sql, db, 3, 3 ); for( ; ! rs.EOF; rs.moveNext() ) { array_push( arr, rs('Year').Value ); } rs.Close(); return arr; } function open_SekouList( param ) { var field = build_select_field( field2param ); var where = build_where( param ); var sql = sprintf("SELECT %s FROM T_Sekou %s ORDER BY ID;", field, where ); rs.Open( sql, db, 3, 3 ); return rs; } function build_where( param ) { var arr = new Array(); for( var name in param ) { var value = param[name]; var fmt = param2where[name]; if( fmt != "" && value != "" ) { value = sql_escape(value); array_push( arr, sprintf(fmt, value, value, value, value) ); } } return ( arr.length == 0 ) ? "" : "WHERE " + arr.join(" AND "); } function build_select_field( field2name ) { var arr = new Array(); for( var field in field2name ) { var name = field2name[field]; var buf = sprintf("%s AS %s", field, name ); array_push( arr, buf ); } return arr.join(","); } %>