在虚拟列表 Filemaker 中组合来自多个源的行

Combining rows from multiple sources in Virtual list Filemaker

我正在尝试使用虚拟列表作为数据源在 Filemaker 中制作一个类似于 Excel 的 'pivot table'。问题是我希望能够在未修复的第一列中显示 'categories'。字段名称无效。

我目前的想法是 table 包含布局名称和类别的字段,我将通过 ExecuteSQL(或其他函数)将其与其余数据合并).

我可以让它与两个 ExecuteSQL 语句一起工作,一个用于类别,一个用于数据的 'bulk',在类别 e[=42 中的 WHERE 使用文本=],然后我将它们合二为一,我就设置好了。

我的问题是我希望能够使用 get(LayoutName) 函数获取类别,从而使脚本更加灵活。每当我在 SQL 的 WHERE 行中使用 get(LayoutName) 时,我都会得到一个 ?对于结果。我也尝试过使用 get(LayoutName) 将布局名称放在一个字段中,然后像在 WHERE 语句中一样使用该字段,但这也是 returns 一个错误。

我承认我在这方面有点新手,所以问题很可能是键盘和椅子之间的简单语法错误。我尝试了很多不同的引号、不引号、单引号等方式

这是我用来提取类别的内容...

代入 ( 执行SQL ( "SELECT Category_List 来自 Categories_VL WHERE Layout_Name = Get(LayoutName)" ; "" ; "") ; ", " ; $$delim )

所有的字段名称都是正确的,如果我将 LayoutName 更改为与我想要的 Layout_Name 字段相匹配的文本,它就可以正常工作。

如果我说得太罗嗦,我深表歉意,但我认为更多的信息比回答一堆问题要好,因为我忘记了什么!

TIA!

我很难理解你的问题。我希望我正在解决正确的问题。

您不能在 SQL 查询中使用 Filemaker 函数。要查找 Layout_Name 字段等于当前布局名称的记录,您的查询应为:

SELECT Category_List 
FROM Categories_VL 
WHERE Layout_Name = ?

然后您将提供当前布局的名称作为 参数:

ExecuteSQL ( "SELECT Category_List FROM Categories_VL WHERE Layout_Name = ?" ; "" ; "" ; Get ( LayoutName ) ) 

请注意,您可以在 ExecuteSQL() 函数本身内指定您自己的字段和行分隔符,而不是替换默认分隔符,例如:

ExecuteSQL ( "SELECT Category_List FROM Categories_VL WHERE Layout_Name = ?" ; $$delim ; "" ; Get ( LayoutName ) ) 

参见:https://help.claris.com/en/pro-help/#page/FMP_Help%2Fexecutesql.html%23