表单引擎的自定义控件的概念与设计

基本概念

概述

  • 控件的定义:用于展示或者采集数据的表单元素,称为控件,比如:文本框、下拉框、单选按钮、从表等.
  • 自定义控件:表单引擎提供的基础控件之外的控件称为自定义控件, 这些控件由开发人员自己定义,比如:评分、公文字号、定位等.

基本控件分类

  • 字段控件:文本字段、数值字段、日期字段、枚举外键字段.
  • 子表控件: 子表、多种显示风格的子表、孙表、孙孙表等.
  • 流程控件:流程轨迹图、审核组件、自定义流程...
  • 附件控件:字段附件、装饰图附件、图片附件、分组(表格)附件.
  • 自定义控件: 是指,根据业务的需要定义控件,比如:评分、身份证、文号、字号、定位等。
  • 请参考表单设计器:

自定义控件分类

  • ccfrom根据自定义控件的场景与应用特征分为三类:表单字段、扩展控件、分组控件.
  • 表单字段控件:该类的控件依托一个字段展现,属性设置在Sys_MapAttr里,通过 UIContralType 来区分控件类型, 他展现在一个字段分组里,数据存储在KeyOfEn的字段里。比如:字段附件、评分控件、定位控件、签字版、图片控件等.
  • 扩展控件: 利用字段(控件)的扩展属性为了达到一些功能实现的控件,比如:选择人控件、日期从到、控件、选部门控件、选岗位控件等。
  • 分组控件:需要一个分组才能完成的控件,比如:从表、表格附件。
  • 本章节将对三种控件类型的实现,自定义开发做一个demo.

控件在表单的体现

  • 字段模式的: 是应用,控件展示比较小,与字段一样在一个分组里就可以展示出来比如:评分、字号、字段附件等,它隶属一个分组容器展现,数据存储在:Sys_MapAttr 里面,解析的时候根据控件类型执行解析。
  • 扩展控件:在基本的控件基础上通过扩展属性定义的控件,称为扩展控件,比如:人员选择器、岗位选择、部门选择等控件。
  • 分组模式的: 需要一个分组才能展示,比如:审核组件、从表、表格附件等。需要单独的一个分组容器才能展现.
    描述的数据与存储的数据需要单独设计存储。

控件的工作过程

  1. 定义控件: 定义控件的属性,控件的风格、样式、数据存储位置,业务规则。
  2. 解析控件: 根据定义的属性,获取控件的数据,进行展现.

自定义控件开发过程

  1. 在设计器定义.
  2. 解析器执行解析.
  3. 该控件的开发,需要遵守开发过程。

1步:确定字段的提现方式.

  1. 确定控件的体现方式, 根据控件的特性,区分是字段模式的还是分组模式。
  2. 请参考《字段控件开发》章节.

2: 确定控件的属性与数据存储结构.

  1. 如果是字段模式:数据存储在.
  2. 分组模式的控件数据存自定的表单模板里.

字段控件

概述

定义

  • 该类的控件依托一个字段展现,属性设置在Sys_MapAttr里,通过 UIContralType 来区分控件类型.
  • 他展现在一个字段分组里,数据存储在KeyOfEn的字段里。比如:字段附件、评分控件、定位控件、签字版、图片控件等.

新建字段控件

  • 如下图:
  • 设计效果

表单控件

  • 表单控件也叫通用控件,比如:按钮、链接、评分、定位、身份等控件.
  • 该控件运行依靠,主表,从表的数据。
  • 他的属性设置存储在 Sys_MapAttr 表里,数据按照约定的格式存储在KeyOfEn的字段里.

流程控件

  • 与流程相关的控件称为流程控件、比如:签批组件、工作进度、公文主文件、流程评论组件.

他的属性设置在 WF_Node, 流程数据存储在字段数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/125433.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

导入jdk源码并进行使用

jdk下载地址 JDK1.8源码下载地址 idea打开jdk项目 打开项目结构,进入SDK这一栏,选择一个使用的jdk,选择jdk的类路径 将类路径进行删除,并且添加我们自己下载的jdk中的src文件夹到类路径

Nodejs+vue+mysql网上药店购药系统 9h2k5

本毕业设计的内容是设计并且实现一个基于vue.js框架的空巢老人购药系统。采用MYSQL为数据库开发平台,nodejs语言,网络信息服务作为应用服务器。空巢老人购药系统的功能已基本实现,主要用户、家属、养生知识、药品信息、身体信息等。 论文主要…

海外ASO优化之如何优化游戏应用

如果我们发布了一款手机游戏或者管理了一款手机游戏,那么需要确保我们的手机游戏对合适的人可见,目的是增加应用的下载量。 1、优化游戏元数据的关键词。 Apple和Google在应用商店中为我们提供有限的空间,来描述手机游戏及其优势。我们需要使…

安防监控/视频汇聚/云存储/AI视频智能算法引擎系统:遛狗检测算法详解

根据最新修订发布的《中华人民共和国动物防疫法》规定:遛狗不栓绳,养狗不办证、未定期接种疫苗等行为都是违法行为。作为一个合格的“铲屎官"出门遛狗一定要牵好狗绳,保护他人和爱犬的安全。但就算法律明文规定,还是有很多人…

Android SDK 上手指南||第十一章 虚拟与物理设备

第十一章 虚拟与物理设备 在之前的文章里,大家已经了解了Android项目当中的基本元素、接触了用户界面的设计以及数据存储方案。接下来,我们将一同探索如何在物理及虚拟设备上运行自己的应用程序并与之互动。在系列文章的下一篇中,我们将分步…

SQL函数

函数 字符串函数数值函数日期函数流程函数 字符串函数 常用函数: 函数功能CONCAT(s1, s2, …, sn)字符串拼接,将s1, s2, …, sn拼接成一个字符串LOWER(str)将字符串全部转为小写UPPER(str)将字符串全部转为大写LPAD(str, n, pad)左填充,用…

【Unity3D赛车游戏优化篇】新【八】汽车实现镜头的流畅跟随,以及不同角度的切换

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

【自动化测试】之PO模式介绍及案例

目录 概念 PO三层模式: 1. 构建基础的 BasePage 对象层 2. 构建首页的 Page 层(操作层) 3.构建业务层 常用断言方法: 4. 构建用例集,执行文件,输出自动化测试报告 测试报告模板 概念 PO&#xff08…

webhook--详解(gitee 推送)

一、简介 webhook 是一种基于 HTTP 的回调函数,可在 2 个应用编程接口(API)之间实现轻量级的事件驱动通信。是一种新型的前后端交互方式,一种对客户端-服务器模式的逆转,在传统方法中,客户端从服务器请求数…

Vue3---uni-app--高德地图引用BUG

先给报错信息:module libs/map//libs/map_min.js is not defined, require args is /libs/map_min.js 查看我引用方法: 本人查阅资料发现 是 require 使用的是 commonJS方式引用说这个适配Vue2可我项目是Vue3应该使用ES6语法糖 然后我有跑了项目发现BU…

Excel数学、工程和科学计算插件:FORMULADESK Studio

如果 Excel 是您的武器 - 让我们磨砺您的剑!为整天使用 Excel 的人们提供创新的 Excel 加载项,你需要这个 FORMULADESK Studio。。。 Excel 插件为任何使用 Excel 执行数学、工程和科学计算的人提供了必备工具。 * 将公式视为真正的数学方程 * 为您的公…

接口自动化测试总结

一、什么项目适合做自动化测试? 软件需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程&#x…

快速解决 adb server version doesn‘t match this client

这个问题是由于电脑上安装了多个版本的adb工具,客户端和服务端的版本不一致,无法正常通信导致。最快的解决方法就是将Android SDK中adb复制到系统目录下。 操作步骤如下: 1. 查看adb版本和路径 执行adb version,如下&#xff0…

Python - 队列【queue】task_done()和join()基本使用

一. 前言 task_done()是Python中queue模块提供的方法,用于通知队列管理器,已经处理完了队列中的一个项目。 queue.task_done()是Queue对象的一个方法,它用于通知Queue对象,队列中的某一项已经被处理完毕。通常在使用Queue对象时…

STM32 Nucleo-144开发板开箱bring-up

文章目录 1. 开篇2. 开发环境搭建2.1 下载官方例程2.2 ST-Link安装 3. STM32F446ZE demo工程3.1 STM32F446ZE简介3.2 跑个demo试一试 1. 开篇 最近做项目,用到STM32F446ZET6这款MCU,为了赶进度,前期软件需要提前开发,于是在某宝买…

将PyCharm中的终端运行前面的PS修改成当前环境

最近使用Pycharm中的Terminal来pip安装一些pakage,发现Terminal运行前面的显示的是PS,然后输入安装指令报错。“python无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。” 解决方法: 只需要在pycharm的设置中修改一些termi…

高频golang面试题:简单聊聊内存逃逸?

文章目录 问题怎么答举例 问题 知道golang的内存逃逸吗?什么情况下会发生内存逃逸? 怎么答 golang程序变量会携带有一组校验数据,用来证明它的整个生命周期是否在运行时完全可知。如果变量通过了这些校验,它就可以在栈上分配。…

Greenplum执行SQL卡住的问题

问题 今天社区群里面一位同学反映他的SQL语句执行会hang住,执行截图如下。 分析 根据提示信息,判断可能是网络有问题,或者是跟GP使用UDP包有关系。 此同学找了网络检查的人确定网络没有问题,于是猜测跟UDP包有关。 参考文章ht…

git中的cherry-pick和merge有些区别以及cherry-pick怎么用

git中的cherry-pick和merge在使用场景上有些区别: cherry-pick用于将另一个分支的某一次或几次commit应用到当前分支。它可以选择性地拉取代码修改。merge用于将两个分支合并成一个新分支。它会把整个分支上的所有修改都合并过来。 具体区别:cherry-pick通常用于将bug修复从发…

plt函数显示图片 在图片上画边界框 边界框坐标转换

%matplotlib inline import torch from d2l import torch as d2l读取图片并显示图片 读取图片 image_path ../data/images/cat_dog_new.jpg # 创建画板 figure d2l.set_figsize() image d2l.plt.imread(image_path) d2l.plt.imshow(image);给出一个(x左上角,y左上角,x右下角…