与问题CUBA有关:实体继承
我有:
-客户实体(名称,电子邮件)
-公司扩展了客户(行业)
-人员扩展了客户(名字,姓氏)
我想设计如下画面:
- CustomerEditFrame,没有明确的数据源
- CompanyEditScreen嵌入CustomerEditFrame
- PersonEditScreen嵌入CustomerEditFrame
然后,我需要定义框架的数据源:
-在CompanyEditScreen中,需要为框架定义
companyDs-在PersonEditScreen中,需要将personDs
我看到的选项:
1)在所有嵌入框架的屏幕中,使用相同的数据源名称(例如customerDs),以便可以将其注入框架:令人困惑,如果我有Company数据源,我想将其称为companyDs,而不是customerDs
2)从框架中调用getDsContext()。get(ds_id):否,因为ds的名称发生了变化
3)从框架中,迭代getDsContext()。getAll()并在Customer类或子类上寻找数据源并确保只有一个:不安全,请确保获取正确的一个
。4)从屏幕(例如CompanyEditScreen),使用init()方法将companyD分配给框架:本身没有方法
浏览了所有示例(包括采样器代码)。更接近的情况是Sales示例的OrderEdit屏幕,该屏幕根据Operation类型动态地打开框架。它不涉及继承,但是所使用的解决方案基于数据源名称(第一个选项,在处理子类时我会感到困惑)。
我应该怎么做 ?
我建议通过实体实例的框架,而不是通过或引用整个数据源,如解释在这里。
当具有两个包含相同实例的数据源的屏幕(一个在屏幕上,一个在嵌套框架中)将被提交时,将没有任何重复,因为屏幕将所有脏数据源中的数据收集到一个中Set
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句