FileMaker中ExecuteSQL拼接字符串与整数实现下拉框填充问题求助
解决FileMaker中ExecuteSQL文本与数字拼接问题
嘿,作为FileMaker新手遇到这个拼接问题太正常了!我来帮你捋清楚怎么解决:
你遇到的核心问题是FileMaker的ExecuteSQL不支持用+或&做字符串拼接——这俩是FileMaker原生的运算符,但在SQL语句里不生效:
+在SQL里是数学加法,当你把文本和数字加在一起,会直接报错或者返回空值;&是FileMaker脚本/计算里的拼接符,但SQL不认它。
正确的解决方案
在FileMaker的SQL方言里,字符串拼接要用双竖线||,把转成文本的数字和Product字段连起来。修改你的SQL语句部分即可:
select L.Product || GetAsText(L.Quantity) from T08_ESTIMATES E join T09_EST_LINE_ITEMS L on E.ID_Estimate = L.id_estimate where E.ID_Estimate = ?
如果想让产品名和数量之间有空格(比如“苹果 5”),可以加个空格字符串让结果更清晰:
select L.Product || ' ' || GetAsText(L.Quantity) from T08_ESTIMATES E join T09_EST_LINE_ITEMS L on E.ID_Estimate = L.id_estimate where E.ID_Estimate = ?
修改后的完整代码
MVL_Dropdown ( ExecuteSQL ( "select L.Product || ' ' || GetAsText(L.Quantity) from T08_ESTIMATES E join T09_EST_LINE_ITEMS L on E.ID_Estimate = L.id_estimate where E.ID_Estimate = ? "; ""; ""; T19_TASKS::preitem ) )
小提示
- 可以先单独测试
ExecuteSQL部分(比如放到一个临时计算字段里),确认返回的是你想要的拼接结果,再套进MVL_Dropdown里; - 如果
Product字段不是文本类型(比如是数字或其他格式),也需要用GetAsText(L.Product)转成文本后再拼接。
内容的提问来源于stack exchange,提问作者snookian
相关产品推荐
相关产品推荐

