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

 ORCA通信

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


 ORCA通信 vol.033(2010/06/18発行)


ORCAユーザーの皆様、こんにちは。
いつもお世話になっております。サイズの中村結里です。

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

INDEX
[1] 開発情報1:ORCA Editor
[2] 開発情報2:ORCA SpecMaker
[3] スペック作成のヒント第32回:これは使える!ORCA Script
見本はこちら

[1] 開発情報1:ORCA Editor機能追加

ORCA Editorにお待ちかねの新機能!
「マトリクス子設問の繰り返し」が追加されました。
縦選択にしたときの表頭が繰り返せるようになったんです!!

今までは子設問選択肢のみ繰り返し設定ができ、マトリクス子設問の設定はできませんでした。

これからはマトリクス子設問の繰り返しを諦めたり、大変な思いをしなくても簡単にマトリクス子設問も繰り返しが行えます。

繰り返しの設定は今までと同様、
マトリクス設定画面の「マトリクス子設問、子設問選択肢の繰り返し表示」で繰り返し数を入力します。



サンプル画面
子設問選択肢の繰り返し
    

★新機能★
マトリクス子設問の繰り返し
    


[2] 開発情報2:ORCA SpecMaker機能追加

ORCA SpecMakerにも新しく機能が追加されました。
さらにさらに便利になってます!!

追加項目は以下となります。

  ■文字装飾の反映
    「注意書きの部分は青字で・・・」「強調させたい部分を太字に・・・」など
    Excel上で指定した文字装飾(文字色、太字、イタリック、打ち消し)がそのままスペックに反映されます。

  ■空行OK
    いままでのスペックメーカーでは、空行があるとエラーとなっていましたが
    空行が複数あっても問題なくスペックが作成されるようになりました。

  ■コメント反映対象外
    Excel上のA列に入力した、「/*」と「*/」で挟まれた行は変換されません。
    ロジックの内容などを入力したり、急遽削除となった設問があった場合に便利です。

  ■シート反映対象外
    シート名の先頭二文字がアンダースコアーであるシートは変換されません。

  ■DIVタグ設定
    マトリクス(子)設問を除く、全ての設問には自動的に
    「設問文と入力欄を<DIV>で囲む」オプションがONとなるようになりました。


新ORCA SpecMakerの使い方の詳細はこちらをご覧ください。

☆スペックメーカーを使ったことがないという方もこの機会に1度使ってみてください☆


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

vol.16のORCA通信で「マトリクス形式の合計値表示」を紹介しましたが、
今回は「複数のマトリクス形式の合計値表示」をご紹介します。

1つのBANK内に合計値を表示させたいマトリクス設問または、子設問が複数あっても全てに合計値を表示させることが出来ます。

変更箇所はvol.16と同じ、JavaScriptの最初の5行です。
見本はこちら

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

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

var input_n = [8,8,3];選択肢数
(1つめから順に設定する分を入力)
var id_prefix = ["Q33100_","Q33100_","Q33200_"];マトリクス親の設問番号
(1つめから順に設定する分を入力)
var id_suffix = ["xQ33110XN1","xQ33120XN1","xQ33210XN1"];マトリクス子の設問番号
(1つめから順に設定する分を入力)
var dec_num = 0;入力桁数
(0→整数、1→小数点第一位、2→小数点第二位・・)
※複数個所で変更できません。
var readonly_bgcolor = "#CCCCCC";合計値の背景色
※複数個所で変更できません。
(変更する箇所はこの最初の5行です↑↑)

var input_id_array = new Array();
var input_array = new Array();
var total_elem = new Array();

function init_total_elem()
{
        for( var i = 0; i < input_n.length; i++)
        {
                var total_id = id_prefix[i] + input_n[i] + id_suffix[i];
                total_elem[i] = document.getElementById( total_id );
                if( total_elem[i] )
                {
                        total_elem[i].readOnly = true;
                        total_elem[i].style.background = readonly_bgcolor;
                }
                input_id_array[i] = new Array();
                input_array[i] = new Array();
        }
}

function calc_total()
{
        var total = 0;

        for( var i = 0; i < input_n.length; i++)
        {
                total = 0;
                for( var j = 0; j < input_array[i].length; j++ )
                {
                        var num = input_array[i][j].value;
                        if( num != "" && ! isNaN( num ) )
                        {
                                num = (num - 0).toFixed(dec_num);
                                input_array[i][j].value = num;
                                total -= -num;
                        }
                }
                if( total_elem[i] )
                {
                        total_elem[i].value = (total - 0).toFixed(dec_num);
                }
        }
}

function init()
{
        init_total_elem();

        for( var i = 0; i < input_n.length; i++)
        {
                for( var j = 1; j < input_n[i]; j++ )
                {
                        var wk_id = id_prefix[i] + j + id_suffix[i];
                        input_id_array[i].push( wk_id );
                }

                for( var j = 0; j < input_id_array[i].length; j++ )
                {
                        var wk_elem = document.getElementById( input_id_array[i][j] );
                        if( wk_elem )
                        {
                                wk_elem.onblur = calc_total;
                                input_array[i].push( wk_elem );
                        }
                }
        }
        calc_total();
}

※BANK設定画面下の  onload=  の入力欄に  init();  を入力します。

33100.Qマトリクス(親)設問
33110.Q/33120.Qマトリクス(子)設問
33200.Qマトリクス(親)設問
33210.Qマトリクス(子)設問
33251.J33110.Qの合計値が100でなかったら33100.Qへバックジャンプします。
33252.J33120.Qの合計値が100でなかったら33100.Qへバックジャンプします。


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

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

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

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


  ページトップへ

vol.032へ vol.032へ vol.034へvol.034へ