附3 教程中主要用到的公式

ds.select(`ds.id`,`ds.性别==Dict.性别.男`,["部门","-id"],2,10):获取性别为男的用户id,先按部门排序,部门相同的按id反向排序,从第3条开始,获取10条数据

ifv(it.性别==null || it.性别=="",@xingbie,it.性别):是如果用户记录it的性别字段是空的,那么返回参数xingbie的值,否则返回 性别字段的值

http://localhost/misshop/index.jsp?query.ds.%E6%80%A7%E5%88%AB=1#cGFnZS_ns7vnu5_nrqHnkIYv55So5oi3566h55CG : 在原网址中加入?query.ds.性别=1,查看都是男性的用户。或者在链接的控件属性中,普通参数项,加上参数名query.ds.性别,参数值Dict.性别.男

?query.ds.性别=1&query.ds.部门.名称=业务部 :两个参数的情况,性别是男,并且属于业务部。

query.ds.id.ngt=3 或者 query.ds.id.小于=3 :id大于等于3(不大于)

query.ds.id.lt=3 或者 query.ds.id.小于=3 :id小于3

query.ds.名称.like=张三 :名称 包含 张三

query.ds.id.in=[1,3,4] :id 在某数组中 [1,3,4]

query.ds.部门.名称.like=业务 :部门的名称包含 业务

query.ds.部门.部长.名称=admin :部门的部长的名称是admin

query.ds.部门.部长.名称.like=张 :部门的部长的名称包含 张

simpleauth=false: 项目文件夹下的project.mis文件中,找到simpleauth这一行,把simpleauth=true改为simpleauth=false,改完后重启设计器,打开按钮级权限。

=query.ds.部门.主管 : 选择一个用户,列出该用户管理的部门的用户。

=query.ds.OM_主管^部门 : 按照选择的部门,去找这个部门的主管

=ds.OM_主管^部门.名称 : 列表项里的单元格中写,表示这个用户管理的部门的名称,一对多

单元格值为Dict.性别.男(无等号),保存至 属性里为=query.ds.性别 : 查询区的这个格子初始有值是Dict.性别.男,这样初期进去就仅显示男性用户。

Web.Query.innerQuery(@mis_queries) : 立即查询,控件属性高级的值改变事件加这一句

=ifv(dynamic(C2)==1,Date.today().addDay(-1*dynamic(B2)),C2==2,Date.today().addMonth(-1*dynamic(B2)), Date.today().addYear(-1*dynamic(B2)) ),保存至 为 query.ds.生日.大于等于 : 如果C2==1,那么当前日期减去B2的值的周,如果C2==2,当前日期减去B2的值的月,否则当前日期减去B2的值的年。通过dynamic,当C2和B2的值变动时,G2的值计算为开始日期,通过生日的大于等于关系进行查询。显示这一段周期内生日的人。

= dynamic(A2)+B2:A2是输入框,就可以实现A2变化,C2的值跟着变化的效果。

ifv(dynamic(D4)==Dict.性别.男,-16777000,-16720356) :B4的前景色属性公式中录入动态颜色公式,如果D4值为 字典项男性(也就是1),那么是蓝色,否则是绿色)。页面属性要为可编辑,可编辑会影响生成什么样的控件,不影响保存!

dynamic(it.部门)==1 : 可视属性里填入,部门是 业务部(id为1)的时候,相片和描述可见,其他时候不可见。

ifv(dynamic(it.性别)==Dict.性别.男,Validate.长度校验(value(),5,10),Validate.长度校验(value(),10,20)) : 如果是男性,长度允许5到10,否则长度允许10到20。value()是当前单元格的动态值,跟dynamic一样

save.onlyInsert(it) : 表示it 在新增的时候才保存,可以在任意一个格子的保存至表达式里写

save.onlyUpdate : 如果是更新,执行。如果是插入,不执行。

save.abandon(it) : 表示 it 记录符合条件则不保存。把条件的公式写在一个格子里,保存至 属性里写这个函数。如果这个格子计算结果是 true,那么保存会放弃执行。

it.商品:it.商品 | it_库存.商品。it.仓库:it.仓库 | it_库存.仓库 : 同步保存,联合确定记录,这里没有id,由联合主键的字段商品和仓库共同决定。有id时写一个id就够了。
it.入库数量:it.入库数量 | save.dbIncrement(it_库存.数量) : 表示同时把这个数值作为增量存储到库存表的对应记录的数量里。

table.商品.findOne(table.商品.id==dynamic(It.商品)).单价 * dynamic(it.数量):根据动态商品查找单价,再乘以 动态的 数量,可以写到保存至的 总价。

单元格的值为 =me.id ,保存至 的公式填入 it.联系人 : 表示客户编辑页面中, 联系人 的初值应该是当前用户。

Mis.Formater.toJson(bumen) : 生成Json数据。提供数据给其他地方使用的时候,在页面配置中把页面类型设置为 数据 ,访问这个页面的时候,得到会是JSON格式的页面数据。

DataSet.createByCells(Cl.A1,Cl.C2):用页面单元格构造数据集,第一行是列头,其他行是数据,支持扩展行列,第一个参数是起始格,第二个参数是终止格

http://localhost/misshop/cGFnZS_ns7vnu5_nrqHnkIYvYWE=.raq?mis_request_datas=juese,ds : 前端请求的URL里添加参数mis_request_datas=juese,ds,将仅返回juese和ds这两个数据。

把 ds.xx 改为 table.客户.xx : 查询的时候需要,就不再表示页面数据的关联列,而是数据表的关联列
=table.用户.sum(table.用户.id) : 不分页求和
=ds.sum(ds.id) : 分页的求和,如当ds记录条数超过20条,分成多页显示,则只对当前页的数据求和

table.客户.find(table.客户.联系人.手机号=="15010002000") :查找联系人手机号是15010002000的客户。

table.客户.find(table.客户.联系人.部门==me.部门):查找联系人和当前用户相同部门的客户。

table.客户.find(table.客户.联系人.部门.主管==me.id):查找当前用户负责的部门的客户。

table.客户.find(table.客户.联系人.部门.主管==me.id || table.客户.联系人==me.id):查找当前用户负责的部门的客户,以及当前用户的客户。

ds.联系人.手机号: 客户联系人的手机号。
ds.联系人.角色: 客户联系人的角色。
ds.联系人.部门:客户联系人所在的部门 (这里是部门id,但可能显示为部门名称)
ds.联系人.部门.名称:客户联系人所在的部门的名称。
ds.联系人.部门.主管:客户联系人所在的部门的主管(主管id)。
ds.联系人.部门.主管.名称:客户联系人所在的部门的主管。
ds.联系人.部门.主管.手机号:客户联系人所在的部门的主管的手机号。

query.ds.名称 :输入文本,查找名称包含输入文本的客户 。
query.ds.名称.eq :输入文本,按照名称完全相等查询
query.ds.性别 :选择一个性别,查找性别为选中项的客户。
query.ds.联系人 :选择一个用户,查找联系人是该用户的客户。
query.ds.生日 :选择一个日期,查找生日在该天的客户。
query.ds.生日.大于等于 :选择一个日期,查找生日大于等于该天的客户
query.ds.生日.小于 :选择一个日期,查找生日小于该天的客户

query.ds.联系人.名称 : 按照名称查询,查找联系人名称包含输入文本的客户。
query.ds.联系人.名称.eq : 按照名称查询,查找联系人名称和输入文本完全相同的客户。
query.ds.联系人.部门 : 选择一个部门,查找联系人的部门为选择的部门的客户。
query.ds.联系人.部门.名称 : 输入部门名称,查找联系人的部门名称包含输入文本的客户。
query.ds.联系人.部门.主管 : 选择一个用户,查找联系人的部门主管是选中用户的客户。

=ds.联系人.OM_主管^部门.名称:客户的联系人管理的所有部门的名称的列表 [业务部,财务部] 。多对一关联,直接用小圆点接,这是一对多关联

ifv(ds.重要度==Dict.重要度.非常重要,"btn-outline-warning","btn-secondary") : 动态控制显示样式,样式名把鼠标浮在“默认样式”上的黄色框中有
ifv(ds.性别==Dict.性别.男,"fa fa-chevron-up ","fa fa-chevron-down ") :如果客户是男性,那么客户名显示 使用 向上 的图标,如果是女性,那么客户名 使用 向下 的图标

=ds.group(ds.学生.班级.名称):将数据按照班级分组
=avg(E3):统计E3格扩展后所有格的平均值
=ds.count(ds.学历==A7):统计学历等于A7格中值的数量

=table.简历信息.max(table.简历信息.期望薪水下限):求期望薪水下限的最大值
=table.简历信息.sum(table.简历信息.期望薪水下限,table.简历信息.求职人.学历=="本科"):求期望薪水本科级别薪水的和=table.简历信息.count(table.简历信息.求职人.学历=="本科")`:求本科求职人的数量

常见的函数空间:
Date:日期函数
Math:数学函数
Str:文本函数(字符串函数)
List:数组函数
Map:键值对函数

=A1.addYear(1).addMonth(1).addDay(1).addHour(1).addMinute(1).addSecond(1) : A1的日期往后推1年,1月,1日,1时,1分,1秒之后的日期。

=Date.now().setHour(0).setMinute(0).setSencond(0).setMilliSecond(0) : 当前时间的时分秒毫秒都设置为0,也是Date.today()
=Date.now().year:当前年数
=Date.now().hour:当前小时数
=Date.now().second :当前秒数

Date.today() : 返回表示今天零点的日期对象。
Date.now() : 返回表示当前时间的日期对象。
Date.parseDate("2014-10-13") : 返回表示2014年10月13日的日期对象。

Date.today().addDay(1) : 返回昨天的日期对象。
Date.today().setDay(1).addHour(1) : 返回当月1号,1点的日期对象。

table.客户.提交时间 > = Date.today() && table.客户.提交时间 < Date.today().addDay(1) : 表示提交时间大于等于当前日期(0点),小于明天(0点)。

value()>=dynamic(it.单价)*dynamic(it.数量) :订单的校验类型里直接写公式
Validate.validRegex(value(),"/^1[3-578]\d{9}$/") : 手机号的正则校验

=table.学生.saveRecord({"id":ds.id,"是否通过":true});null :将学生表的是否通过字段设置为true,并且该单元格不返回任何值。

=ifv(it.学历证书编号==null&&(it毕业状态.名称=="毕业"||it毕业状态.名称=="结业"||it毕业状态.名称=="双学位"),it宏.学历编码前缀+str(Sequence.increment(it宏.学历编码前缀),"#000000"),it.学历证书编号):根据状态自动生成流水证书编号
注意,ifv函数可以对多个表达式进行判断,如ifv(A1,x1,A2,x2,A3,x3,x4),表示如果条件为A1则返回x1,其余的如果条件为A2则返回x2,其余的如果条件为A3则返回x3,都不满足则返回x4。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容