当前位置: 首页 > news >正文

iBizModel 搜索栏(PSSYSSEARCHBAR)与搜索表单(PSDEFORM)模型详解

iBizModel搜索栏与搜索表单模型详解

引言

在iBizModel模型体系中,搜索栏(PSSYSSEARCHBAR)和搜索表单(PSDEFORM)作为界面交互的核心组件,分别承担着数据过滤搜索和复杂条件输入的重要职责。本文将从模型定义、应用场景、功能差异、关系结构及DSL建模等方面进行全面阐述,帮助开发者深入理解并正确应用这两类模型。

一、搜索栏模型(PSSYSSEARCHBAR)详解

下图示例了搜索栏的基本场景,包括了快速分组(支持分组操作),快速条件输入及自定义过滤等。
在这里插入图片描述

1.1 模型定义与核心属性

搜索栏是实体级的搜索部件模型,专为快速数据检索和条件过滤而设计。其核心属性包括:

  • codename:唯一代码标识,在实体中必须唯一
  • barstyle:搜索栏样式(如SEARCHBAR、SEARCHBAR2、MOBSEARCHBAR等)
  • enablequicksearch:快速搜索模式(0-禁用,1-默认,2-高级)
  • groupmode:过滤分组模式(SINGLE、AND、OR)
  • quicksearchwidth:快速搜索框宽度
  • psdeid:关联的实体引用

1.2 应用场景分析

场景一:基础快速搜索

适用于简单查询需求,用户通过关键词快速定位数据。如员工管理系统中按姓名模糊搜索。

pssyssearchbar(codename: "basic_search", quicksearchwidth: 500, name: "基本搜索栏", enablequicksearch: 2, mobflag: 0, psdeid: "HR.EMPLOYEE")
场景二:状态分组过滤

常见于数据状态筛选,如订单管理中的"全部/正常/异常"分组。

pssyssearchbar(quickgroupcnt: 3, codename: "status_filter", name: "状态过滤栏",enablequicksearch: 2, psdeid: "ORDER.MAIN") {pssyssearchbaritem(defaultflag: 1, itemtype: "GROUP", name: "all", caption: "全部")pssyssearchbaritem(itemtype: "GROUP", name: "active", caption: "正常", data: '{"searchconds":[{"condtype":"DEFIELD","fieldname":"status","condop":"EQ","value":"1"}]}')
}
场景三:多维度高级过滤

支持代码表引用和复杂条件组合,如按部门、职级等多条件筛选。

pssyssearchbar(codename: "adv_filter", barstyle: "SEARCHBAR2", name: "高级过滤",psdeid: "HR.EMPLOYEE") {pssyssearchbaritem(itemtype: "FILTER", name: "n_dept_id_eq", psdefid: "HR.EMPLOYEE.DEPT_ID",psdefsfid: "HR.EMPLOYEE.DEPT_ID.N_DEPT_ID_EQ", pscodelistid: "HR.DEPT_LIST", editortype: "DROPDOWNLIST")
}

1.3 成员模型架构

搜索栏通过嵌套成员实现功能扩展:

  • PSSYSSEARCHBARITEM:定义具体搜索项(GROUP、FILTER、QUICKSEARCH类型)
  • PSSYSSEARCHBARLOGIC:实现界面交互逻辑和动态行为

二、搜索表单模型(PSDEFORM)详解

下图示例了搜索表单的基本场景。
在这里插入图片描述

2.1 模型定义与类型区分

搜索表单是实体表单的特殊类型,专注于搜索条件的结构化输入:

  • formtype:表单类型(SEARCHFORM用于搜索,EDITFORM用于编辑)
  • enableadvsearch:是否启用高级搜索
  • searchbtnpos:搜索按钮位置(RIGHT、BOTTOM)
  • searchbtnstyle:按钮样式(DEFAULT、NONE、SEARCHONLY)

2.2 应用场景分析

场景一:简单条件搜索

基础表单项搜索,如按时间范围、状态值查询。

psdeform(formtype: "SEARCHFORM", codename: "simple_search", name: "简单搜索",psdeid: "ORDER.MAIN", enableadvsearch: 0) {psdeformdetail(detailtype: "FORMPAGE", name: "main_page") {psdeformdetail(detailtype: "FORMITEM", name: "n_date_range_gtandeq", psdefid: "SALES.ORDER.CREATEDATE",psdefsfitemid: "SALES.ORDER.CREATEDATE.N_CREATEDATE_GETANDEQ")}
}
场景二:复杂条件组合

支持多表单项、分组面板和条件联动的高级搜索界面。

psdeform(formtype: "SEARCHFORM", codename: "adv_search", name: "高级搜索",psdeid: "SALES.ORDER", enableadvsearch: 1) {psdeformdetail(detailtype: "FORMPAGE", name: "search_page") {psdeformdetail(detailtype: "GROUPPANEL", name: "base_group", caption: "基本信息") {psdeformdetail(detailtype: "FORMITEM", name: "n_order_no_like", psdefid: "SALES.ORDER.ORDERNO",psdefsfitemid: "SALES.ORDER.ORDERNO.N_ORDERNO_LIKE")psdeformdetail(detailtype: "FORMITEM", name: "n_customer_like", psdefid: "SALES.ORDER.CUSTOMER",psdefsfitemid: "SALES.ORDER.CUSTOMER.N_CUSTOMER_LIKE")}}
}
场景三:动态搜索表单

结合表单项更新逻辑实现条件动态响应。

psdeform(formtype: "SEARCHFORM", codename: "dynamic_search", name: "动态搜索") {psdeformdetail(detailtype: "FORMITEM", name: "category", psdefiupdateid: "update_fields")psdefiupdate(codename: "update_fields", name: "字段更新") {psdefiudetail(psdeformdetailid: "sub_category")}
}

2.3 成员模型体系

搜索表单通过丰富的成员类型支持复杂界面构建:

  • PSDEFORMDETAIL:表单成员容器(FORMPAGE、GROUPPANEL、FORMITEM等)
  • PSDEFDLOGIC:动态逻辑控制
  • PSDEFIUPDATE:表单项更新机制
  • PSDEFIVR:值规则校验

三、搜索栏与搜索表单的核心差异

3.1 功能定位差异

特性搜索栏(PSSYSSEARCHBAR)搜索表单(PSDEFORM)
主要用途快速过滤、分组浏览复杂条件精确搜索
交互模式即时响应、轻量操作结构化输入、批量提交
条件复杂度简单条件、预置分组多字段组合、自定义条件
适用场景列表页快速筛选高级搜索页面

3.2 技术实现差异

搜索栏特点

  • 基于项(ITEM)的模块化设计
  • 支持快速搜索和分组过滤
  • 条件组合模式可配置(AND/OR/SINGLE)
  • 与计数器、样式表深度集成

搜索表单特点

  • 完整的表单布局体系(栅格、Flex)
  • 支持复杂的成员嵌套结构
  • 具备完整的值校验和逻辑控制
  • 与实体行为、界面动作紧密绑定

3.3 使用场景选择指南

  • 选择搜索栏:当需要快速过滤、状态切换、简单关键词搜索时
  • 选择搜索表单:当需要多条件组合、复杂查询逻辑、条件保存时

四、模型关系图例

PSDATAENTITY
数据实体
PSSYSSEARCHBAR
PSDEFORM
PSSYSSEARCHBARITEM
PSSYSSEARCHBARLOGIC
PSDEFORMDETAIL
PSDEFIUPDATE
PSDEFIVR
PSDEFORMLOGIC
PSDEFDLOGIC
PSDEFIUDETAIL
PSDEFIELD
PSDEFSFITEM

五、完整建模DSL示例

5.1 综合搜索解决方案

// 定义实体引用
def de_product = "MALL.PRODUCT"
def mod_mall = "MALL"// 搜索栏定义 - 产品快速筛选
pssyssearchbar(codename: "product_search", name: "产品搜索栏", barstyle: "SEARCHBAR2", enablequicksearch: 2, groupmode: "AND", psdeid: de_product) {// 快速搜索项pssyssearchbaritem(itemtype: "QUICKSEARCH", name: "quick_search", placeholder: "输入产品名称或编码")// 分类分组pssyssearchbaritem(itemtype: "GROUP", name: "all", caption: "全部", defaultflag: 1, ordervalue: 100)pssyssearchbaritem(itemtype: "GROUP", name: "active", caption: "上架商品",data: '{"searchconds":[{"condtype":"DEFIELD","fieldname":"status","condop":"EQ","value":"1"}]}')// 价格过滤pssyssearchbaritem(itemtype: "FILTER", name: "n_price_range_gtandeq", psdefid: de_product + ".PRICE", editortype: "NUMBER")
}// 搜索表单定义 - 高级产品搜索
psdeform(formtype: "SEARCHFORM", codename: "product_adv_search", name: "产品高级搜索", psdeid: de_product, enableadvsearch: 1,searchbtnpos: "BOTTOM", searchbtnstyle: "DEFAULT") {psdeformdetail(detailtype: "FORMPAGE", name: "main_page", caption: "搜索条件") {psdeformdetail(detailtype: "GROUPPANEL", name: "base_info", caption: "基本信息", layoutmode: "TABLE_24COL") {psdeformdetail(detailtype: "FORMITEM", name: "n_product_name_like", psdefid: de_product + ".PRODUCT_NAME",psdefsfitemid: de_product + ".PRODUCT_NAME.N_PRODUCT_NAME_LIKE", col_md: 12, col_lg: 8)psdeformdetail(detailtype: "FORMITEM", name: "n_category_eq",psdefid: de_product + ".CATEGORY", psdefsfitemid: de_product + ".CATEGORY.N_CATEGORY_EQ",pscodelistid: mod_mall + ".CATEGORY_LIST",col_md: 12, col_lg: 8)psdeformdetail(detailtype: "FORMITEM", name: "n_price_range_gtandeq", psdefid: de_product + ".PRICE", psdefsfitemid: de_product + ".PRICE.N_PRICE_GTANDEQ",editortype: "NUMBER", col_md: 12, col_lg: 8)}}// 搜索表单逻辑psdeformlogic(name: "search_logic", triggertype: "CTRLEVENT",eventnames: "onBeforeSearch", dstlogictype: "DEUILOGIC",psdelogicid: de_product + ".VALIDATE_SEARCH_CONDITIONS")
}

5.2 更多示例

更多示例请访问iBizAppHUB示例系统,点击搜索表单搜索栏菜单查看全部示例
在这里插入图片描述

通过最右侧的调试工具栏,可查看搜索栏iBizModeling工具中的详细配置
在这里插入图片描述

六、最佳实践与总结

6.1 设计原则

  1. 用户体验优先:搜索栏注重效率,搜索表单注重精确度
  2. 渐进式披露:从简单搜索栏过渡到复杂搜索表单

6.2 技术建议

  • 合理使用分组模式提升过滤效率
  • 利用值规则确保搜索条件有效性
  • 通过逻辑控制实现动态搜索体验
  • 结合计数器提供搜索结果反馈

搜索栏和搜索表单作为iBizModel界面体系的核心组件,共同构建了完整的数据检索解决方案。搜索栏适用于快速的、模式化的过滤需求,而搜索表单则胜任复杂的、自定义的查询场景。在实际项目中,应根据具体业务需求灵活选择和组合使用,以达到最佳的用户体验和系统性能。

http://www.dtcms.com/a/450262.html

相关文章:

  • 网站建设从零开始 教程云免网站空间
  • 网站没有建设好可以备案吗媒体网站推广法
  • 广东深圳网站建设服务吉安建设工程项目网站
  • 贵阳网站建设黔搜有没有可以做app的网站
  • 整站多关键词优化wordpress 大站点
  • 为什么有点网站打不开广告策划方案怎么做
  • **静音** 键盘简单评测
  • 网站建设的推进方案重庆设计公司有哪些
  • 做机械设计的网站医院信息化建设会议安排网站
  • 贵州网站建设营销公司html5毕业设计题目大全
  • 人力外包网站静态网站开发课程
  • 大模型—— 解析Codex CLI
  • 医疗科研管理系统到院级生命科学平台的升级路径
  • 网站建设方案报价费用明细价格可以免费做网站
  • 湖北手机版建站系统信息浙江省建设教育考试中心网站
  • 实验十八 GaussDB安全管理实验
  • 登录注册入口鹤岗网站seo
  • window系统搭建nginx图片存储服务器
  • AI与敏捷开发管理系列5:AI敏捷项目管理的实施路线图
  • 网站建设哪家好知道万维科技网站开发制作心得
  • leetcode 417 太平洋大西洋水流问题
  • 网站域名每年费用李勇seo博客
  • 【FPGA+DSP系列】——(4)EPWM学习(实现呼吸灯实验)
  • 【数据结构】搜索二叉树是啥树?有啥用?
  • 2025-10-06 Python不基础 15——metaclass
  • 淘宝客必须做网站吗建筑网站排行
  • Python高阶技巧:使用functools.partial减少函数参数个数完全指南
  • 2025年--Lc163--H58.最后一个单词的长度(数组和字符串)--Java版
  • 酒店如何做团购网站app界面设计模板图片
  • 长沙h5网站建设天津网站建站公司