全部文档
文档中心财务模型deepcubedeepcube案例数据拷贝

数据拷贝

场景背景:某门店预算项目,已有各品类的单价数据,各个门店各品类的销售折扣,销量数据。计算各门店各品类的销售金额,并计算各门店平均折扣和各品类的平均折扣。

财务模型搭建如下:

需求1:单价拷贝

将每个商品种类的单价从NoEntity拷贝到各个门店,以方便动态表查看数据。

脚本触发时机为单价维护表保存后触发,拷贝范围是当前表单pov范围的year,所有category的单价。

脚本如下:

Copy
from deepcube.cube.cube import deepcube
from deepcube.cube import function as fn


def main(p1, p2):
    # 获取表单传参的year,赋值到变量中
    cur_year = p2['year']
    
    # 实例一个deepcube对象,传参为cube元素名和path,如果cube元素名在应用中唯一,可以不传path
    cube1 = deepcube('cube1', path='/deepcubeCase/cube')

    # 为了后续计算写法简单,在这里将cube的维度赋值给同名变量(注意这里cube1.year中的year是字段名)
    year = cube1.year
    period = cube1.period
    scenario = cube1.scenario
    version = cube1.version
    account = cube1.account
    category = cube1.category
    entity = cube1.entity
    
    # 从cube加载数据,需要指定取数的范围。
    cube1.init_data([year[cur_year],
                scenario["Actual"],
                version["Working"],
                account["UnitPrice"],
                category['Total'].Base()])
    
    # 确定一个背景scope范围
    cube1.scope(year[cur_year],
                scenario["Actual"],
                version["Working"],
                account["UnitPrice"]
                )

    # 计算
    cube1.loc[period["TotalPeriod"].Base(), entity['Total'].Base()] = cube1.loc[period["Beginning"], entity['NoEntity']]

    # 将计算结果写入Cube
    cube1.submit_calc()

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send