数据保存(一) - 初值和保存到不同的表中

2018-07-30  本文已影响0人  MisShop智能开发平台

保存,除了配置一个保存按钮,触发所有的保存动作外。主要是配置哪些格子需要保存,保存到什么字段。

前情提示:页面配置里有一个选项:是否允许编辑。这个选项只是会影响数据集或者记录,生成可以编辑的控件,还是生成仅显示的控件,而与最终的保存没有关系。


1.页面数据的保存选项

页面数据配置为可保存,那么保存时,该数据的字段都会被保存。
详情页面中,代表详情页的主数据记录的 it 会被默认设置为可保存,其他都需要手动设置。

配置页面数据保存

保存(是):表示页面上展示的数据修改后,是否还要保存回数据库。是表示会回存。
我们试验一下就会发现,当 it 的保存属性被设置为 是 的时候,点击保存按钮,it 的所有的字段都会被保存。当设置为 否 的时候,修改保存无效。


2.数据表视图中定义字段的初值

有的字段的初值,可能是某些业务逻辑规定的,而不是使用者自行填写的。
例如客户表中, 联系人 应该是 当前用户, 提交时间 应该是 当前时间,未结货款 应该是 0 。可以通过在数据表视图中,定义字段的初值表达式来实现。

数据表定义初值
联系人:me.id 表示当前用户。
提交时间:Date.now() 表示当前时间。Date.today()表示当天
未结货款:0 表示初值为0。
性别: Dict.性别.男 表示 默认是男性。

PS:通过数据表定义字段初值可以影响所有添加该字段的页面,并且可以随时增补和修改。


3.较复杂的初值用法1:单价数量或者 查找商品的价格数量

订单表中的价格= 单价 * 数量。其中单价和数量是输入的,那么价格的初值应该设置为什么公式呢?

dynamic(it.单价) * dynamic(it.数量)

知识点:dynamic 关键字,表示将会随着dynamic里面的值的改变而动态变化。

如果订单表没有 单价字段,而由商品字段,而价格由商品字段查找到的单价字段决定,该如何表示呢?

table.商品.findOne(table.商品.id==dynamic(It.商品)).单价 * dynamic(it.数量)


4.页面视图中修改字段的初值。(限于单个页面生效)

如果想让这些初值仅在单个页面生效,可以不在数据表视图中设置,而是在页面视图中设置。

例如 希望 客户编辑页面中, 联系人 的初值应该是当前用户。
那么可以在客户编辑页面中找到联系人的数据字段 =it.联系人(如果 客户记录 的数据名是xx,那么就是 = xx.联系人。
把单元格的值改为 =me.id ,然后在右侧的属性栏 -> 基本属性 -> 保存至 的公式里,填入 it.联系人

提示: 保存至属性表示这个格子的值最终要被存到哪个字段中。

例如上述示例,表示 me.id 这个格子的值,将被存储到 it 记录的联系人字段中( it 是 客户表的记录,所以最终是和其他it的字段一起,被存储到了客户表的 联系人字段里)。

同理 订单表的新建页面中:希望订单的价格是 根据商品查找到的动态单价*动态数量的话,可以把 it.价格 格子 的值改为:
=table.商品.findOne(table.商品.id==dynamic(It.商品)).单价 * dynamic(it.数量)
而保存至属性设置为 it.价格


4.格子的值保存到不同的表的多个字段。

例如 部门和下属的用户的 主子表中,如果不依靠模板和平台手动处理的时候。
部门的id,应该同时保存到 用户子表的部门字段中,表示这个用户是该部门的。
那么应该在 =it.id (部门的id)格子的保存至公式中,写入 it.id | ds_用户.id
(ds_用户是子表的数据集)。

提示: 保存至属性中, | 表示并列的多个字段,表示单元格的值将被存入这些字段中。

上一篇下一篇

猜你喜欢

热点阅读