窗体替换功能
窗体继承的目的,就是为了窗体替换的准确和快捷,使用新窗体替换源窗体,即在运行期任何地方打开源窗体时,会直接映射到新窗体。
举例:若窗体B(新窗体)替换窗体A(源窗体),那么在运行期,打开窗体A时,会自动变成打开窗体B。
新窗体:替换源窗体的窗体。
- 可继承实体:新窗体中可以引用的源窗体中的实体。
- 可继承方法:新窗体中可以引用源窗体中的方法,新窗体中执行该方法时,实际上运行的是新窗体中的该方法,在新窗体中可通过事件绑定或执行方法调用。
- 规则链可见方法:规则链可见但不可继承的方法,该方法作为副本拷贝到新窗体中(相当于是新窗体中的方法),可通过事件绑定,但不可通过执行方法调用。
新窗体演示:
3.1 引用构件
(1)从云空间引用构件。
(1)从本地引用构件包。增加引用,在弹出框中点击“从本地选择”按钮,选择需要引用的部署包,点击“确定”。
3.2 引用窗体来源
在目标构件中新建窗体,选择窗体来源,点击“创建”。
注:普通窗体和网页窗体可以一定程度地相互兼容。
- 普通窗体:可以继承网页窗体,但会清除网页窗体中的所有div代码,保留窗体的实体和变量。
- 网页窗体:可以继承普通窗体,但会清除普通窗体中的所有控件,保留窗体的实体和变量。
- 移动窗体:只能继承移动窗体。
3.3 修改窗体
创建完成后,源窗体中的对应的元素会拷贝到新窗体中。
修改新窗体中的控件。
部署目标构件,打开源构件中的主窗体,点击“打开窗体”按钮,查看效果。
3.4 可继承方法
源窗体中可继承的方法,在新窗体中可以直接调用。如:源窗体中的loaddata方法作为可继承,新窗体中可以直接通过控件绑定或执行方法调用该方法,如下,新窗体加载时会触发loaddata规则链的执行。
注:新窗体中调用源窗体可继承方法时,实际上是到源窗体中执行该方法,故可继承方法中引用的窗体外部资源,如表、查询、构件方法等,均可正常调用。
新窗体演示:
4.1 增加新规则
新窗体可以根据需求增加新的规则逻辑。
如:源窗体的“退出窗体”按钮事件只有一个规则。
可在新窗体里增加退出窗体时的判断逻辑。
点击“退出窗体”按钮时,询问是否确定要关闭。
- 确定:关闭窗体
- 取消:中断规则,不关闭窗体