iBizModel 属性界面模式(PSDEFUIMODE)与属性搜索模式(PSDEFSFITEM)模型详解
iBizModel 属性界面模式(PSDEFUIMODE)与属性搜索模式(PSDEFSFITEM)模型详解
引言
在iBizModel模型体系中,属性界面模式(PSDEFUIMODE)和属性搜索模式(PSDEFSFITEM)作为实体属性(PSDEFIELD)的重要扩展模型,承担着前端界面展现与数据搜索功能的关键配置角色。这两个模型共同构成了iBizModel在前端交互层面的精细化控制体系,使得同一属性在不同业务场景、不同终端设备、不同应用环境中能够展现出差异化的行为特性。本文将深入解析这两个模型的设计理念、应用场景、模型关系以及实际建模实践。
一、属性界面模式(PSDEFUIMODE)深度解析
1.1 定义与核心价值
属性界面模式是iBizModel中专门用于配置实体属性在前端界面表现形式的模型。在现代企业应用中,同一数据属性往往需要在不同的使用场景下呈现不同的界面特性。例如,一个"有效状态"属性在桌面端可能需要显示为复选框,在移动端可能需要显示为开关控件;在普通业务场景下可能只需基本输入,在特定审批流程中可能需要特殊的只读展示。
注意:属性界面模式中的参数在未指定时将使用实体属性(PSDEFIELD)的逻辑,如默认值、值规则等。
PSDEFUIMODE的核心价值在于:
- 多终端适配:支持桌面端、移动端等不同设备的差异化配置
- 场景化定制:针对不同业务场景提供专门的界面表现方案
- 应用级隔离:支持不同前端应用使用不同的界面配置
- 精细化控制:对编辑器的类型、参数、验证规则等进行细粒度配置
1.2 关键属性详解
1.2.1 模式类型配置(ftmode属性)
ftmode属性定义了界面模式的应用场合,是PSDEFUIMODE最核心的配置项:
- DEFAULT:桌面端默认模式,每个属性只能定义一个默认模式
- MOBILEDEFAULT:移动端默认模式,专为移动设备优化
- APPDEFAULT:应用默认模式,针对特定前端应用的配置
- CUSTOM:用户自定义模式,需要显式指定使用场景
- MODE1/MODE2/…/MODE9:扩展模式,为用户预留的扩展点位
1.2.2 编辑器配置体系
PSDEFUIMODE提供了完整的编辑器配置能力:
editortype: "TEXT" // 编辑器类型
editorparams: "maxLength=100" // 编辑器参数
width: 200 // 编辑器宽度
height: 30 // 编辑器高度
placeholder: "请输入有效状态" // 占位提示
1.2.3 验证与约束配置
模型支持多层次的值验证机制:
enablevaluerule: 1 // 启用值规则
minvalue: "0" // 最小值
maxvalue: "1" // 最大值
strlength: 1 // 字符长度限制
ignoreinput: 0 // 值忽略条件
1.2.4 引用关系配置
PSDEFUIMODE支持复杂的引用关系配置:
refpsdeid: "hr.EMPLOYEE" // 引用实体
refpsderid: "hr.EMPLOYEE_DEPT" // 引用关系
refpickuppsdeviewid: "hr.EMPLOYEE_PICKUP" // 关联实体选择视图
1.3 应用场景分析
1.3.1 多终端适配场景
在现代企业应用中,同一系统往往需要支持PC端和移动端访问。PSDEFUIMODE通过不同的ftmode配置实现终端适配:
桌面端场景:
- 使用DEFAULT模式,支持复杂的表单布局
- 可配置较大的编辑器尺寸和丰富的交互功能
- 适合数据录入、批量操作等复杂业务
移动端场景:
- 使用MOBILEDEFAULT模式,优化触摸交互
- 简化界面元素,提高操作效率
- 适合移动办公、现场数据采集等场景
1.3.2 多应用隔离场景
大型企业往往存在多个业务系统,PSDEFUIMODE支持应用级配置隔离:
pssysappid: "HR_SYSTEM" // 指定前端应用
ftmode: "APPDEFAULT" // 应用默认模式
这种机制确保不同业务系统可以对同一数据属性采用不同的界面策略,满足各部门的个性化需求。
1.3.3 业务场景定制
特定业务场景需要特殊的界面表现,例如:
审批场景:配置只读模式,显示审批信息但不允许修改
数据导入场景:配置批量编辑模式,支持快速数据录入
报表查看场景:配置展示优化模式,突出关键数据
1.4 模型关系图例
PSDEFUIMODE在iBizModel体系中的关系结构如下:
1.5 DSL示例代码详解
以下是一个完整的PSDEFUIMODE建模示例,展示如何在人力资源系统中配置员工有效状态的界面模式:
// 定义实体引用
def de_hr_employee = "hr.HR_EMPLOYEE"// 桌面端默认模式配置
psdefuimode(ftmode: "DEFAULT",codename: "Default",name: "[ACTIVE][有效]桌面端默认",psdefid: de_hr_employee + ".ACTIVE",editortype: "CHECKBOX",caption: "有效状态",allowempty: 0,createdv: "1",createdvt: "PARAM",width: 100,placeholder: "选择有效状态"
)// 移动端默认模式配置
psdefuimode(ftmode: "MOBILEDEFAULT", codename: "MobileDefault",name: "[ACTIVE][有效]移动端默认",psdefid: de_hr_employee + ".ACTIVE",editortype: "SWITCH",caption: "是否有效",allowempty: 0,width: 60
)// 特定应用模式配置(HR系统专用)
psdefuimode(ftmode: "APPDEFAULT",codename: "HRAppDefault",name: "[ACTIVE][有效]HR应用默认",psdefid: de_hr_employee + ".ACTIVE",pssysappid: "HR_SYSTEM",editortype: "RADIO",caption: "员工状态",pscodelistid: "SYS_YESNO"
)// 自定义审批场景模式
psdefuimode(ftmode: "CUSTOM",codename: "ApprovalMode",name: "[ACTIVE][有效]审批模式",psdefid: de_hr_employee + ".ACTIVE",editortype: "LABEL",caption: "当前状态",ignoreinput: 5, // 控件以只读形式呈现width: 120
)
二、属性搜索模式(PSDEFSFITEM)深度解析
2.1 定义与核心价值
属性搜索模式是iBizModel中定义属性支持的搜索方式及相关界面配置的模型。在企业数据管理场景中,灵活高效的搜索功能是提升用户体验的关键。PSDEFSFITEM通过标准化搜索模式的配置,实现了搜索行为的统一管理和灵活扩展。
PSDEFSFITEM的核心价值体现在:
- 搜索标准化:统一不同属性的搜索行为配置
- 操作符扩展:支持丰富的搜索操作符配置
- 界面一体化:搜索界面与数据展示界面的一致性
- 性能优化:通过预定义搜索模式优化查询性能
2.2 关键属性详解
2.2.1 搜索操作符配置(psdbvalueopid属性)
psdbvalueopid是PSDEFSFITEM的核心配置,定义了搜索时使用的操作符:
psdbvalueopid: "EQ" // 等于操作
psdbvalueopid: "LIKE" // 模糊匹配
psdbvalueopid: "GT" // 大于
psdbvalueopid: "LT" // 小于
psdbvalueopid: "EXISTS" // 存在性检查
2.2.2 搜索界面配置
PSDEFSFITEM提供完整的搜索界面配置能力:
editortype: "TEXT" // 搜索框编辑器类型
placeholder: "请输入搜索条件" // 占位提示
width: 150 // 搜索框宽度
pssysimageid: "SEARCH_ICON" // 搜索图标
2.2.3 高级搜索功能
模型支持复杂的搜索场景配置:
arrayflag: 1 // 数组模式搜索
valueseperator: "," // 值分隔符
dstpsdefsfitemid: "target_search_mode" // 目标搜索模式引用
pssystranslatorid: "value_translator" // 值转换器
2.3 应用场景分析
2.3.1 基础搜索场景
最基本的搜索需求,如文本匹配、数值比较等:
文本搜索:配置LIKE操作符,支持模糊匹配
精确匹配:配置EQ操作符,要求完全匹配
范围搜索:配置GT/LT操作符,支持数值范围查询
2.3.2 高级搜索场景
复杂业务场景下的搜索需求:
关联实体搜索:通过EXISTS操作符实现关联数据的存在性检查
多值搜索:配置数组模式,支持多个值的OR查询
转换搜索:使用值转换器,实现搜索值的预处理
2.3.3 性能优化场景
针对大数据量的搜索优化:
索引优化:配置合适的搜索模式以利用数据库索引
查询优化:通过预定义搜索条件减少查询复杂度
缓存优化:常用搜索模式的查询结果缓存
2.4 模型关系图例
PSDEFSFITEM在iBizModel体系中的关系结构如下:
2.5 DSL示例代码详解
以下是一个完整的PSDEFSFITEM建模示例,展示如何为用户组实体配置多种搜索模式:
// iBizModelDSL建模指令,目标:配置用户组实体的搜索模式// 定义实体引用
def de_res_groups = "base.RES_GROUPS"
def de_res_groups_users_rel = "base.RES_GROUPS_USERS_REL"// 基础相等搜索模式
psdefsfitem(psdbvalueopid: "EQ",name: "N_CATEGORY_NAME_EQ",psdefid: de_res_groups + ".CATEGORY_NAME",psdeid: de_res_groups,caption: "分类名称等于",editortype: "TEXT",placeholder: "输入分类名称",width: 120,defaultflag: 1
)// 模糊搜索模式
psdefsfitem(psdbvalueopid: "LIKE", name: "N_CATEGORY_NAME_LIKE",psdefid: de_res_groups + ".CATEGORY_NAME",psdeid: de_res_groups,caption: "分类名称包含",editortype: "TEXT",placeholder: "输入分类名称关键词",width: 150
)// 组名称模糊搜索
psdefsfitem(psdbvalueopid: "LIKE",name: "N_NAME_LIKE", psdefid: de_res_groups + ".NAME",psdeid: de_res_groups,caption: "组名称包含",editortype: "TEXT",placeholder: "输入组名称关键词",width: 150,defaultflag: 1
)// 存在性检查搜索(检查用户组是否包含特定用户)
psdefsfitem(psdbvalueopid: "EXISTS",name: "N_GROUPS_USERS_RELS_EXISTS__N_USER_ID_EQ",psdefid: de_res_groups + ".GROUPS_USERS_RELS", psdeid: de_res_groups,dstpsdefsfitemid: de_res_groups_users_rel + ".USER_ID.N_USER_ID_EQ",caption: "包含用户",editortype: "PICKUP",refpickuppsdeviewid: de_res_groups_users_rel + ".USER_PICKUP",width: 200
)// 数值范围搜索(如果存在数值属性)
psdefsfitem(psdbvalueopid: "BETWEEN",name: "N_PRIORITY_BETWEEN",psdefid: de_res_groups + ".PRIORITY",psdeid: de_res_groups,caption: "优先级范围",editortype: "NUMBERRANGE",width: 200
)
三、综合应用与实践建议
3.1 两者协同工作模式
PSDEFUIMODE和PSDEFSFITEM在实际应用中往往需要协同工作,共同构建完整的前端交互体验:
搜索到编辑的流畅转换:用户在搜索界面使用PSDEFSFITEM定义的搜索模式找到目标数据后,系统自动切换到使用PSDEFUIMODE配置的编辑界面,确保交互的一致性。
统一的验证体系:两个模型共享值规则系统,确保搜索条件和数据编辑使用相同的验证逻辑。
响应式设计配合:PSDEFUIMODE的多终端配置与PSDEFSFITEM的搜索界面配置协同工作,实现真正的全终端适配。
总结
属性界面模式(PSDEFUIMODE)和属性搜索模式(PSDEFSFITEM)作为iBizModel体系中的重要组成部分,共同构建了灵活、高效的前端交互基础。通过精细化的配置体系,这两个模型使得企业应用能够适应复杂的业务场景和多变的用户需求。
PSDEFUIMODE专注于数据展现和编辑的个性化配置,支持多终端、多场景的差异化表现;而PSDEFSFITEM则专注于搜索行为的标准化和优化,提升数据检索的效率和用户体验。两者的协同工作为企业应用提供了完整的前端交互解决方案。