从混合记录中获取计算结果在同一个表中

时间:2016-07-01 18:42:21

标签: filemaker

我手上有一种特殊情况,我不称之为,所以我只是要解释一下!我正在为一所大学的File-maker pro数据库工作,该大学跟踪主修教育的学生,其中一个表跟踪学生所采取的所有标准化考试,范围从以下几个方面; ACT,SAT,ETS和Papa 。在我制作这张桌子之前,所有测试都是单独进行的,或者换句话说,你无法将分数结合起来以达到及格分数。现在已经改变了两个测试,PAPA和ETS。换句话说,您可以将每个测试的分数结合起来,使一个成绩通过。

这是一个例子

我们只是为了简单起见,为了通过那些单独的测试你需要总共10个PAPA和ETS测试

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

所以几个星期前......这个人不会通过那里的标准测试,但是现在这个人已经过去了,因为他/她已经获得了ETS数学中的6分和2分2分的阅读和写作PAPAS。 / p>

以下是我目前的计算结果:

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专业应用程序来解决这个问题?我应该把它作为一个报告,还是应该完全重建一个表?!?!?!?

1 个答案:

答案 0 :(得分:0)

虽然我不确定您的计算结果与您的问题完全匹配(我认为 var process = Process.GetProcessById(844); // found pid manually var image = Icon.ExtractAssociatedIcon(process.MainModule.FileName).ToBitmap(); pb1.Image = image; byte[] imageBytes; using (var ms = new MemoryStream()) { image.Save(ms, ImageFormat.Png); // PNG for transparency ms.Position = 0; pb2.Image = (Bitmap)Image.FromStream(ms); } 在您的计算中是其他得分的总和?),我认为我可以提供一些指示。

鉴于你说的和钙化显示的内容,我认为以下是正确的:

  • 鉴于多项测试,您对每个类别的最高分感兴趣。
  • 每个最高分数必须大于ScoreBasicTest::Pass*的最低分数。
  • 如果测试者的最高分数大于所有测试最低分数总分最高分数大于BasicTest::QM*,则考生将通过。

鉴于上述情况,我提出了以下计算:

BasicTest::QMScore

即使上述内容并非完全符合您的需求,我希望它能提供一些方向。通过像这样的复杂计算,将每个部分(在这种情况下,每个变量赋值)分解成易于理解的部分。

请注意,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 ) Max可以使用多个参数,也可以使用具有多个值的字段(一对多关系或重复字段中的相关字段),因此如果您有更多要检查最大值和最小值,需要将两个或两个测试添加为更多参数。