与问题CUBA有关:实体继承
我有:
- 客户实体(姓名、电子邮件)
- 公司扩展客户(行业)
- 人员扩展客户(名字、姓氏)
我想设计以下屏幕:
- CustomerEditFrame,未定义数据源- CompanyEditScreen 嵌入
CustomerEditFrame
- PersonEditScreen 嵌入 CustomerEditFrame
然后我需要定义框架的数据源:
- 在 CompanyEditScreen 中,需要为框架定义
companyDs - 在 PersonEditScreen 中,需要为 personDs
我看到的选项:
1)在嵌入框架的所有屏幕中,使用相同的数据源名称(例如 customerDs),以便可以将其注入框架:令人困惑,如果我有一个公司数据源,我想将其称为 companyDs 而不是 customerDs
2) 从框架中,调用 getDsContext().get(ds_id) : nok,因为 ds 的名称发生了变化
3) 从框架中,迭代 getDsContext().getAll() 并在 Customer 类或子类上查找数据源并确保只有一个:不安全,不确定得到正确的一个
4) 从屏幕,例如 CompanyEditScreen,在 init() 方法中将 companyDs 分配给框架:本身没有这样做的方法
浏览了所有示例(包括采样器代码)。更接近的案例是 Sales 示例的 OrderEdit 屏幕,它根据 Operation 类型动态打开一个框架。它不包括继承,但使用的解决方案基于数据源名称(第一个选项,我在处理子类时感到困惑)。
我应该怎么做 ?