之前为了应对客制化大屏设计的需求,在框架内实现了拖拽方式(动态化)生成用户界面的功能,跟大部分实现方式差不多,设计时生成配置json,然后在运行时解析json生成用户界面。这次完善了一下该功能,支持类似于零代码平台生成增删改查界面,下面简单介绍一下操作步骤。

一、准备数据结构

  参考之前的文章准备好所需的实体模型。

二、详情视图

  进入开发后台后,主菜单New->View,参考下图选择Dynamic类型的视图。

可以参考之前的可视化大屏设计视频了解一下如何布局组件。

1. 创建数据状态

  点击右上部State旁的添加按钮,添加类型为DataRow,名称为customer的状态,点击右侧修改按纽参考下图选择对应的Customer实体,并选择相应的列。

2. 详情表单布局

  参考下图大纲结构设计表单。

3. 绑定表单至状态

  在设计界面依次选择表单输入项,然后点击右侧属性面板内Text属性面侧的绑定按钮,在弹出的对话框内选择绑定的数据状态对应的列(绑定成功后绑定按纽为变为绿色)。

4. 绑定保存按纽事件

  在设计界面选择保存按纽,然后点击右侧属性面板内的OnTap事件,在弹出对话框内选择SaveData事件操作,并勾选customer数据状态。

三、列表视图

1. 创建数据状态

  先添加类型为String,名称为qName的状态,用于绑定查询过滤条件,然后再添加DataTable类型名为customers的状态,参考下图分别设置查询返回的列及过滤条件。



2. 列表视图布局

  参考下图大纲结构设计列表视图。

3. 绑定按钮事件

  分别绑定新建编辑删除搜索按纽的事件操作,其中新建删除按钮都是绑定至ShowDialog操作,不同的是向目标视图CustomerEdit传入的视图参数分别是CreateRowFetchRow类型,FetchRow视图参数请参考下图设置主键字段来源于当前视图的哪个状态。



四、测试运行

  保存并发布上述模型后,就可以在应用端测试运行了(如下图所示)。

五、待实现功能

  • 目前查询与保存暂未做权限验证,后续将在实体模型设计时提供是否允许动态化查询与保存的相关权限设计;
  • 需要完善如实体关联选择等动态化组件;
  • 事件支持脚本或图形化脚本;

六、本篇小结

  作者个人能力实在有限Bug在所难免,如有问题请邮件联系或Github Issue,欢迎感兴趣的小伙伴们加入共同完善,当然更欢迎赞助项目或给作者介绍工作(目前找工作中)。

AppBox拖拽设计增删改查用户界面的更多相关文章

  1. Flask一种通用视图,增删改查RESTful API的设计

    模型设计是后端开发的第一步.数据模型反映了各种对象之间的相互关系. from app import db class Role(db.Model): """角色" ...

  2. 在ASP.NET MVC4中实现同页面增删改查,无弹出框02,增删改查界面设计

    在上一篇"在ASP.NET MVC4中实现同页面增删改查,无弹出框01,Repository的搭建"中,已经搭建好了Repository层,本篇就剩下增删改查的界面了......今 ...

  3. Oracle 基本操作--数据类型、修改和删除表、增删改查和复制表

    一.Oracle基础数据类型:数据类型: 创建数据表时,设计数据表的结构问题,也就是设计及确定数据表中各个列的数据类型,是数值.字符.日期还是图像等其他类型. 因为只有设计好数据表结构,系统才会在磁盘 ...

  4. Django学习笔记(10)——Book单表的增删改查页面

    一,项目题目:Book单表的增删改查页面 该项目主要练习使用Django开发一个Book单表的增删改查页面,通过这个项目巩固自己这段时间学习Django知识. 二,项目需求: 开发一个简单的Book增 ...

  5. webapi初学项目(增删改查)

    初学wenapi做了一个从数据库增删改查的项目 webapi: 1.创建项目:visual C# —> ASP.NET MVC 4 web应用程序 模板—>web api; 2.注册路由: ...

  6. SQL你必须知道的-增删改查与约束

    SQL你必须知道的-增删改查与约束   -- 插入数据    --Insert 语句可以省略表名后的列名,但是不推荐    insert into Class values ('' 高一一班 '', ...

  7. 浅谈dataGridView使用,以及画面布局使用属性,对datagridview进行增删改查操作,以及委托使用技巧

        通过几天的努力后,对datagridview使用作一些简要的介绍,该实例主要运用与通过对datagridview操作.对数据进行增删改查操作时,进行逻辑判断执行相关操作.简单的使用委托功能,实 ...

  8. .NET Core实战项目之CMS 第十五章 各层联动工作实现增删改查业务

    连着两天更新叙述性的文章大家可别以为我转行了!哈哈!今天就继续讲讲我们的.NET Core实战项目之CMS系统的教程吧!这个系列教程拖得太久了,所以今天我就以菜单部分的增删改查为例来讲述下我的项目分层 ...

  9. mysql实现简单的增删改查,放入xmapp自带数据库中

    1.mysql概念:SQL-Structured Query Language,是一种特殊的语言,专用于操作关系型数据库服务器中的数据,所有的SQL语句分为四类: (1)DDL(2)DQL(3)DML ...

  10. C#-WebForm-LinQ(一)-LinQ:语言集成查询(Language Integrated Query)-增删改查、属性扩展

    LinQ-语言集成查询(Language Integrated Query) 高集成化的数据库访问技术 LINQ 2 SQL 实际是将数据库的表映射成程序中的类 会把数据库的表名原封不动的变成类名 数 ...

随机推荐

  1. Docker Swarm多节点环境的搭建(二): Docker的集群调配

    Docker的集群调配在上篇文章中介绍了如何如何在多个CentOS中安装Docker应用.本文章为大家介绍如何实现对已安装的这一堆机器实现集群化.Docker Swarm运行Spring Cloud应 ...

  2. 【Ubuntu】安装OpenSSH启用远程连接

    [Ubuntu]安装OpenSSH启用远程连接 零.安装软件 使用如下代码安装OpenSSH服务端: sudo apt install openssh-server 壹.启动服务 使用如下代码启动Op ...

  3. vue3第二次传递数据方法无法获取到最新的值

    使用reactive父组件第二次传递给子组件的数据:方法中可以获取到最新数据 <template> <div> <div> <h1>子组件</h1 ...

  4. expected at least 1 bean which qualifies as autowire candidate

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'log ...

  5. RL · Exploration | 使用时序距离构造 intrinsic reward,鼓励 agent 探索

    论文标题:Episodic Novelty Through Temporal Distance. ICLR 2025,8 8 6 5 poster. arxiv:https://arxiv.org/a ...

  6. RocketMQ消息是如何存储的

    RocketMQ的消息存储是一个复杂而高效的过程,设计上充分考虑了性能和扩展性, 消息存储的主要组件包括CommitLog文件.消费队列文件(ConsumerQueue).以及索引文件(IndexFi ...

  7. Semaphore.release()方法的底层原理

    一.release() 方法代码解析 当调用 release() 方法时,实际调用的是 AQS 的 releaseShared(1) 方法.以下是其详细工作流程: public final boole ...

  8. JAVA基础之多线程一期

    一.并发与并行的区别 并发:指同一时间段,两个或多个事件交替进行 并行:指同一时间段,两个或多个事件同时进行 二.进程与线程的区别 进程:正在内存中运行的程序就是进程 线程:线程归属于进程,它是进程中 ...

  9. 国产的 Java Solon v3.2.0 发布(央企信创的优选)

    Solon 框架! Solon 是新一代,Java 企业级应用开发框架.从零开始构建(No Java-EE),有灵活的接口规范与开放生态.采用商用友好的 Apache 2.0 开源协议,是" ...

  10. TextBox输入法控制,进入输入框则启用或禁用输入法(ime),禁用后只能输入英文

    有的场景需要禁止用户打开ime模式(禁止输入法输入),所以 TextBox 支持默认属性配置,效果如下: <Window x:Class="切换输入法.MainWindow" ...