标签:
filemakerit |
分类: FileMaker函数 |
FileMaker Pro 12中的ExecuteSQL是一个很重要的函数,使用它可以简化很多关系的建立,比如原来某个值列表需要建立关系从关联表获取,现在只需要一个ExecuteSQL语句就可以得到了。之前我写了一篇博文简要的介绍了一下它的语法(http://blog.sina.com.cn/s/blog_495e704c01012bmn.html),并根据W3C School的SQL部分对每个基本的SQL语句进行了测试性的验证。今天我准备更加详细的把ExecuteSQL的用法介绍一下。可以说FileMaker Pro支持的SQL语句主要是依据FileMaker 12 ODBC and JDBC Guide文档的第7章(http://www.filemaker.com/support/product/docs/12/fmp/fm12_odbc_jdbc_guide_en.pdf),请结合该文档的第七章阅读本文。之前也介绍过了,FileMaker Pro 12支持的SQL语句仅限于Select。下面先看看我们的实例表和测试数据:
我们有3张表T1,T2,T3:
标签:
filemaker |
分类: FileMaker实用技巧 |
在使用FileMaker开发解决方案的过程中,经常需要对某个字段进行一些格式化,比如订单号必须是AB0000x这种形式,或者比如5/9/2012这样一个日期,需要提取日期“9”并把它格式化为“09”。下面我就通过一个例子讲一下这个方法。
原始数据:5/9/2012
格式化后:20120509
先给出结果:Right(date;4) &
首先看提取年:Right(date;4) 这个很好解释直接取右边4位
然后取月:Let($end = Position ( date ; '/' ; 0 ; 1 );Right ( '0'& Left(date;$end-1) ; 2 )) 先用end变量存储第一个'/'号的位置,然后用Left取出月,为了把单数月格式化为0x的形式,使用前面加0然后Right右两位的方法。
最后取日期:Let([$start = Position ( date ; '/' ; 0 ; 1 );$end =
标签:
filemaker |
分类: FileMaker函数 |
FileMaker Pro 12添加了一个很重要的函数,就是ExecuteSQL,这个函数可以直接执行SQL语句获取FileMaker表中的数据。
函数原型:
ExecuteSQL(sqlQuery; fieldSeparator; rowSeparator {;arguments...})
参数:
sqlQuery:查询数据的SQL语句。SQL语句中可以使用Union和Where进行联合查询和条件查询。使用?来进行指定条件查询的参数。
fieldSeparator:字段分隔符。如果返回的结果包含多个字段,则使用这个参数指定一个字段分隔符。
rowSeparator:行分隔符。如果返回结果包含多个行,则使用这个参数指定一个行分隔符。
arguments:查询参数。主要是在使用Where子句时指定动态参数使用。
返回值类型:字符串
解释:ExecuteSQL函数不能使用诸如Create,Update,Delete等SQL语句对FileMaker表结构进行修改。只能进行数据查询。
如果返回是日期和时间,返回值的格式遵循SQL标准而不是FileMaker中定义的格式。
如果查询过程有误FileMaker返回?作为结果。
ExecuteSQL不认识FileMaker中定义的表关系,所以用户可以自
标签:
filemaker |
分类: FileMaker函数 |
目的:返回需要查找的字符串在源字符串的起始位置。
函数原型
Position(text;searchString;start;occurrence)
Position(“源字符串”;“需要查找的字符串”;“开始下标”;“出现次数”)
参数说明:
源字符串:任何字符串或者字段
需要查找的字符串:任何字符串或者字段
开始下标:任何数字或者含有数字的字段;表示从源字符串的哪一个字符开始查找
出现次数:任何数字或者含有数字的字段;表示需要查找的字符串是第几次在源字符串中出现,可以是负数,表示从后向前的出现次数。如果是0,则属于非法参数,函数将返回0
例子:
Position(“Mississippi”;“iss”;1;1) 返回 2.
Position(“Mississippi”;“iss”;1;2) 返回 5.
Position(“Mississippi”;“iss”;3;1) 返回 5.
Left(Name;Position(Name;“ “;1;1)-1) 返回 William, Name字段是 William Smith.
Right(Name;Length(Name) - Position(Name;“ “;Length(Name);-1)) 返回 Smith.