TOP > Users > ORCA通信アーカイブ > vol.021

 ORCA通信

ORCA通信とはサイズから定期的に発行されるスペック作成のヒントと新規開発されるメニューのご案内です。


 ORCA通信 vol.021(2009/07/24発行)


ORCAユーザーの皆様、こんにちは。
第21回ORCA通信をお届けいたします。

INDEX
[1] 開発情報:バージョンアップ情報
[2] スペック作成のヒント第21回:これは使える!JavaScript 見本はこちら


[1] 開発情報:バージョンアップ情報

主な変更点は以下のとおりです。

・ORCA SpecMaker最新バージョンのインストール
・バグの修正


インストールにはWEBサーバーの再起動が必要です。
実査中のインストールは避けたほうがよいでしょう。
また、通常のバージョンアップ作業は再起動のみの作業ですのでサーバー停止時間は5分程度ですが
今回は再起動以外にも作業させていただくため、サーバー停止時間が30分程度となります。
追ってご担当者様に連絡させていただきますのでメンテナンスのスケジュール調整をお願いいたします。

ご迷惑をお掛けいたしますが何卒よろしくお願いいたします。


[2] スペック作成のヒント
 第21回:これは使える!JavaScript


今回は前回の表側に見出しを表示するJava Scriptにプラスし、より便利な「表頭にも見出しを表示する」Java Scriptをご紹介します。
完成画面はこのような画面です。→こちら

■サンプルスペックの説明

BANK Java Scriptタブに以下を入力します。

var matrix_header_target_id = "Q21000_1xQ21010XC1";

《文字色説明》

Q21000=マトリクス(親)の設問番号
Q21010=マトリクス(子)の設問番号

◆◇◆--------------表側部分の設定 --------------◆◇◆

    var matrix_header_row_span_num = [ 4, 2, 3 ];
    var matrix_header_row_span_label = [ '<TV>フルーツ系</TV>', '<TV>炭酸系</TV>', '<TV>野菜系</TV>' ];
    var matrix_header_row_class_str = "MT MTHR";
    var matrix_header_row_bd_color = "#808080";
    var matrix_header_row_align = "left";
    var matrix_header_row_valign = "middle";

    var matrix_header_row_width = "";

◆◇◆--------------表頭部分の設定 --------------◆◇◆

    var matrix_header_col_span_num = [ 2, 1, 2 ];
    var matrix_header_col_span_label = [ '好き', '普通', '嫌い' ];
    var matrix_header_col_class_str = "MT MTVR";
    var matrix_header_col_bd_color = [ '#F4FDFF', '#EEFCFF', '#F4FDFF' ];
    var matrix_header_col_align = "center";
    var matrix_header_col_valign = "middle";

◆◇◆--------------表肩部分の設定 --------------◆◇◆

    var matrix_header_corner_caption = "<ジュースの種類>";
    var matrix_header_corner_align = "center";
    var matrix_header_corner_valign = "middle";

《文字色説明》

  span_num=見出しの範囲指定(選択肢数)※入力しない場合は[]内には入力しません。
  span_label=見出しに入る文字列
  bd_color=線の色
  caption=表肩に入る文字列
  align=表示位置(横)
  valign=表示位置(縦)

↑↑↑ 変更箇所はここまでです ↑↑↑

function find_parent_obj( obj, nodeName )
{
    if( obj )
    {
        var p_elem = obj.parentNode;
        if( p_elem )
        {
            if( p_elem.nodeName == nodeName )
            {
                return p_elem;
            }
            return find_parent_obj( p_elem, nodeName );
        }
    }
    return null;
}

function init_matrix_header( elem )
{
    var table_elem = find_parent_obj( elem, "TABLE" );
    if( table_elem )
    {
        if( matrix_header_row_span_num.length > 0 )
        {
            var row = 1;
            for( var i = 0; i < matrix_header_row_span_num.length; i++ )
            {
                var row_elem = table_elem.rows.item(row);
                var org_col_elem = row_elem.cells.item(0);
                var col_elem = row_elem.insertCell(0);
                col_elem.className = matrix_header_row_class_str;
                if( matrix_header_row_align != "" )
                {
                    col_elem.align = matrix_header_row_align;
                }
                if( matrix_header_row_valign != "" )
                {
                    col_elem.valign = matrix_header_row_valign;
                }
                if( matrix_header_row_span_num[i] > 1 )
                {
                    col_elem.rowSpan = matrix_header_row_span_num[i];
                }
                if( i < matrix_header_row_span_label.length )
                {
                    col_elem.innerHTML = matrix_header_row_span_label[i];
                }
                if( i < matrix_header_row_span_bgcolor.length && matrix_header_row_span_bgcolor[i] != "" )
                {
                    col_elem.style.backgroundColor = matrix_header_row_span_bgcolor[i];
                }
                if( org_col_elem.style.borderColor )
                {
                    col_elem.style.borderColor = org_col_elem.style.borderColor;
                }

                row += matrix_header_row_span_num[i];
            }

            var row_elem = table_elem.rows.item(0);
            if( row_elem )
            {
                var col_elem = row_elem.cells.item(0);
                col_elem.colSpan += 1;
            }
        }

        if( matrix_header_col_span_num.length > 0 )
        {
            var org_row_elem = table_elem.rows.item(0);
            var org_col_elem = org_row_elem.cells.item(0);

            table_elem.insertRow(0);
            var new_row_elem = table_elem.rows.item(0);
            if( org_row_elem.className != "" )
            {
                new_row_elem.className = org_row_elem.className;
            }
            if( org_row_elem.style.border )
            {
                new_row_elem.style.border = org_row_elem.style.border;
            }
            if( org_row_elem.style.borderColor )
            {
                new_row_elem.style.borderColor = org_row_elem.style.borderColor;
            }

            var new_col_elem = new_row_elem.insertCell(0);
            new_col_elem.className = org_col_elem.className;
            new_col_elem.colSpan = org_col_elem.colSpan;
            new_col_elem.rowSpan = org_col_elem.rowSpan + 1;
            new_col_elem.innerHTML = org_col_elem.innerHTML;
            if( org_col_elem.style.backgroundColor )
            {
                new_col_elem.style.backgroundColor = org_col_elem.style.backgroundColor;
            }
            if( org_col_elem.style.borderColor )
            {
                new_col_elem.style.borderColor = org_col_elem.style.borderColor;
            }

            var col = 1;
            for( var i = 0; i < matrix_header_col_span_num.length; i++ )
            {
                var col_elem = new_row_elem.insertCell(new_row_elem.cells.length);
                if( matrix_header_col_span_num[i] > 1 )
                {
                    col_elem.colSpan = matrix_header_col_span_num[i];
                }
                col_elem.className = matrix_header_col_class_str;
                if( matrix_header_col_align != "" )
                {
                    col_elem.align = matrix_header_col_align;
                }
                if( matrix_header_col_valign != "" )
                {
                    col_elem.valign = matrix_header_col_valign;
                }
                if( i < matrix_header_col_span_label.length )
                {
                    col_elem.innerHTML = matrix_header_col_span_label[i];
                }
                if( i < matrix_header_col_span_bgcolor.length && matrix_header_col_span_bgcolor[i] != "" )
                {
                    col_elem.style.backgroundColor = matrix_header_col_span_bgcolor[i];
                }
                if( org_col_elem.style.borderColor )
                {
                    col_elem.style.borderColor = org_col_elem.style.borderColor;
                }
                col += matrix_header_col_span_num[i];
            }
            org_row_elem.deleteCell(0);
        }

        if( matrix_header_corner_caption != "" )
        {
            var row_elem = table_elem.rows.item(0);
            if( row_elem )
            {
                var col_elem = row_elem.cells.item(0);
                col_elem.innerHTML = matrix_header_corner_caption;
                if( matrix_header_corner_align != "" )
                {
                    col_elem.align = matrix_header_corner_align;
                }
                if( matrix_header_corner_valign != "" )
                {
                    col_elem.valign = matrix_header_corner_valign;
                }
            }
        }
    }
}

function init_matrix_header_by_id()
{
    var elem = document.getElementById( matrix_header_target_id );
    if( elem )
    {
        init_matrix_header( elem );
    }
}

function init()
{
    init_matrix_header_by_id();
}

※BANK設定画面下の onload= の入力欄に init(); を入力します。
※21000.Q/21010.Q マトリクス設問です。


スペックを添付いたしますので是非コピ-してお使いください!!
スペックダウンロード

※このJavaScriptを使用する場合、選択肢をランダム表示等の表示設定をすることが出来ませんのでご注意ください。

今回のORCA通信はいかがでしたか。
ご不明な点等がございましたらお気軽にご連絡ください。

『こんな見本スクリプトが欲しい!』というご要望もお待ちしております。
どしどしお寄せください!!

それでは次回もお楽しみに!


  ページトップへ

vol.02へ vol.020へ vol.022へvol.022へ