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

 ORCA通信

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

INDEX
[1] 年末年始休業のご連絡
[2] 開発情報:予告!バージョンアップ
[3] スペック作成のヒント:これは使える!ORCA Script


[1] 年末年始休業のご連絡

誠に勝手ながら、株式会社サイズは下記の年末年始期間を休業とさせていただきます。

【 年末年始休業期間 】
2012年12月28日(金)PM ~ 2013年1月6日(日)

新年は1月7日(月)より、通常営業いたします。

なお、緊急時は下記の緊急連絡先まで
ご用件とお電話番号を添えてご連絡くださいますようお願いいたします。

緊急連絡先 info@cyze.jp

お客様にはご不便をお掛けいたしますが、何卒よろしくお願い申し上げます。


[2] 開発情報:予告!バージョンアップ

大変お待たせしているORCAのバージョンアップのお知らせです。

サイズ社内でも今か今かと待ち望んでおりますが ついにリリース予定時期が決定いたしました!

新年早々にリリース予定でございます!!

ここでバージョンアップ情報を一部ご紹介いたします。
次回はスペックメーカーもバージョンアップします。

集計用選択肢・問ラベル・排他を定義することが出来るようになります!

上記定義を追加したことにより、 現在のスペックメーカー読込み用Excelファイルでは読込むことができなくなります。
読込めないといっても現在の書き方に1列追加するだけで読込めるようになるなど 大きな書き方の変更はございませんのでご安心ください。

Excelの入力方法などの詳細はリリース後改めてご説明いたします。


[3] スペック作成のヒント:これは使える!ORCA Script

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

BANKここで合計値表示の設定を行います。

JavaScriptタブには以下を入力します。

var mtx_id_pfx = "Q56100";
var mtx_id_sfx = [ "Q56110", "Q56120", "Q56130", "Q56140" ];

var maxno = 6;

var vf = true;
var hz = true;

var sum_bgcolor = "#CCCCCC";

var _doc = document;

function numberFormat( v )
{
    var n;

    if( v != "" )
    {
        n = parseInt( v, 10 );
        if( !isFinite( n ) || isNaN( n ) )
        {
            n = 0;
        }

        n = Math.round( n );
    }
    else
    {
        n = "";
    }

    return n;
}

function getIdName(parentNo, childNo)
{
    return mtx_id_pfx + "_" + parentNo + "x" + mtx_id_sfx[childNo] + "XN1";
}

function calc()
{
    var total = 0;
    var wk_elem;

    if(vf)
    {

        for( var i = 0; i < mtx_id_sfx.length; i++ )
        {
            total = 0;

            for ( var j = 0; j < maxno; j++ )
            {

                wk_elem = _doc.getElementById( getIdName( j + 1, i ) );

                if( wk_elem )
                {
                    wk_elem.value = numberFormat(wk_elem.value);

                    if( j != maxno - 1 )
                    {
                        total += wk_elem.value == "" ? 0 : parseInt(wk_elem.value, 10);
                    }
                    else
                    {
                        wk_elem.value = total;
                    }
                }
            }
        }
    }
    if(hz)
    {
        for ( var j = 0; j < maxno; j++ )
        {
            total = 0;

            for( var i = 0; i < mtx_id_sfx.length; i++ )
            {

                wk_elem = _doc.getElementById( getIdName( j + 1, i ) );

                if( wk_elem )
                {
                    wk_elem.value = numberFormat(wk_elem.value);

                    if( i != mtx_id_sfx.length - 1 )
                    {
                        total += wk_elem.value == "" ? 0 : parseInt(wk_elem.value, 10);
                    }
                    else
                    {
                        wk_elem.value = total;
                    }
                }
            }
        }
    }
}

function calc_init()
{
    if( !vf && !hz )
    {
        return;
    }

    for( var i = 0; i < mtx_id_sfx.length; i++ )
    {
        for ( var j = 0; j < maxno; j++ )
        {
            var wk_elem = _doc.getElementById( getIdName( j + 1, i ) );

            if( wk_elem )
            {
                if(vf && j != maxno - 1 && hz && i != mtx_id_sfx.length - 1 )
                {
                    wk_elem.onblur = calc;
                }
                else if( vf && j != maxno - 1 )
                {
                    wk_elem.onblur = calc;
                }
                else if( hz && i != mtx_id_sfx.length - 1 )
                {
                    wk_elem.onblur = calc;
                }

                if(vf && j == maxno - 1 || hz && i == mtx_id_sfx.length - 1 )
                {
                    wk_elem.readOnly = true;
                    wk_elem.style.background = sum_bgcolor;
                    wk_elem.style.fontWeight = "bold";

                    wk_elem.value = wk_elem.value != 0 ? parseInt(wk_elem.value, 10) : 0;
                }
            }
        }
    }

}

function init()
{
    calc_init();
}

※onload=入力欄にinit();を入力します。


var mtx_id_pfx = "Q56100";← 

マトリクス(親)の設問番号を入力します。
var mtx_id_sfx =
[ "Q56110", "Q56120", "Q56130", "Q56140" ];
← 

マトリクス(子)の設問数分、
設問番号を入力します。

var maxno = 6;
← マトリクス(親)の選択肢数(合計値を含む)を
入力します。

var vf = true;
← 縦の合計の設定です。
設定する場合には「true」を、
設定しない場合には「false」を入力します。
※7行目の横合計の設定と同時に「false」にするとエラーとなります。

var hz = true;
← 横の合計の設定です。
設定する場合には「true」を、
設定しない場合には「false」を入力します。
※6行目の縦合計の設定と同時に「false」にするとエラーとなります。

var sum_bgcolor = "#CCCCCC";
← 合計値欄の色のコードを入力します。
56100.Qマトリクス(親)です。
56110.Q

56140.Q
マトリクス設問(子)です。

スペックを添付いたしますので是非コピ-してお使いください!!
スペックダウンロード
こちらより画面をみることができます。


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

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

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


  ページトップへ

vol.055へ vol.055へ vol.057へvol.057へ