みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
環境はWin7 Ver12です。
ファイルAからファイルBにリレーションを張り、ファイルAに配置したポータルを利用して、ファイルBのフィールドにデータ(以下に示す優良可の判定)を入力しています。
→ ファイルAからファイルBの新規レコード作成ボタンを押し、国語、算数、理科、社会、英語の各科目の評価を入力し、ファイルAのポータルに表示させています。
そこで、ポータル表示が
国語の判定 → 優
算数の判定 → 優
理科の判定 → 優
社会の判定 → 良
英語の判定 → 可
のとき、
国語の判定 → 優
算数の判定 → ″
理科の判定 → ″
社会の判定 → 良
英語の判定 → 可
としたいのですが、ファイルB側で関数を利用した書き換えを視野に入れトライするも、私のスキルではどうにもなりません。
ご教示いただければ幸いです。
よろしくお願いいたします。
″は同上という意味でしょうか?
何の意味があるのか理解は出来ませんが、スクリプトトリガでExitする度に判定しくのが楽な気がします。
testerさま
ありがごうございます。
おっしゃるとおり 同上 という意味です。
>スクリプトトリガでExitする度に判定
とのことですが、どう判定すればいいのでしょうか?
同じ生徒の成績判定が 優、良、可、不可 のいずれかで、それぞれの判定が2教科以上ある場合、ポータル最上位置の教科のみに判定(優、良、可、不可)が表示され、それ以外は ” と表示したいのです。
ご教示のほど、よろしくお願いいたします。
イメージがいまいち掴めないですが、こんな感じ?
教科 評価
1レコード目:国語 優
2レコード目:算数 "
3レコード目:理科 "
4レコード目:社会 良
5レコード目:英語 可
ポータルに常に5レコードあり、フィールドは1レコードに下記フィールドがあると想定すると、
ポータルテーブル:テキストフィールド追加
計算値内容:
Case(
評価 = "";"";
教科 = "算数" and GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-1 ) = 評価 ; "\"";
教科 = "理科" and (GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-1 ) = 評価 or (GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-1 ) = "\"") and GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-2 ) = 評価); "\"";
教科 = "社会" and (GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-1 ) = 評価 or (GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-1 ) = "\"") and ( GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-2 ) = 評価 or GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-3 ) = 評価)); "\"";
教科 = "英語" and (GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-1 ) = 評価 or (GetNthRecord ( 評価; Get ( アクティブポータル行番号 )-1 ) = "\"") and (GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-2 ) = 評価 or GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-3 ) = 評価 or GetNthRecord ( 評価 ; Get ( アクティブポータル行番号 )-4 ) = 評価)); "\"";
評価
)
正直、無理やり感半端ないですが、なんとか出来ます。
あと、評価が空欄の場合等も考えてスクリプトトリガ:OnObjectSaveでギミックが必要ですが
なんとか出来ます。。
もっと美しく出来ると思うのですが、私の実力ではここまで。。
Let (
[
$$t = $$t0 ;
$$t0 = ID & ¶ & 判定
] ;
Case (
$$t = $$t0 ; "々" ;
判定
)
)
という計算フィールドで表示すれば良いでしょうね。
Offline
Shinさん、すいません。こんな簡単に出来るなんて、驚きです。
ロジック的にどういう仕組みになってるのか教えて頂けませんか?
Let関数はなんとか調べて解ったのですが、されている内容がぜんぜん理解できません。。
testerさま Shinさま
ありがとうございます。
お二人からご教示いただきましたとおりにプログラムしましたところ、完璧に動作しました。
まさにアンビリーバボーです!
お尋ねしました点は解決したのですが、もう少し解決マークをつけるまでにお時間をください。
お願いばかりで申し訳ありません。
またコメントさせていただきます。
Shinさま
追加でもう1つご教示いただけないでしょうか。
評価が 優 良 可 不可 に対応して、以下に示しますような 通し番号のついた星マークを自動で表示したい と考えております。
国語の判定 → 優
算数の判定 → 優
理科の判定 → 優
社会の判定 → 良
英語の判定 → 可
のとき、
国語の判定 → 優 ★1
算数の判定 →
理科の判定 →
社会の判定 → 良 ★2
英語の判定 → 可 ★3
国語の判定 → 優
算数の判定 → 良
理科の判定 → 良
社会の判定 → 良
英語の判定 → 可
のとき、
国語の判定 → 優 ★1
算数の判定 → 良 ★2
理科の判定 →
社会の判定 →
英語の判定 → 可 ★3
case関数等でトライしますが、私のスキルでは歯がたちませんでした。
よろしくお願いいたします。
すみません。一部訂正いたします。
国語の判定 → 優
算数の判定 → 優
理科の判定 → 優
社会の判定 → 良
英語の判定 → 可
のとき、
国語の判定 → 優 ★1
算数の判定 → "
理科の判定 → "
社会の判定 → 良 ★2
英語の判定 → 可 ★3
国語の判定 → 優
算数の判定 → 良
理科の判定 → 良
社会の判定 → 良
英語の判定 → 可
のとき、
国語の判定 → 優 ★1
算数の判定 → 良 ★2
理科の判定 → "
社会の判定 → "
英語の判定 → 可 ★3
Let (
[
$$t = $$t0 ;
$$t0 = ID & ¶ & 判定 ;
$$n = Case (
$$t = $$t0 ; $$n ;
ID = GetValue ( $$t ; 1 ) ; $$n + 1 ;
1
)
] ;
Case (
$$t = $$t0 ; "〃" ;
判定 & " ★" & $$n
)
)
で良い様ですね。
https://dl.dropboxusercontent.com/u/926 … 55.fp7.zip
FMは、行ごとに上から評価をしていきますので、1行目で変数をリセットの様な事をしておいて、2行目からは保存したグローバある変数との比較(前の行の情報)で表示情報を作ります。
Last edited by Shin (2015-06-14 11:33:05)
Offline
Shinさま
お礼が遅くなりまして申し訳ありません。
まさに思ったとおりの動きをします。感謝感激アンビリーバボーです!!!
仕組みの詳細は理解できませんが、自分なりに紐解いてみたいと思います。
顔も名前も知らない私に、このような高度な技をご披露いただきまして、ありがとうございます。
さらに、これから多くの方々も参考にされると思います。
Shinさま この度はたいへんお世話になりました。感謝申し上げます!
梅雨前線
Pages: 1
[ Generated in 0.006 seconds, 8 queries executed - Memory usage: 545.01 KiB (Peak: 565.91 KiB) ]