开源低代码平台-Microi吾码-表单控件数据源绑定配置

news2025/2/25 5:19:27

表单控件数据源绑定配置

  • 平台简介
  • 普通数据源
  • 数据源引擎
  • Sql数据源
  • 通过其它字段来动态绑定数据源
  • 关于绑定数据源后的显示字段和存储字段

平台简介

  • 技术框架:.NET8 + Redis + MySql/SqlServer/Oracle + Vue2/3 + Element-UI/Element-Plus
  • 平台始于2014年(基于Avalon.js),2018年使用Vue重构,于2024年10月29日开源
  • Vue3试用地址(仅查询):https://microi.net
  • Vue2传统界面试用地址(可操作数据):https://demo.microi.net/
  • Gitee开源地址:https://gitee.com/ITdos/microi.net
  • GitCode开源地址:https://gitcode.com/microi-net/microi.net/overview

表单控件数据源目前支持多种模式

在这里插入图片描述

普通数据源

目前普通数据暂时只支持Value一种形式
平台正在扩展Key-Value形式的普通数据源
这样就不需要一定用接口引擎、数据源引擎、Sql数据源来实现Key-Value的数据绑定了

在这里插入图片描述

数据源引擎

这个很简单,选择相应自定义的数据源引擎即可

Sql数据源

  • 支持开启远程搜索功能
  • 未开启直接在数据源中前端本地搜索
  • 开启后每次搜索均从数据库查询,因此必须配置相应的 K e y w o r d Keyword Keyword变量以及limit分页
  • Sql数据源支持在Sql中使用【$CurrentUser.字段名$】相关变量,如【$CurrentUser.Id$、$CurrentUser.Account$】等
  • 由于sys_user表也由表单引擎驱动,因此您在表单设计中为sys_user表新增的任何字段,均能在【$CurrentUser.字段名$】中访问,如您添加了一个字段[Wife],可以【$CurrentUser.Wife$】访问

在这里插入图片描述

通过其它字段来动态绑定数据源

  • 比如说您在表单中先选择了下拉框控件【部门(Dept)】,然后在下拉框控件【联系人(Contact)】仅绑定选择当前部门的人员数据
  • 此时只需要给【联系人】的数据源配置为空即可
  • 然后在【部门】控件的【值变更事件中输入以下V8引擎代码】
//获取选中部门中的人员数据
var deptId = V8.ThisValue.Id;//或者V8.Form.Dept.Id
if(deptId){//如果选择了部门
	var contactResult = await V8.FormEngine.GetTableData('sys_user', {
		_SelectFields:['Id', 'Name', 'Account'],//只查询哪些字段,提高性能
		_Wherer: [{ Name : 'DeptId', Value : deptId, Type : '=' }]
	});
	if(contactResult.Code != 1){
		V8.Tips('获取部门人员失败!', false);
	}else{
		V8.FieldSet('Contact', 'Data', contactResult.Data);
	}
}else{//如果清空了部门
	V8.FieldSet('Contact', 'Data', []);
}
  • 当然以上只是基础示例,实际上还有更多玩法
  • 比如说使用接口引擎V8.ApiEngine.Run()实现
  • 比如说使用数据源引擎V8.DataSourceEngine.Run()实现
  • 以上用到的相关知识点:
  • V8.FormEngine的使用方法:https://microi.blog.csdn.net/article/details/143623519
  • Where条件的用法:https://microi.blog.csdn.net/article/details/143582519
  • V8.Field前端V8函数:https://microi.blog.csdn.net/article/details/143623205

关于绑定数据源后的显示字段和存储字段

  • 有同学在讲下拉框选择一个客户,只需要存储客户Id即可,没必要存储客户名称,因为客户名称可能会变更
  • 实际上吾码官方推荐的做法是下拉框选择一条数据后应该是存储客户名称,需要再拖一个隐藏字段客户Id,在下拉框值变更事件中对客户Id进行赋值
  • 优点是历史名称存档,比如说新增一个订单需要下拉选择商品,我们既需要存储商品名称、也需要存储商品Id,否则用户购买了一只笔,后来商品名称改成了书,用户去查看订单会发现订单中的商品名称变成了一本书
  • 而客户名称修改后确实需要在其它关联数据显示最新的客户名称,可以在客户列表修改名称时,通过表单事件对关联数据进行同步更新即可

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Y3编辑器文档4:触发器1(对话、装备、特效、行为树、排行榜、不同步问题)

文章目录 一、触发器简介1.1 触发器界面1.2 ECA语句编辑及快捷键1.3 参数设置1.4 变量设置1.5 实体触发器1.6 函数库与触发器复用 二、触发器的多层结构2.1 子触发器(在游戏内对新的事件进行注册)2.2 触发器变量作用域2.3 复合条件2.4 循环2.5 计时器2.6…

Redis原理—4.核心原理摘要

大纲(9870字) 1.Redis服务器的Socket网络连接建立 2.Redis多路复用监听与文件事件模型 3.基于队列串行化的文件事件处理机制 4.完整的Redis Server网络通信流程 5.Redis串行化单线程模型为什么能高并发 6.Redis内核级请求处理流程与原理 7.Redis通信协议与内核级请求数据…

轻量级日志管理平台:Grafana Loki搭建及应用(详细篇)

前言 Grafana Loki是Grafana Lab团队提供的一个水平可扩展、高可用性、多租户的日志聚合系统,与其他日志系统不同的是,Loki最初设计的理念是为了为日志建立标签索引,而非将原日志内容进行索引。 现在目前成熟的方案基本上都是:L…

【规范一】JAVA静态代码规范

1.规范的划分 将Java代码规范分为 风格规范 和 质量规范 ,主要是因为这两种规范关注的方面不同,各自解决的问题也不同。下面详细解释为什么需要将代码规范分为这两种 1.1 风格规范(Coding Style Guidelines) 风格规范主要关注代码…

Angular由一个bug说起之十二:网页页面持续占用CPU过高

随着网络日益发达,网页的内容也更加丰富,形式也更加多样化。而随之而来的性能问题也不容小觑。这篇文章我会根据我在实践中遇到的一个问题来总结,我在面对性能问题的一些解决步骤,希望能对大家有所启发。 查找问题原因 我接触的…

WordPress全能CDN插件_自动刷新预热_缓存优化|国内国外集成CDN配置

WordPress全网独家原创CDN插件 自动刷新预热 缓存优化 国内国外集成CDN配置 支持白山云 cdnfly Cloudflare PS:目前国内集成了CDNfly,白山云国外集成了Cloudflare,更新手动刷新,全站刷新,优化提交线程,根据网友建议适配阿里云,le…

唇形同步视频生成工具:Wav2Lip

一、模型介绍 今天介绍一个唇形同步的工具-Wav2Lip;Wav2Lip是一种用于生成唇形同步(lip-sync)视频的深度学习算法,它能够根据输入的音频流自动为给定的人脸视频添加准确的口型动作。 (Paper) Wav2Lip模型…

【汽车】-- 燃油发动机3缸和4缸

3缸和4缸燃油发动机是小轿车常见的发动机配置。以下从结构特点、性能、经济性等方面对两者进行对比,并分析优缺点及使用注意事项: 1. 结构与运行原理 3缸发动机 特点:少一个气缸,内部零部件更少,整体结构更紧凑。优点…

[NeurlPS 2022] STaR 开源代码实现解读

STaR 方法代码开源,这里给出一个中文代码解读地址:repo入口点:iteration_train.py;关键代码:device_train.py, device_inference.py, and create_finetune_tfrecords.py;基于 JAX、RAY,在 Googl…

欢迪迈手机商城设计与实现

文末获取源码和万字论文,制作不易,感谢点赞支持。 题目:欢迪迈手机商城设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管…

【鸿蒙实战开发】数据的下拉刷新与上拉加载

本章介绍 本章主要介绍 ArkUI 开发中最常用的场景下拉刷新, 上拉加载,在本章中介绍的内容在实际开发过程当中会高频的使用,所以同学们要牢记本章的内容。下面就让我们开始今天的讲解吧! List 组件 在 ArkUI 中List容器组件也可以实现数据滚动的效果&a…

UnityShaderLab 实现程序化形状(一)

1.实现一个长宽可变的矩形: 代码: fixed4 frag (v2f i) : SV_Target{return saturate(length(saturate(abs(i.uv - 0.5)-0.13)))/0.03;} 2.实现一个半径可变的圆形: 代码: fixed4 frag (v2f i) : SV_Target{return (distance(a…

高阶数据结构--B树B+树实现原理B树模拟实现--Java

目录 一、B-树概念 二、B-树插入分析 1.用序列{53, 139, 75, 49, 145, 36, 101}构建B树的过程如下: 2.插入过程总结 三、B树插入实现 四、B树 1.B树概念 2.B树的特性 五、B树应用 1.索引 2.Mysql索引 3.InnoDB 一、B-树概念 1970 年, R.Bayer 和…

网络安全——防火墙

基本概念 防火墙是一个系统,通过过滤传输数据达到防止未经授权的网络传输侵入私有网络,阻止不必要流量的同时允许必要流量进入。防火墙旨在私有和共有网络间建立一道安全屏障,因为网上总有黑客和恶意攻击入侵私有网络来破坏,防火…

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理

基于Qwen2-VL模型针对LaTeX OCR任务进行微调训练 - 多图推理 flyfish 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_LoRA配置如何写 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_单图推理 基于Qwen2-VL模型针对LaTeX_OCR任务进行微调训练_-_原模型_单图推理 基于Q…

Ant Design Pro实战--day01

下载nvm https://nvm.uihtm.com/nvm-1.1.12-setup.zip 下载node.js 16.16.0 //非此版本会报错 nvm install 16.16.0 安装Ant Design pro //安装脚手架 npm i ant-design/pro-cli -g //下载项目 pro create myapp //选择版本 simple 安装依赖 npm install 启动umi yarn add u…

一、为什么要学习麒麟?

麒麟认证:开启职业晋升之门 当前,就业难已经成为一个普遍的社会问题。许多大学生毕业后面临着找工作的困境,他们往往发现自己很难找到满意的职位。即使有幸找到了工作,也经常需要应对工作压力大、薪资低等问题。除此之外&#xff…

python如何减小维度

ravel():将多维数组拉平(一维)。 flatten():将多维数组拉平,并拷贝一份。 squeeze():除去多维数组中,维数为1的维度&…

未来已来:人工智能如何重塑我们的生活与工作

引言 未来的生活和工作场景正从想象走向现实。想象一下,一个清晨,语音助手已经为你安排好一天的任务,自动驾驶汽车准时送你上班,智能冰箱提醒你需要补充的食材。曾经只存在于科幻小说中的场景,如今正在我们的身边实现。…

Adminer源码编译 精简语言中英文和基本使用方法

Adminer是一个小而强悍的基于web的数据库管理工具, 官方默认支持几十种语言,但是对于中国的用户而言只需要有中文和英文就够了,其他语言基本无用。这就需要我们下载Adminer源码自己编译 Adminer.php , 如下图所示 adminer 中英文语言精简版本…