2016-07-01 8 views
0

私は自分の手の中で私が何を呼ぶべきなのか特別な状況なので、ここで説明します!私は教育を専攻している学生を追跡する大学のFile-maker Proデータベースに取り組んでいます。テーブルの1つは、以下の範囲の学生が取ったすべての標準テストを追跡しています。 ACT、SAT、ETSおよびPapa。私がこのテーブルを作る前に、すべてのテストは一人で立っていました。言い換えれば、合格点を作るためにスコアを組み合わせることはできませんでした。これは現在、PAPAとETSの2つのテストで変更されています。つまり、各テストの得点を組み合わせて1つの成績を合格させることができます。ここで同じテーブルのレコードをミキシングして計算結果を得る

はちょうどあなたがそれらの個々のテスト

Test Name | Reading | Writing | Math | Total | pass/fail 
-------------------------------------------------------- 
PAPA  |  2 |  2 | 2 |  6 | FAILED 
ets  |  1 |  2 | 6 |  9 | FAILED 

だから、数週間に合格するために、PAPAとETSのテストのための10の総計が必要であることを単純化のために言うことができます例です。この個人は標準テストに合格しませんでしたが、今ではETSの数学で6点、PAPASでレディングで2点の2点を取得しているため、この個別点は過ぎ去りました。ここで

は私の現在の計算は次のようになります。

If (
    ReadingScore ≥ BasicTest::PassReading 
    and MathScore ≥ BasicTest::PassMath 
    and WritingScore ≥ BasicTest::PassWriting ; 
    "PASSED" ; 

    If (Score >= BasicTest::QMScore ; 
    If (ReadingScore >= BasicTest::QMReading ; 
     If (MathScore >= BasicTest::QMMATH ; 
     If (WritingScore >= BasicTest::QMWriting ; 
      "PASSED" ; 
      "DOES NOT MEET WRITING REQUIREMENTS" 
     ) ; 
     "DOES NOT MEET MATH REQUIREMENTS" 
    ) ; 
     "DOES NOT MEET READING REQUIREMENTS" 
    ) ; 
    "FAILED" 
) 
) 

だからここに私の質問は、今日は、私は、FileMaker Proのアプリケーションでこれをアプローチする方法ですか?これをレポートにするか、テーブルを完全に再構築する必要がありますか?!?!?!?

+0

これは、あなたの計算が現在どのように見えて、生徒が合格したかどうかを判断します。おそらく、新しい要件を考慮して計算を変更するだけで済みます。それは醜いcalcかもしれませんが、それは 'Let'変数を使うことによって助けられます。あなたは現在のcalcがどのように見えるか分かりますか? – Chuck

+0

これはコードです If(ReadingScore≥BasicTest :: PassReadingとMathScore≥BasicTest :: PassMathとWritingScore≥BasicTest :: PassWriting; PASSED; If(ReadingScore> BasicTest :: QMScore) = BasicTest :: QMReading; もし(MathScore> = BasicTest :: QMMATH; もし(WritingScore> = BasicTest :: QMWriting; "PASSED"; ) "WRITINGの要件を満たしていません"; 「MATHの要件を満たしていません"); "読み取り要件を満たしていません "); " FAILED ") ) –

答えて

0

私は(私はあなたのcalcでScoreは、他のスコアの合計であると思います?)あなたのCalcは、あなたの質問にアップ一致する正確かどうかはわかりませんが、私はいくつかのポインタを提供することができると思います。

  • 複数のテストを考えると、あなたは各カテゴリの最大スコアに興味を持っている:何あなたが言うと何カルクショーを考える

    は、私は以下のが本当だと思います。

  • それぞれの最大スコアは、BasicTest::Pass*またはBasicTest::QM*のいずれかの最小スコアより大きくする必要があります。
  • 試験受験者は、すべての最大点数がすべての試験最小点数またはより大きい場合、合計最大点数がBasicTest::QMScoreより大きい場合に合格します。

は、上記を考えると、私は次のcalcを思い付いた:

Let (
    [ 
    _reading_score = Max (papa_reading_score ; ets_reading_score) ; 
    _math_score = Max (papa_math_score ; ets_math_score ) ; 
    _writing_score = Max (papa_writing_score ; ets_writing_score) ; 
    _total_score = _reading_score + _math_score + _writing_score ; 

    _target_reading = Min (BasicTest::PassReading ; BasicTest::QMReading) ; 
    _target_math = Min (BasicTest::PassMath ; BasicTest::QMMath) ; 
    _target_writing = Min (BasicTest::PassWriting ; BasicTest::QMWriting) ; 

    _pass_reading = (_reading_score ≥ _target_reading) ; 
    _pass_math = (_math_score ≥ _target_math ) ; 
    _pass_writing = (_writing_score ≥ _target_writing) ; 

    _passed = (_pass_reading and _pass_math and _pass_writing) 
     or (_total_score ≥ BasicTest::QMScore); 

    _result = Case (
     _passed   ; "PASSED"        ; 
     not _pass_reading ; "DOES NOT MEET READING REQUIREMENTS" ; 
     not _pass_math ; "DOES NOT MEET MATH REQUIREMENTS" ; 
     not _pass_writing ; "DOES NOT MEET WRITING REQUIREMENTS" ; 
          "FAILED" 
    ) 
    ] ; 

    _result 
) 

を上記正確に何が必要でない場合でも、私はそれはいくつかの方向性を提供していただければ幸いです。このような複雑な計算では、各ピース(この場合、各変数の割り当て)を分かりやすく分けて分割します。

MaxMinは多くの引数を取ることができ、また、(1対多の関係または繰り返しフィールドで関連分野)複数の値を持つフィールドを取ることができ、そのことに注意してください、あなたは以上の2つのスコアかに2つのテストを持っている場合最大値と最小値を確認し、より多くのパラメータとして追加するだけです。

関連する問題