iBizModel 面板模型(PSSYSVIEWPANEL)和表单模型(PSDEFORM)的特征及应用场合
表单面板(PSDEFORM)是iBizModel中的核心表单组件,支持数据绑定、多端适配和逻辑控制。包含表单成员(PSDEFORMDETAIL)、成员逻辑(PSDEFDLOGIC)、表单项更新(PSDEFIUPDATE)和值规则(PSDEFIVR)等成员模型,形成多层嵌套结构。支持FORMPAGE、FORMITEM等9种成员类型,通过建模指令可构建复杂业务表单,适用于数据录入、搜索过滤等场景。该模
iBizModel 面板模型(PSSYSVIEWPANEL)与表单模型(PSDEFORM)的模型体系差异及应用场合
一、模型定位与设计哲学差异
1.1 PSSYSVIEWPANEL:通用界面容器模型
面板模型(PSSYSVIEWPANEL)在iBizModel体系中定位为通用界面容器组件,其核心设计理念是提供灵活、可扩展的界面布局能力。作为系统级的界面组织工具,PSSYSVIEWPANEL不局限于特定业务场景,而是为各种界面组合需求提供基础支撑。
设计特点:
- 容器化设计:采用容器-成员模式,支持多层嵌套结构
- 布局多样性:支持栅格布局(12列/24列)、Flex布局等多种布局模式
- 模式灵活性:提供三种面板模式(面板部件、布局面板、视图增强布局面板)
- 数据独立性:不强制绑定特定数据实体,支持多种数据获取模式
1.2 PSDEFORM:数据驱动表单模型
表单模型(PSDEFORM)则定位为数据驱动的表单处理组件,其设计哲学围绕数据实体的输入输出操作展开。PSDEFORM深度集成数据实体模型,专注于提供标准化的数据编辑和查询界面。
设计特点:
- 实体绑定:必须绑定到特定的数据实体(PSDATAENTITY)
- 操作导向:专注于数据的增删改查操作
- 类型明确:严格区分编辑表单和搜索表单两种类型
- 业务紧密:与具体业务逻辑紧密关联
二、模型体系结构差异
2.1 PSSYSVIEWPANEL体系架构
PSSYSVIEWPANEL采用分层容器架构:
结构特征:
- 多级嵌套:支持无限层级的面板成员嵌套
- 逻辑分离:界面逻辑与界面表现分离
- 引擎驱动:通过界面引擎实现动态渲染
2.2 PSDEFORM体系架构
PSDEFORM采用数据驱动架构:
结构特征:
- 扁平化结构:以表单页为基本单位组织
- 数据绑定:每个表单项都绑定到实体属性
- 验证体系:内置完整的值规则验证机制
三、功能特性对比分析
3.1 布局能力对比
PSSYSVIEWPANEL布局特性:
- 支持绝对定位、相对定位等多种定位方式
- 提供栅格系统(12列/24列),支持响应式布局
- Flex布局支持复杂的对齐和分布需求
- 边界布局支持上下左右中的经典布局模式
- 支持动态调整布局参数(列数、偏移、间距等)
PSDEFORM布局特性:
- 主要采用栅格布局(12列/24列均分)
- 支持Flex布局用于复杂表单排列
- 表单项支持标签位置配置(左、上、右、下)
- 分组面板支持折叠/展开功能
- 分页部件支持多标签页布局
3.2 数据处理能力对比
PSSYSVIEWPANEL数据处理:
// 多种数据获取模式
pssysviewpanel(
getdatamode: 2, // 始终获取数据
getdatatimer: 1000, // 定时刷新
datasource: "DEACTION", // 数据源类型
psdeactionid: "Entity.Action"
)
// 数据绑定模式
pssysviewpanel(
getdatamode: 4, // 绑定到路由视图会话变量
dataname: "sessionData"
)
PSDEFORM数据处理:
// 表单数据操作行为绑定
psdeform(
createpsdeactionid: "Entity.Create", // 创建行为
updatepsdeactionid: "Entity.Update", // 更新行为
removepsdeactionid: "Entity.Delete", // 删除行为
getpsdeactionid: "Entity.Get" // 获取行为
)
// 高级功能支持
psdeform(
enableautosave: 1, // 启用自动保存
enableadvsearch: 1, // 启用高级搜索
enableitempriv: 1 // 启用项权限控制
)
3.3 成员类型体系对比
PSSYSVIEWPANEL成员类型:
CONTAINER
:面板容器,基础布局单元CONTROL
:部件成员,挂载系统或实体定义的界面部件CTRLPOS
:部件占位,用于视图布局面板RAWITEM
:直接内容项,输出文本或图片TABPANEL
:分页部件TABPAGE
:分页面板FIELD
:面板属性,数据呈现载体BUTTON
:面板按钮,提供命令能力USERCONTROL
:用户自定义控件
PSDEFORM成员类型:
FORMPAGE
:表单分页,根级成员TABPANEL
:分页部件TABPAGE
:分页面板FORMITEM
:表单项,数据输入输出载体USERCONTROL
:用户控件FORMPART
:表单部件引用GROUPPANEL
:分组面板DRUIPART
:数据关系界面RAWITEM
:直接内容BUTTON
:表单按钮IFRAME
:页面嵌入FORMITEMEX
:复合表单项MDCTRL
:多数据部件
四、应用场合与使用场景
4.1 PSSYSVIEWPANEL适用场景
场景一:复杂界面布局构建
// 仪表盘界面
pssysviewpanel(
viewlayoutflag: 2, // 视图增强布局
layoutmode: "TABLE_24COL"
){
pssysviewpanelitem(itemtype: "CTRLPOS", name: "header") // 头部区域
pssysviewpanelitem(itemtype: "CONTAINER"){
pssysviewpanelitem(itemtype: "CTRLPOS", name: "sidebar", col_lg: 6) // 侧边栏
pssysviewpanelitem(itemtype: "CTRLPOS", name: "content", col_lg: 18) // 主内容区
}
pssysviewpanelitem(itemtype: "CTRLPOS", name: "footer") // 底部区域
}
场景二:数据可视化面板
// 数据统计面板
pssysviewpanelitem(
itemtype: "CONTAINER",
layoutmode: "FLEX"
){
pssysviewpanelitem(
itemtype: "CONTROL",
ctrltype: "CHART",
psdechartid: "Sales.Chart",
flexgrow: 1
)
pssysviewpanelitem(
itemtype: "CONTROL",
ctrltype: "DASHBOARD",
pssysdashboardid: "Stats.Dashboard",
flexgrow: 1
)
}
场景三:移动端自适应布局
pssysviewpanel(
mobflag: 1, // 移动端专用
layoutmode: "FLEX",
flexdir: "column"
){
pssysviewpanelitem(itemtype: "CTRLPOS", name: "mobHeader")
pssysviewpanelitem(itemtype: "CTRLPOS", name: "mobContent", flexgrow: 1)
pssysviewpanelitem(itemtype: "CTRLPOS", name: "mobFooter")
}
4.2 PSDEFORM适用场景
场景一:数据编辑表单
// 订单编辑表单
psdeform(
formtype: "EDITFORM",
codename: "OrderEdit",
psdeid: "Demo.ORDER",
enableautosave: 2 // 启用自动保存(提交变化)
){
psdeformdetail(detailtype: "FORMPAGE", name: "baseInfo"){
psdeformdetail(detailtype: "GROUPPANEL", name: "orderGroup"){
psdeformdetail(detailtype: "FORMITEM", name: "ordername", psdefid: "Demo.ORDER.OrderName")
psdeformdetail(detailtype: "FORMITEM", name: "amount", psdefid: "Demo.ORDER.Amount")
}
}
}
场景二:高级搜索表单
// 客户搜索表单
psdeform(
formtype: "SEARCHFORM",
codename: "CustomerSearch",
psdeid: "Demo.CUSTOMER",
enableadvsearch: 1, // 启用高级搜索
searchbtnpos: "BOTTOM"
){
psdeformdetail(detailtype: "FORMPAGE", name: "searchCriteria"){
psdeformdetail(detailtype: "FORMITEM", name: "name", psdefsfitemid: "Demo.CUSTOMER.Name.SEARCH")
psdeformdetail(detailtype: "FORMITEM", name: "status", psdefsfitemid: "Demo.CUSTOMER.Status.SEARCH")
}
}
场景三:复杂业务表单(含逻辑控制)
// 带有条件逻辑的表单
psdeform{
psdeformdetail(detailtype: "FORMPAGE", name: "mainPage"){
psdeformdetail(detailtype: "FORMITEM", name: "type", psdefid: "Demo.ENTITY.Type"){
psdefdlogic(logictype: "SINGLE", logiccat: "SCRIPTCODE_CHANGE",
customcode: "handleTypeChange()")
}
// 根据类型动态显示不同的字段
psdeformdetail(detailtype: "FORMITEM", name: "specialField", psdefid: "Demo.ENTITY.SpecialField"){
psdefdlogic(logictype: "GROUP", logiccat: "PANELVISIBLE", groupop: "AND"){
psdefdlogic(logictype: "SINGLE", condvalue: "SPECIAL", psdbvalueopid: "EQ", fdname: "type")
}
}
}
}
五、技术实现
5.1 扩展性对比
PSSYSVIEWPANEL扩展机制:
// 通过前端插件扩展
pssysviewpanelitem(
itemtype: "USERCONTROL",
ucpssyspfpluginid: "Custom.Plugin",
customcode: "customRenderFunction"
)
// 动态逻辑扩展
pssysviewpanellogic(
logictype: "CUSTOM",
customcode: "customBusinessLogic"
)
PSDEFORM扩展机制:
// 表单项自定义验证
psdefivr(
customcode: "customValidationRule",
vrtype: "CUSTOM"
)
// 表单逻辑扩展
psdeformlogic(
dstlogictype: "SCRIPT",
customcode: "customFormLogic"
)
六、最佳实践与设计建议
6.1 PSSYSVIEWPANEL设计原则
- 分层设计原则:采用容器-内容分离设计,提高可维护性
- 响应式优先:优先考虑移动端适配,使用栅格系统和Flex布局
- 性能优化:合理使用懒加载和虚拟化技术
- 组件复用:通过面板成员组合实现界面复用
6.2 PSDEFORM设计原则
- 数据驱动:严格遵循实体模型定义,确保数据一致性
- 用户体验:提供清晰的表单结构和操作指引
- 验证完备:实现前端和后端的双重验证机制
- 业务封装:将复杂业务逻辑封装在表单逻辑中
6.3 混合使用场景
在实际项目中,通常需要混合使用两种模型:
// 在面板中嵌入表单
pssysviewpanel{
pssysviewpanelitem(
itemtype: "CONTROL",
ctrltype: "FORM",
psdeformid: "Entity.EditForm"
)
}
// 在表单中使用面板布局
psdeform{
psdeformdetail(detailtype: "GROUPPANEL"){
psdeformdetail(detailtype: "USERCONTROL"){
// 嵌入自定义面板组件
}
}
}
七、总结与展望
7.1 核心差异总结
特性维度 | PSSYSVIEWPANEL | PSDEFORM |
---|---|---|
设计目标 | 通用界面容器 | 数据输入输出 |
数据绑定 | 可选,支持多种模式 | 强制,必须绑定实体 |
布局能力 | 强大,支持多种布局 | 相对简单,主要栅格布局 |
使用场景 | 界面组织、仪表盘、复杂布局 | 数据编辑、搜索、表单处理 |
扩展性 | 高,支持各种自定义 | 中等,主要围绕数据操作 |
性能特点 | 渲染灵活,内存占用高 | 响应快速,业务耦合高 |
7.2 应用选择指南
-
选择PSSYSVIEWPANEL当:
- 需要构建复杂的界面布局
- 需要集成多种不同类型的组件
- 需要高度自定义的界面结构
- 需要支持响应式设计和移动端适配
-
选择PSDEFORM当:
- 需要进行数据录入和编辑操作
- 需要实现搜索和查询功能
- 需要严格的数据验证机制
- 需要与特定业务实体紧密集成
7.3 未来发展趋势
随着前端技术的不断发展,两种模型都在向更加智能化、组件化的方向发展:
- PSSYSVIEWPANEL将更加强调可视化设计和低代码开发
- PSDEFORM将更加注重数据流管理和状态管理
- 两者都将更好地支持微前端和模块化架构
通过深入理解PSSYSVIEWPANEL和PSDEFORM的差异特性,开发者可以更加精准地选择合适的技术方案,构建出既美观又高效的业务应用系统。
更多推荐
所有评论(0)