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

 ORCA通信

第45回ORCA通信をお届けいたします。

INDEX
[1] 開発情報
[2] スペック作成のヒント


[1] 開発情報

あなたの欲しかった機能は次のバージョンアップに入るかな?

さて、今回のORCA通信からは、次バージョン(ver1.7.2)で
追加される予定の機能を小出しに紹介させて頂こうかと思います。

本日紹介する新機能は  「ダウンロードデータに問番号を併記」  です。

ローデータを見て「Q15235って問なん番だよ!ヽ(`Д´)ノ」
と、スペックやspec_infoのシートで対象の設問番号を探して
データチェックをしていませんでしたか。

今までORCAの設問番号のみが、フィールド名として表示されていましたが
その設問番号の下に1行追加されて、ついに問の番号も併記されます。

はやくリリースできるように、われわれもテストをガンバリマス。


[2] スペック作成のヒント

先日リリースさせていただいたver1.7.0では、テーブル設問が新しく追加されました。

テーブル設問は、MAで経験、SAで最頻経験を聴取するといった設問に適しています。
そこで、テーブル設問で使えるJavaScriptのご紹介です。

左側の列で選択された選択肢のみ
右側の列でアクティブになる設定方法ですので是非ご活用ください。

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

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

function init()
{
    var inputElem = document.getElementsByTagName( "input" );

    var isTBL = function(n){ return ( n == "TBL" || new RegExp("(^|\\s)TBL(\\s|$)").test(n) ); };
    var isMA = function(n){ return ( n == "MA" || new RegExp("(^|\\s)MA(\\s|$)").test(n) ); };
    var isSA = function(n){ return ( n == "SA" || new RegExp("(^|\\s)SA(\\s|$)").test(n) ); };

    for( var i = 0; i < inputElem.length; i++ )
    {
        var className = inputElem[i].className;
        var parentClassName = inputElem[i].parentNode.className;

        if( className && isTBL(parentClassName) && ( isMA(className) || isSA(className) ) )
        {
            var target = inputElem[i];
            target.inputGroup = new Array();

            var parentTr = target.parentNode.parentNode;
            if( parentTr && parentTr.tagName.toUpperCase() == "TR" )
            {
                var tdElem = parentTr.getElementsByTagName( "td" );
                for( var j = 0; j < tdElem.length; j++ )
                {
                    var inputElemGroup = tdElem[j].getElementsByTagName( "input" );
                    for( var k = 0; k < inputElemGroup.length; k++ )
                    {
                        var inputClassName = inputElemGroup[k].className;
                        if( inputClassName && ( isMA(inputClassName) || isSA(inputClassName) ) )
                        {
                            target.inputGroup.push( inputElemGroup[k] );
                        }
                    }
                }
            }

            target.onclick = (function(a){return function(){doExclusiveCtrl(a);} })(target);
            target.onclick();
        }
    }
}
function doExclusiveCtrl(target)
{
    var disable = 0;

    for( var k = 0; k < target.inputGroup.length; k++ )
    {
        var targetCtrl = target.inputGroup[k];

        if( disable )
        {
            targetCtrl.checked = false;
            targetCtrl.disabled = true;
        }
        else
        {
            targetCtrl.disabled = false;
        }

        if(targetCtrl.checked == false)
        {
            disable = 1;
        }
    }
}

※ onload=の入力欄に init(); を入力します。
スペックを添付いたしますので是非コピ-してお使いください!!
スペックダウンロード

ご不明な点ございましたらお気軽にご連絡ください。

  ページトップへ

vol.044へ vol.044へ vol.046へvol.046へ