大家好,又見面了,我是你們的朋友全棧君。
本帖子想要達到的效果:
會配置實體服務規則(能用實體服務規則實現的,盡量選用實體服務規則實現),
設置實體服務規則的字段必然觸發條件,
小數類型的 可以實現向下取整、四捨五入、向上取整 功能。
先看界面測試效果:
小數1.0 向下取整1.0、四捨五入1.0、向上取整1.0
小數1.1 向下取整1.0、四捨五入1.0、向上取整2.0
小數1.5 向下取整1.0、四捨五入2.0、向上取整2.0
小數1.99 向下取整1.0、四捨五入2.0、向上取整2.0
具體設置:
添加4個小數字段,分別為 “小數”“小數_向下取整“、“小數_四捨五入“、“小數_向上取整“。
單據頭添加實體服務規則:
實體服務規則,小數字段改變,觸發相應的3個字段取數
(如果是值更新方式實現,需要配置小數字段的3個值更新服務,
並且如果涉及到多個字段每個字段都需要配置值更新,
如配置實體服務規則,清晰明了),
前提條件:小數字段改變條件 小數=小數 字段必然觸發條件
這裡經常有人會問到設置成 1=1,這樣設置是不會進行執行的,
因為實體服務規則的是否需要執行,是需要先判斷某個字段值改變了,相應的字段標識是否設置在了實體服務規則的前提條件中,
如在裡面,才會進行解析判斷前提條件,顯然 設置1=1 是不包含任何字段的標識,也就相當於一條無用的實體服務規則配置。
具體的三個計算公式的設置:
F_PAIK_Decimal1 = int ( F_PAIK_Decimal )
即 小數_向下取整 = int ( 小數 ) int 向下取整
F_PAIK_Decimal2 = round ( F_PAIK_Decimal )
即 小數_四捨五入 = round ( 小數 ) round 四捨五入
F_PAIK_Decimal3 = int ( round ( F_PAIK_Decimal + 0.49 ) )
即 小數_向上取整 = int ( round ( 小數 + 0.49 ) )
這裡要注意下:Python是支持 math.ceil(小數值) 但我們這裡是直接用不了的,
因為需要導入 import math 模塊的,我們這裡就不能進行使用。
因此我們就變通下,因為 向下取整和四捨五入是可以直接使用的,
通過四捨五入與向下取整做的一個變通,實現向上取整。
完 謝謝。