在云表中利用数据源实现按步长累加计算,18luck新利手机版下载
2015-10-14 07:46:38
9047
5
利用数据源实现按步长累加计算 数据接口,填表公式,业务公式是云表平台的3架马车。业务公式是实现业务逻辑工具,业务公式中经常用数据接口作数据源来提供数据,通过数据接口实现列扩展,行扩展。所以深入理解数据源的工作原理显的很重要。之前看过N遍乐乐老师BOM设计与应用的视频教材,学习过后能基本理解其应用。但感觉还是比较抽象,几天不接触学习感觉又会生疏。 所以尝试用平常的数字加法方式来进行学习分析。实现内容:从指定的某个数开始,并按固定步长进行累加,到指定的结束数为止计算各数据之和。 若按传统软件开发,肯定是IF ,ELSE 的嵌套循环方式进行条件判断及累加。需要用代码编程方式实现。用云表平台的业务公式借助数据源(数据接口)怎么实现呢? 先实现简单要求:从1开始,按步长为1进行累加,到10为止。即从1+2+3+….+10=55. 数据接口利用系统预设的序号列表,利用开始序号,结束序号分别对应开始数,结束数。 。 1. 设置操作界面: 实现思路说明:先把符合条件的数字填写到明细表中,然后利用SUM()函数进行累加。主表与明细表结合的方式,思路确定后动手画制模板。如下图: 2. 设置单据状态设置 3.1 设置业务公式:(主表设置), 3.2 设置业务公式:(明细表设置) 注意:设置明细之前必须制定对应的主表,本实列通过”单号”来确定主表。因步长为1,这里就不设置步长参数了。 4. 测试效果。从1开始,按步长为1,一直累加到10. 累加得数为55. 如下图。 利用“序号列表”的数据接口,根据开始序号=开始数,结束序号=结束数,符合条件的序号数写入到明细表中,利用序号列表中的调试可见一斑。即通过下图数据接口的“调试”功能,开始序号输入1, 结束序号输入10,查询后得到从1到10连续的10个数字。如下图。 但真正把数据写入到业务公式目标表,是需要符合相关操作要求和条件的。我们逐步分析各步骤及含义:如下图:各操作步骤标注的左侧红色编号: 1. 选择数据源:本表单(即主表,根据需要也可以选择明细表)。在下方填些表达式时可以利用所选的本表单或明细表。 2. 情况:执行条件—单据状态=常量.是。 即按下菜单按钮时执行。根据需要可以设置情况1,情况2,情况N. 从左往右依次执行。 子数据源的设置: 说明:数据接口的作用即根据数据接口参数, 开始数=1关联到数据接口的开始序号,结束数=10 关联到数据接口的结束序号。 即利用数据接口实现目标表的行扩展或者列扩展,根据实际情况可以设置同级数据源或者子数据源。注意需要多记录时小方框需打勾。 3.当满足以下条件时: 其实增加了过滤条件,使之业务公式更加灵活多变,复杂的逻辑往往也通过此设置条件进行实现。包括下面列子:“按步长取数”也通过此设置条件得到。 4. 对目标表执行什么操作: 目标表区分主表与明细表,即下图左侧蓝色字体说明。 具体操作:插入,删除,更新,报错,自动流程。 本列子为“插入记录”操作。 插入操作时的“赋值”:这个填写需要转换个思路,一般填写往往是具体的某个结果。这里填写的是“序号列表.序号”,是数据接口中的数值。如下图: 以上1,2,3,4操作步骤设置内容图示: 图:各操作步骤标注 因为在上面第3步骤中我们没有设置条件,所以根据数据源头设置的从1到10.连续10个数字全部取得。即明细表插入了从1到10的数据,根据SUM()函数得到的汇总数值为55. 若能理解以上操作原理。下面按设置步长获取数据过程也就不难理解了。 要求:比如从1开始,固定步长为3,一直到10为止的各数字之和。 即1+4+7+10=22. 第1个数字与最后1个数字分别对应开始数,结束数, 比较容易取得。但中间的4,7的数字根据步长得到,而且数据个数不固定。这个实现需要梳理下思路,如果步长为1从上面分析结果是全部取数,步长为3时,是需要符合一定条件的数字才可获取。这个条件怎么写,是否有现成的函数? 最终通过(数学函数—求余数)。如下图 即按“步长的整数倍+开始数”,并且符合在区间内的数字填写到明细表中。 这个过程实现的原理: 先根据数据接口获取从1到10的数字,并从第1个数字1开始,代入以上公式是否满足,若满足条件执行“插入记录”。 求余数(<被除数>,<除数>)=余数。 余数为0的序号列表.序号数赋值给明细。 (2-1)/ 3---- 余数为1, 不符合条件。 (3-1)/ 3---- 余数为2, 不符合条件。 (4-1)/ 3---- 余数为0, 符合条件。 (5-1)/ 3---- 余数为1, 不符合条件。 (6-1)/ 3---- 余数为2, 不符合条件。 (7-1)/ 3---- 余数为0, 符合条件。 (8-1)/ 3---- 余数为1, 不符合条件。 (9-1)/ 3---- 余数为2, 不符合条件。 (10-1)/ 3---- 余数为3, 符合条件。 从上面分析得到 数字分别是4,7,10,因为10刚好也是结束数。 为避免不重复赋值,需要写个条件进行排除,这个留给大家思考….. 从上面分析可以看出,数字从1到10每个数都会循环比对,即术语中的“遍历”。 实现传统软件中 IF ,ELSE 的循环嵌套的功能。 显示结果如下图, 隐藏明细等不必要显示内容,最终呈现如下图: 欢迎转载,转载请保留本文地址//www.remedymn.com/bbs/t-781-1.html谢谢。 |
+1
0
5条回帖
利用数据源实现按步长累加计算
数据接口,填表公式,业务公式是云表平台的3架马车。业务公式是实现业务逻辑工具,业务公式中经常用数据接口作数据源来提供数据,通过数据接口实现列扩展,行扩展。所以深入理解数据源的工作原理显的很重要。之前看过N遍乐乐老师BOM设计与应用的视频教材,学习过后能基本理解其应用。但感觉还是比较抽象,几天不接触学习感觉又会生疏。
所以尝试用平常的数字加法方式来进行学习分析。实现内容:从指定的某个数开始,并按固定步长进行累加,到指定的结束数为止计算各数据之和。
若按传统软件开发,肯定是IF ,ELSE的嵌套循环方式进行条件判断及累加。需要用代码编程方式实现。用云表平台的业务公式借助数据源(数据接口)怎么实现呢?先实现简单要求:从1开始,按步长为1进行累加,到10为止。即从1+2+3+….+10=55. 数据接口利用系统预设的序号列表,利用开始序号,结束序号分别对应开始数,结束数。
1.设置操作界面:
实现思路说明:先把符合条件的数字填写到明细表中,然后利用SUM()函数进行累加。主表与明细表结合的方式,思路确定后动手画制模板。如下图:
2.设置单据状态设置 3.1设置业务公式:(主表设置),
3.2设置业务公式:(明细表设置)
注意:设置明细之前必须制定对应的主表,本实列通过”单号”来确定主表。因步长为1,这里就不设置步长参数了。
4.测试效果。从1开始,按步长为1,一直累加到10. 累加得数为55. 如下图。
利用“序号列表”的数据接口,根据开始序号=开始数,结束序号=结束数,符合条件的序号数写入到明细表中,利用序号列表中的调试可见一斑。即通过下图数据接口的“调试”功能,开始序号输入1,结束序号输入10,查询后得到从1到10连续的10个数字。如下图。
但真正把数据写入到业务公式目标表,是需要符合相关操作要求和条件的。我们逐步分析各步骤及含义:如下图:各操作步骤标注的左侧红色编号:
1.
选择数据源:本表单(即主表,根据需要也可以选择明细表)。在下方填些表达式时可以利用所选的本表单或明细表。
2.
情况:执行条件—单据状态=常量.是。 即按下菜单按钮时执行。根据需要可以设置情况1,情况2,情况N. 从左往右依次执行。
子数据源的设置:
说明:数据接口的作用即根据数据接口参数,
开始数=1关联到数据接口的开始序号,结束数=10 关联到数据接口的结束序号。
即利用数据接口实现目标表的行扩展或者列扩展,根据实际情况可以设置同级数据源或者子数据源。注意需要多记录时小方框需打勾。
3.
当满足以下条件时
:其实增加了过滤条件,使之业务公式更加灵活多变,复杂的逻辑往往也通过此设置条件进行实现。包括下面列子:“按步长取数”也通过此设置条件得到。
4.
对目标表执行什么操作
:
目标表区分主表与明细表,即下图左侧蓝色字体说明。
具体操作:插入,删除,更新,报错,自动流程。本列子为“插入记录”操作。
插入操作时的“赋值”:这个填写需要转换个思路,一般填写往往是具体的某个结果。这里填写的是“序号列表.序号”,是数据接口中的数值。如下图:
以上1,2,3,4操作步骤设置内容图示。
因为在上面第
3步骤中我们没有设置条件,所以根据数据源头设置的从
1到
10.连续
10个数字全部取得。即明细表插入了从
1到
10的数据,根据
SUM()函数得到的汇总数值为
55.
若能理解以上操作原理。下面按设置步长获取数据过程也就不难理解了。
要求:比如从
1开始,固定步长为
3,一直到
10为止的各数字之和。
即
1+4+7+10=22.第
1个数字与最后
1个数字分别对应开始数,结束数,
比较容易取得。但中间的
4,7的数字根据步长得到,而且数据个数不固定。这个实现需要梳理下思路,如果步长为
1从上面分析结果是全部取数,步长为
3时,是需要符合一定条件的数字才可获取。这个条件怎么写,是否有现成的函数?
最终通过(
数学函数
—
求余数)。如下图
即按“步长的整数倍
+开始数”,并且符合在区间内的数字填写到明细表中。
这个过程实现的原理:
先根据数据接口获取从
1到
10的数字,并从第
1个数字
1开始,代入以上公式是否满足,若满足条件执行“插入记录”。
求余数(
<被除数
>,<除数
>)
=余数。
余数为
0的序号列表
.序号数赋值给明细。
(
2-1)
/ 3----余数为
1,
不符合条件。
(
3-1)
/ 3----余数为
2,
不符合条件。
(
4-1)
/ 3----余数为
0,
符合条件。
(
5-1)
/ 3----余数为
1,
不符合条件。
(
6-1)
/ 3----余数为
2,
不符合条件。
(
7-1)
/ 3----余数为
0,
符合条件。
(
8-1)
/ 3----余数为
1,
不符合条件。
(
9-1)
/ 3----余数为
2,
不符合条件。
(
10-1)
/ 3----余数为
3,
符合条件。
从上面分析得到
数字分别是
4,7,10,因为
10刚好也是结束数。
为避免不重复赋值,需要写个条件进行排除,这个留给大家思考
…..
从上面分析可以看出,数字从
1到
10每个数都会循环比对,即术语中的“遍历”。
实现传统软件中
IF ,ELSE的循环嵌套的功能。
显示结果如下图,
|
+1
0