如何在FMP视图中为学生仅显示含值的测试成绩字段列表?
在FileMaker Pro中实现仅显示学生非空测试成绩的列表视图
在FileMaker里搞定这个需求有两种实用思路,根据你想要的展示风格选就行:
方法1:布局对象条件隐藏(保留独立字段结构)
如果你希望每个测试成绩还是以单独字段的形式展示,只是空字段自动隐藏,用这个方法:
- 打开你的列表视图布局,切换到布局模式(顶部菜单栏 → 布局 → 布局模式)
- 选中
Test1_Grade字段对象,打开检查器(顶部菜单栏 → 视图 → 检查器),切换到「数据」标签 - 在「隐藏对象」的条件输入框里,写入公式:
IsEmpty(Test1_Grade)—— 意思是当该字段为空时,自动隐藏这个字段对象 - 对
Test2_Grade到Test5_Grade重复上述操作,每个字段都设置对应的IsEmpty(TestX_Grade)隐藏条件 - 切回浏览模式,就能看到每个学生只显示有成绩的测试字段了
小提示:为了避免字段隐藏后布局排版混乱,可以给这些测试字段设置锚定对齐(检查器的「位置」标签里设置),比如全部左对齐并锚定左侧,这样空字段隐藏后,后面的字段会自动向前补位,保持整齐。
方法2:计算字段整合非空成绩(紧凑列表展示)
如果想要更简洁的排版,把所有非空成绩整合到一个字段里展示,试试这个:
- 打开管理数据库(顶部菜单栏 → 文件 → 管理 → 数据库),切换到「字段」标签
- 新建一个计算字段,命名为
Existing_Test_Grades,计算结果类型选文本 - 在计算编辑框里输入以下公式:
Let( [ t1 = If(Not IsEmpty(Test1_Grade), "Test1: " & Test1_Grade & " ; ", ""), t2 = If(Not IsEmpty(Test2_Grade), "Test2: " & Test2_Grade & " ; ", ""), t3 = If(Not IsEmpty(Test3_Grade), "Test3: " & Test3_Grade & " ; ", ""), t4 = If(Not IsEmpty(Test4_Grade), "Test4: " & Test4_Grade & " ; ", ""), t5 = If(Not IsEmpty(Test5_Grade), "Test5: " & Test5_Grade, "") ]; Trim(Replace ( t1 & t2 & t3 & t4 & t5 ; Length(t1 & t2 & t3 & t4 & t5) - 2 ; 2 ; "" )) )
这个公式会逐个检查每个测试字段,把非空的成绩拼接成「TestX: 成绩」的格式,最后自动去掉末尾多余的分号和空格。
- 把这个计算字段添加到你的列表视图布局中,每个学生的行里就会直接显示所有有成绩的测试。比如学生A会显示
Test1: A ; Test3: B ; Test5: B,学生B则显示对应他的测试成绩。 - 要是想让每个测试成绩单独换行,把公式里的
" ; "换成"¶"(FileMaker的换行符,按Option+Enter直接输入)就行。
内容的提问来源于stack exchange,提问作者dr.
相关产品推荐
相关产品推荐

