3.5 公式与函数

MisShop通过公式,可以便捷地完成各种强大功能。MisShop的公式和Excel类似,简洁直观。在单元格中,以"="开头的是公式。公式类型包括:常量、运算符、单元格引用、数据、函数等。

  • 常量公式:例如=200=-2.83="abc def"="张雨涵"=true=false等。
  • 运算符公式:例如=200+3.5="这是"+8+"号"=3>5等。
  • 单元格引用:例如=B4+C4(注意列号字母必须大写
  • 数据:例如=ds.id=it.名称等。
  • 函数:例如=Date.now()=Math.pow(10,8)等。常见的静态函数空间有
    Date:日期函数
    Math:数学函数
    Str:文本函数(字符串函数)
    List:数组函数
    Map:键值对函数

使用函数时,在单元格输入函数空间名,再输入小圆点,平台就以下拉列表的形式显示可选的所有函数,实现纯键盘的快捷录入。同时在小圆点后输入函数的部分字母或拼音首字母,平台会实时筛选出可选函数,鼠标移动到函数名上时会提示函数说明,极大方便函数录入。

单元格中还可以写多条公式。如页面数据定义了sss为数组,其初始化函数为List.parse()。在页面单元格写上=sss=split(it.专业名称,"(");sss.get(0),意思是返回这条记录的专业名称字段的括号前面的字符串。


常用的函数

  • select():我们在新生成的页面常看到单元格内容是 =ds.select(ds.id),这个公式意思是本单元格显示ds数据集的id字段,如果这个数据集有多条记录,则在浏览器中,该单元格向下扩展为多个单元格,每个格显示一条记录的id。

当该单元格可以向下扩展时,单元格内会显示一个向下的红色箭头。此时如果右边的单元格如 =ds.名称 格在高级属性里设置了左主格(默认已设置),则这些单元格会跟着=ds.select(ds.id)格一起向下展开,表现在网页上就是显示很多行记录。如果单独写一个=ds.id,则只会显示ds记录集里的第一条记录的id字段。

select()可以带过滤条件参数,其作用与sql语言中的select相似,指定显示字段,查询满足条件的记录,显示出来。如ds.select(`ds.id`,`ds.性别==Dict.性别.男`,["部门","-id"],2,10)表示查询性别为男的用户的id,先按部门排序,部门相同的按id反向排序,从第3条开始,获取10条数据。

  • find():查询满足条件的数据。常用在变量的初始化函数中,如ds的初始化函数为 table.用户.find(table.用户.性别==Dict.性别.男,["-id"])。find()函数返回的结果是一个数据集,但直接放在单元格时,不能根据数据集记录条数展开显示,如同=ds.id一样,只会显示第一条。

  • findOne():返回满足条件的一条记录。例如it变量的初始化函数table.用户.findOne(table.用户.id == @it_id,[]),返回的是一条记录。

  • dynamic():表示获取某个单元格的动态显示值,如A2单元格的内容设置为=dynamic(A1),则一旦A1的值改变,A2也跟着改变。后期书写形式可以直接写成dynamic.A1 。

  • ifv():根据条件设置值。如B2单元格的内容设置为=ifv(A2>=100,"BIG","SMALL"),则当A2的值大于等于100时,B2单元格显示BIG,否则显示SMALL
    如在A2单元格的基本属性可视 项目右侧的公式栏写上=ifv(A1=="可用",true,false),则当A1单元格内容为“可用”时,B2的内容显示,否则不显示。
    =ifv(it.性别==null || it.性别=="",@gender,it.性别)表示如果it的性别字段是空的,那么返回参数gender的值,否则返回性别字段的值。

不同形式开头的函数功能有细微差别,例如求和的函数:
=table.用户.sum(table.用户.id , table.用户.id/2==0) :对整个数据表的偶数id求和。
=ds.sum(ds.id , ds.id/2==1) :分页的求和,只对当前页面显示记录的id求和,虽然ds的定义也是从table中得来。

对于返回记录或数据集类型的函数,其后加上小圆点后可以下拉显示候选值。如=table.用户.findOne(table.用户.id==12).性别,表示id为12的用户的性别。但函数返回值下拉的字段还是一个引用的话,不能连续下拉多次。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容