上一页
场景:在采购订单中,原有的明细修改,列表多选情况下,没有历史价格的明细不会刷新
解释:采购单中商品的单价填充是根据历史价格中最新的和最高的来匹配,当没有历史价格时,可以手工填写,并且在列表多选的情况下,手工填写的价格不会被冲掉

方法1

1. 建立采购单



为了方便展示,临时表没有隐藏

2. 建立视图

查找历史数据中最新和最大的单价需要建立视图
最新的单价信息:手工编写sql语句,因为单号是递增的,所以寻找最大的单号,即最新的价格信息

最大的单价:在最新单价信息的基础上,找出最大的单价

3. 建立表间公式

q单价公式用于从视图数据中查询最新和最大单价

q复制公式用于将明细表中的数据复制到临时表,主要是用于记录没有历史数据、手工填写单价信息的产品信息(原因是因为当执行q单价时,会将填充区域清空,手工填写的单价信息也会被清空,所以需要临时表来保存清空前的单价数据)

q提取公式用于将填写的单价填充到明细中

4. 建立报表命令

当单元格编辑后(本文指列表选择时),触发表间公式,有历史数据的从视图中选取(q单价),没有历史数据的从临时表中提取(q提取)

该报表命令用于当编辑单价时,就将单价信息保存到临时表中,以便后来的提取

5. 效果

选取所有的产品信息,此时水杯和本子没有单价信息,其他商品有历史单价信息

手工填写本子的单价,临时表中会记录此时的单价信息

列表多选时,手工填写的单价信息不被冲掉

方法2

上述的方法比较繁琐,原因在于建立表间公式的时候选择了手动执行,然后通过报表命令来触发;下面来阐述另一种方法:
建立采购单和建立视图和方法1一样,建立表间公式q单价如下

和方法1的q单价公式一样,只是改成了筛选条件改变后自动执行,当列表进行多选时,筛选条件在改变,而没有历史价格,手工填写价格的产品筛选条件并没有被改变,所以数据不会被冲掉

下一页

作者:严双圆  创建时间:2022-05-30 09:22
最后编辑:魏仁友  更新时间:2023-10-27 14:27