定型文書の番号に○をつける [FileMaker]
定型文書をデータベース化したい場合、定型文書の番号に○を付けたい場合がある。そして○をつけた項目もデータとしてリストしておきたい。FileMakerでこのような○をつける定型文書(例として質問数15までの質問表)を作成する方法を示す。
------------------------------------------------------------------------------
[テーブル]
設定テーブル フィールドとして質問番号、質問内容
質問表テーブル フィールドは下記
設定のIDと質問表のIDをXリレーションさせる
[質問表のフィールド]
質問表 数字 15繰り返し データの書式:論理値 0以外の場合 ○
質問表_○項目 数字 15繰り返し
質問表_○項目リスト 計算(数字) = List ( 質問表_○項目 )
[レイアウト]
□アクティブ時にフィールドのフレームを表示 チェックをはずす
[スクリプト] 丸をつける
フィールド設定 [ 質問表::質問表 [ LeftValues ( Get ( スクリプト引数 ) ; 1 ) ;
Case ( IsEmpty ( 質問表::質問表 ) or 質問表::質問表 = 0 ; 1 ; 0 ) ]
フィールド設定 [ 質問表::質問表_○項目 [ LeftValues ( Get ( スクリプト引数 ) ; 1 ) ;
Case ( IsEmpty ( 質問表::質問表 ) or 質問表::質問表 = 0 ;
Substitute ( RightValues ( Get ( スクリプト引数 ) ; 1 ) ; "¶" ; "" ) ; "" )
[透明ボタン]
スクリプト「丸をつける」 引数 1¶食事1〜14¶金銭管理5 ( 繰り返し数¶質問項目)
-------------------------------------------------------------------------------
[解説]
1レコードからなる設定テーブルで質問番号と質問内容を入力する。設定テーブルと質問表テーブルはXリレーションで質問表テーブルのすべてのレコードに反映する。
フィールド「質問表」は数字フィールドの繰り返しで、書式設定で「論理値」をえらび、0を空欄、0以外を○にする。すると、たとえば繰り返し位置3に1を入力すると、そこに○がつく。○は14ポイントにしたが、もっと大きいポイントにすれば大きくなる。
「設定::質問番号」の上に「質問表」を重ねて置く。繰り返しフィールドなので、1〜5、6〜9のように分けて表示することができる。そして表示を2〜2は1行、3〜5は2行などのように配置すると、不定の高さの行表示にも対応可能である。
「質問表」の上に透明ボタン(0ポイントの□)を置き、スクリプト「丸をつける」を実行させる。各ボタンには、スクリプトパラメーターとして、「1¶食事1」から「14¶金銭管理5」を設定する。前方が繰り返し番号、後方が質問項目番号である。
スクリプトの内容
各ボタンに設定されたスクリプトパラメーターのうち、LeftValues ( Get ( スクリプト引数 ) ; 1 )で繰り返し番号を取得、Substitute ( RightValues ( Get ( スクリプト引数 ) ; 1 ) ; "¶" ; "" )で質問項目番号を取得する。
ボタンが押されると、「質問表」のその繰り返し番号のところに1を入力する(1が入っている場合は0にする)。1が入力されると○が表示される(0の場合は○が消える)。と同時に、「質問表_○項目」のその繰り返し番号のところに質問項目番号を入力する。
「質問表_○項目リスト」で「質問表_○項目」に入った項目をリストアップする。
[サンプルファイル]
maru.fp7 (ZIP圧縮: 16_maru.zip)
http://www001.upp.so-net.ne.jp/MedFiles/samples.html
------------------------------------------------------------------------------
[テーブル]
設定テーブル フィールドとして質問番号、質問内容
質問表テーブル フィールドは下記
設定のIDと質問表のIDをXリレーションさせる
[質問表のフィールド]
質問表 数字 15繰り返し データの書式:論理値 0以外の場合 ○
質問表_○項目 数字 15繰り返し
質問表_○項目リスト 計算(数字) = List ( 質問表_○項目 )
[レイアウト]
□アクティブ時にフィールドのフレームを表示 チェックをはずす
[スクリプト] 丸をつける
フィールド設定 [ 質問表::質問表 [ LeftValues ( Get ( スクリプト引数 ) ; 1 ) ;
Case ( IsEmpty ( 質問表::質問表 ) or 質問表::質問表 = 0 ; 1 ; 0 ) ]
フィールド設定 [ 質問表::質問表_○項目 [ LeftValues ( Get ( スクリプト引数 ) ; 1 ) ;
Case ( IsEmpty ( 質問表::質問表 ) or 質問表::質問表 = 0 ;
Substitute ( RightValues ( Get ( スクリプト引数 ) ; 1 ) ; "¶" ; "" ) ; "" )
[透明ボタン]
スクリプト「丸をつける」 引数 1¶食事1〜14¶金銭管理5 ( 繰り返し数¶質問項目)
-------------------------------------------------------------------------------
[解説]
1レコードからなる設定テーブルで質問番号と質問内容を入力する。設定テーブルと質問表テーブルはXリレーションで質問表テーブルのすべてのレコードに反映する。
フィールド「質問表」は数字フィールドの繰り返しで、書式設定で「論理値」をえらび、0を空欄、0以外を○にする。すると、たとえば繰り返し位置3に1を入力すると、そこに○がつく。○は14ポイントにしたが、もっと大きいポイントにすれば大きくなる。
「設定::質問番号」の上に「質問表」を重ねて置く。繰り返しフィールドなので、1〜5、6〜9のように分けて表示することができる。そして表示を2〜2は1行、3〜5は2行などのように配置すると、不定の高さの行表示にも対応可能である。
「質問表」の上に透明ボタン(0ポイントの□)を置き、スクリプト「丸をつける」を実行させる。各ボタンには、スクリプトパラメーターとして、「1¶食事1」から「14¶金銭管理5」を設定する。前方が繰り返し番号、後方が質問項目番号である。
スクリプトの内容
各ボタンに設定されたスクリプトパラメーターのうち、LeftValues ( Get ( スクリプト引数 ) ; 1 )で繰り返し番号を取得、Substitute ( RightValues ( Get ( スクリプト引数 ) ; 1 ) ; "¶" ; "" )で質問項目番号を取得する。
ボタンが押されると、「質問表」のその繰り返し番号のところに1を入力する(1が入っている場合は0にする)。1が入力されると○が表示される(0の場合は○が消える)。と同時に、「質問表_○項目」のその繰り返し番号のところに質問項目番号を入力する。
「質問表_○項目リスト」で「質問表_○項目」に入った項目をリストアップする。
[サンプルファイル]
maru.fp7 (ZIP圧縮: 16_maru.zip)
http://www001.upp.so-net.ne.jp/MedFiles/samples.html
コメント 0