美文网首页
数据保存(一) - 初值和保存到不同的表中

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

作者: MisShop智能开发平台 | 来源:发表于2018-07-30 09:05 被阅读0次

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

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


    1.页面数据的保存选项

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

    配置页面数据保存

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


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

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

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

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


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

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

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

    • it.单价 :it.单价表示 单价字段。it.数量 表示 数量字段。
      知识点: it 表示该表的当前记录。

    • dynamic(it.单价):在录入订单的界面中,it.单价 将会是一个输入框,用户可以随时输入和修改它的值,所以这里表示录入界面中,单价字段还是数量字段的值的改变,都会导致 价格 字段 的初值 动态变化。

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

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

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

    • table.商品.findOne :根据条件去 商品表 查找一条记录。
    • table.商品.id==dynamic(It.商品):筛选条件是 商品表的记录的id 等于 表单中 商品字段的动态值(也就是商品改变了,查找的条件也发生改变)
    • 整个公式就表示,根据商品动态的查找商品单价,再乘以 动态的 数量。

    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_用户是子表的数据集)。

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

    相关文章

      网友评论

          本文标题:数据保存(一) - 初值和保存到不同的表中

          本文链接:https://www.haomeiwen.com/subject/dvvwuftx.html