目录结构

  • Mendix敏捷开发零基础学习《一》
    • 一、环境依赖
    • 二、业务场景
    • 三、需求分析
    • 四、项目实现
      • 1、创建项目
      • 2、创建数据模型
      • 3、创建页面
      • 4、数据源绑定
      • 5、属性绑定
      • 6、数据新增
      • 7、数据删除
      • 8、关系型数据模型

Mendix敏捷开发零基础学习《一》

一、环境依赖

  1. Mendix账号: 需要用公司邮箱注册
    注册地址: https://signup.mendix.com/link/signup/?ref=158899
  2. 开发工具: MendixStudioPro 8.12.4
    下载链接: https://pan.baidu.com/s/1BBdli6iJ2ZV5Y7uEJTkCuA 提取码: yttq
  3. 系统要求: win10
  4. 安装JDK: OpenJDK11U-jdk_x64_windows_hotspot_11.0.3_7
    下载连接:https://pan.baidu.com/s/1PE4GBkBoL-8Wjx-mvelzVA 提取码:4cqt
  5. 安装.NET环境: Microsoft .NET Framework 4.7.2
    下载连接:https://pan.baidu.com/s/12LQqGpMFVKzyNcrUZGkinw 提取码:hosx
  6. 安装C++环境: Microsoft Visual C++ 2010 SP1 Redistribution Package
    下载连接:https://pan.baidu.com/s/11gVjinWdhY3J1XfX9VrPvg 提取码:sygg

二、业务场景

现有一学校,需要记录课程信息(课程信息里边包含该课程需要几天、价钱、说明等)、教师信息(姓名、邮箱等)、课程位置(标题、地址等)、报名人员(名称、地址、邮箱等)、课程培训活动等,方便维护系统。

三、需求分析

根据业务场景分析,我们需要创建五个数据模型(课程Courses、教师Teacher、地址Location、报名人员Trainee、课程培训活动TrainingEvent),分别来存储这些信息。下边列举一下具体的属性有哪些:

课程Courses:

属性 备注 类型
Title 标题 String
Description 说明 String
Duration 需要多久/天 Integer
Price 价钱 Decimal

教师Teacher:

属性 备注 类型
Name 名称 String
EmailAddress 邮箱地址 String

地址Location:

属性 备注 类型
Name 名称 String
Address 地址 String

报名人员Trainee:

属性 备注 类型
Name 名字 String
Address 地址 String
EmailAddress 邮箱地址 String

课程培训活动TrainingEvent:
这是一个一对多的数据结构,所以需要依附于其他的数据表,下面会说到怎么配置,这里就列举需要创建的属性

属性 备注 类型
startDate 开始时间 Date and time(这是Mendix提供的时间类型)
endDate 结束时间 Date and time(这是Mendix提供的时间类型)

四、项目实现

根据以上分析结果,我们可以根据MendixStudioPro开发工具实现基础的业务场景,下面开始:

1、创建项目

  1. 打开MendixStudioPro新创建一个空白项目,选择New App 按钮。
  2. 选择Starter Apps,选择Blank App模版。这里有很多模版,有机会可以试试。
  3. 然后点击Use this starting point开始使用当前模版
  4. 我们在App Name填写项目名称,在EnableOnlineServices选择No(该选项是否需要联机服务,联机服务会很慢,所以选择NO。我们在本地也不需要联机服务!),在Project Directory选择项目要保存的路径。一般情况下只需要填写这三项内容即可。点击Create app创建我们的项目工程。
  5. 我们新创建的工程,进来以后有我们常用的三大块,1.是我们页面的目录树。2.是我们设计页面的工作台。3.是我们常见的一些组件,比如按钮、表格等。

2、创建数据模型

  1. 根据需求,我们首先需要创建数据模型,Mendix创建数据模型很简单,双击左侧目录树的DomainModel,然后在打开的页面点击Entity按钮,就会出来Entity的数据表。

  2. 双击Entity数据表,设计课程Courses 数据结构,在弹出的页面上输入Name属性(当前实体的名称),然后点击New新建实体中的属性。

  3. 在弹出的页面上输入Name(属性的名称),选择Type(数据类型)为String(字符类型),输入MAX length(最大长度)为200,然后点击OK。

  4. 循环2-3步骤创建其他的属性,这里就不列举了,因为创建方式都是一样的。

  5. 循环1-3步骤将其余的数据表结构创建好。

3、创建页面

  1. 表结构有了,我们开始搭建我们的页面程序,点击左侧目录树的Home Web(该页面是我们程序的主入口)。
  2. 我们根据业务场景需要先创建四个部分,第一部分是课程Courses,第二部分是地址Location,第三部分是教师Teacher,第四部分是报名人员Trainee,所以我们需要分为四列。 点击当前内容,右击该区域的上标题栏目右击选择Add column left添加四列。Mendix会自动将内容分为四等分。
  3. 添加好四列以后,我们在3区域的Building blocks搜索组件card,选择Card Action组件,然后拖入到每一列当中。
  4. 双击下列红框中,我们将图标进行更换
  5. 在弹出的页面中点击Select按钮。
  6. 在弹出的页面搜索book,选择下列图标,然后点击select按钮,就可以把当前图标更换为符合我们需求的图标。
  7. 选择好以后,开发工具会自动跳转到第5步的页面,给他赋予一个点击事件,我们就让他点击以后跳转一个列表页面,在On click下拉列表中选择Show a page
  8. 选择好以后系统会弹出一个选择页面的窗体,我们这时是没有页面的,所以点击New按钮新创建一个页面。
  9. 我们在新弹出的窗口Page name中填写页面名称(需要英文),因为我们需要让他跳转到列表页所有选择Lists->List Default(默认列表页),在NavigationLayout下拉框中选择Atlas_Default选项(跳转),该选项是点击按钮以后页面的打开方式,弹出或跳转等。然后点击OK按钮
  10. 开发工具会自动跳转到第5步的页面,然后点击OK按钮。该功能和页面就创建好了。
  11. 创建完成以后,左侧目录树就会出现我们刚才创建的页面。
  12. 说一个简单的方式,可以直接将Open Page按钮复制刚才我们的操作。就是将刚才创建的页面直接拖到Open Page上就可以了。
  13. 拖好以后双击 Open Page按钮,将名字改为自己的,在Caption输入框中直接改,然后点击ok就可以了。
  14. 其他几列也同样的循环4-13步骤,我这里列举一下需要选择图标、列名称、和页面命名。
名称 图标 页面命名
Courses book Courses_Overview
Locations map Locations_Overview
Teachers user Teachers_Overview
Trainess education Trainess_Overview

4、数据源绑定

  1. 将其余的三列创建好以后,点击上方Run Locally按钮发现项目是运行报错,是因为我们还没有跟数据进行绑定。所以才会导致运行报错。
  2. 将页面跟数据进行绑定,双击Courses_Overview页面,在UnKnown右击选择Select data source(选择数据源),
  3. 在弹出的页面上点击Select按钮
  4. 在弹出的页面上选择我们刚才创建的数据模型Courses,然后点击Select按钮。
  5. 开发工具会自动跳转到3步骤,点击OK按钮,该页面就和Courses数据模型绑定成功。
  6. 开发工具会弹出一个提示框来询问我们是否自动的响应页面属性,我们选择NO按钮不需要。

5、属性绑定

  1. 双击 页面上的Title属性,在弹出的窗口选择Edit按钮,来跟数据模型中的属性进行绑定。

  2. 在弹出的窗口上选择New按钮。

  3. 在弹出的窗口上选择Select,开发工具会弹出Courses数据模型的所有属性,我们选择Title属性即可,然后点击Select按钮。

  4. 点击OK按钮,完成选择

  5. 然后系统会自动出现一个Index序号,我们将这个需要输入到Caption中(代表刚才双击页面上Title属性显示序号{1}的数据),然后点击OK按钮->OK按钮 完成数据绑定。

  6. 循环 1-5步骤,将其他 属性 进行绑定。

  7. 循环目录四、项目实现4和5章节的步骤点击跳转,将其余的 页面 (Locations_Overview、Teachers_Overview、Trainess_Overview)进行数据绑定。然后我们点击Run Locally运行项目,然后点击View按钮进行预览。

  8. 我们可以点击我们创建的四部分,进行查看。

6、数据新增

  1. 我们可以发现,里边现在是空的,没有数据的。所以我们现在需要实现新增功能。
  2. 我们现在以Courses_Overview列表页面为例,实现一下新增功能。双击目录树Courses_Overview页面,然后双击页面上Add按钮。
  3. 我们在弹出的窗口On click下拉框中,选择Create object创建一个对象类型。
  4. 选择好Create object后,开发工具会让我们选择对应的Entity(就是我们创建的数据模型),我们点击Select,在弹出的页面选择Courses数据模型,然后点击select按钮完成选择。

  5. 紧接着我们在选择对应的页面,点击On click page中的Select按钮,来选择对应的新增页面。
  6. 这个时候我们可以发现,我们是没有新增页面的,所以点击New按钮,创建一个新增页面。
  7. 在弹出的页面会发现Page name会自动为我们创建名称,所以我们不需要更改。在Navigation layout下拉选项中选择PopupLayout(弹出页面方式),然后选择Forms中的Form Vertical。然后点击Ok->Ok按钮,完成页面创建。

  8. 完成并保存以上操作以后,我们重新点击Run Locally 运行我们的项目,浏览一下。点击Courses菜单进入列表页,在列表页上点击右上角的Add按钮,这时候我们就可以发现,有弹出新增页面,可以新增数据了。


  9. 然后我们重复当前章节的操作步骤,完成对其他 (Locations_Overview、Teachers_Overview、Trainess_Overview)页面的新增功能。这里就不一一列举了。步骤都是相同的,Entity选择对应的数据模型即可。完成以上操作以后,所有的列表页面都有新增功能了。

7、数据删除

  1. 新增功能有了,肯定还需要用到删除功能,不能光新增不能删除对吧?接下来我们做一下删除功能,这里还是以Courses_Overview列表页面为例。双击打开Courses_Overview页面,在3号区域ToolBox中的widgets中搜索button按钮,找到Delete button,拖入到对应的位置,就完成删除的操作了。重复当前步骤完成其他 (Locations_Overview、Teachers_Overview、Trainess_Overview)页面的删除功能。

8、关系型数据模型

  1. 经过以上操作我们就大体实现了四大模块(课程、老师、地址、学员)的新增和删除工作了。现在根据学校的实际需求出发,学校的维护人员需要发布培训活动,培训活动需要包含课程培训课程的老师,还有培训地址方便学员进行报名需求分析完毕,接下来我们开始操作。我们首先需要在数据模型中将TrainingEvent(培训活动)的模型与课程、老师、地址进行一对多的关联,方便维护人员进行维护,双击 左侧目录树中的DoMain Model,然后在打开的窗口中从TrainingEvent模型向其他三个模型(Courses、Teacher、Location)拉箭头,就可以完成模型一对多的绑定。
  2. 数据模型绑定成功以后,我们需要在Home_Web主页面添加新模块的入口,首先介绍一下在MendixPro中怎么操作表格。
  • 如何选择行:
    鼠标点击下图所示区域是选择一整行
  • 如何选择列:
    鼠标点击下图所示区域是选择对应的列
  • 如何选择表格:
    鼠标点击下图所示区域是选择整个表格
  1. 双击左侧目录树中的Home_Web页面,然后选择行以后鼠标右击选择Insert row below。
  2. 选择Insert row below以后,页面会出现让我们选择将新建的行分成几等份,我们直接跟上一行一样,分成四等份即可。
  3. 参考目录四中的3.创建页面章节的3-13的小节完成页面创建点击跳转,参考目录四中的4.数据源绑定小节完成数据源绑定点击跳转, 参考目录四中的5.属性绑定 小节完成属性绑定点击跳转, 参考目录四中的6.数据新增 小节完成数据新增点击跳转,我这边列出来页面命名、图标、以及名称。
名称 图标 页面命名
TrainingEvent calendar TrainingEvent_Overview
  1. 完成以上操作以后,我们就可以对培训活动进行新增操作,我们可以看到在新增页面会自动带出课程培训课程的老师,还有培训地址信息,到这一步就完成了关系型一对多数据模型的创建。


Mendix敏捷开发零基础学习《一》-基础(数据模型、页面创建、数据源绑定、属性绑定、关系型数据模型)相关推荐

  1. Mendix敏捷开发零基础学习《三》-高级 (数据删除保护机制、数据关联删除、Security安全、调用外部接口、调用JAVA代码)

    目录 Mendix敏捷开发零基础学习<三> 一. 数据保护机制(Prevention of Delete) 1.业务需求 2.业务分析 3.项目实现 二.Mendix权限(Security ...

  2. Mendix敏捷开发零基础学习《二》-进阶(Microflow微流、表单验证、运算符、条件判断、数据嵌套、触发器、Debug问题跟踪、版本管理)

    目录结构 Mendix敏捷开发零基础学习<二> 一.Microflow微流 1.引言 2.常见的功能 3.微流可以做那些事情? 3.1 举例1(用微流打开新增页面) 3.2 举例2(用微流 ...

  3. python语言的单行注释以井号开头_推荐|零基础学习Python基础知识

    原标题:推荐|零基础学习Python基础知识 Python是一种面向对象.解释型计算机程序设计语言.语法简洁清晰,强制用空白符作为语句缩进. Python具有丰富和强大的库,又被称为胶水语言.能把其他 ...

  4. 零基础学习PHP-PHP基础

    零基础学习PHP-PHP基础 第一章:PHP编程基础 1.1PHP简介 ​ PHP(PHP: Hypertext Preprocessor)即"超文本预处理器",是在服务器端执行的 ...

  5. 第八课 k8s网络基础学习-VxLAN基础

    第八课 k8s网络基础学习-VxLAN基础 tags: k8s网络 eNSP wireshark VxLAN 文章目录 第八课 k8s网络基础学习-VxLAN基础 第一节 VxLAN 1.1 VxLA ...

  6. UE5 Shader基础学习笔记——01-12 图形管线/创建shader/数学节点/贴图压缩/LerpDotUV/常用向量/坐标空间/MinMaxClampSaturate/法线贴图混合

    UE5 Shader基础学习笔记--01-12 图形管线/创建shader/数学节点/贴图压缩/LerpDotUV/常用向量/坐标空间/MinMaxClampSaturate/法线贴图混合 Lec01 ...

  7. 【SQL基础学习】----基础篇(1)

    前言: 存储数据的容器 在内存中(数据存在易失性,断电即数据没了):         数组         集合 磁盘(永久存储):         文件(不易管理)         数据库(持久化, ...

  8. 敏捷开发的相关学习文档路径

    1.敏捷开发之扫盲 http://www.cnblogs.com/taven/archive/2010/10/17/1853386.html 2.敏捷开发之product backlog http:/ ...

  9. 内存管理基础学习笔记 - 5.2 页面回收 - kswapd

    目录 1. 前言 2. kswapd_init 3.kswapd |- -balance_pgdat |- - -pgdat_balanced |- - -kswapd_shrink_node |- ...

最新文章

  1. 自学python入门-学python入门看什么书
  2. 泛型委托Action与ActionT
  3. mysql freebuf_浅析mysql存储过程
  4. 聊一聊Jmeter的简单使用
  5. [vue-element] ElementUI是怎么做表单验证的?在循环里对每个input验证怎么做呢?
  6. 语言三做一年级算题_一年级数学期末考试,学生交卷说能考100分,快让你家孩子试试吧...
  7. 每天进步一点点《ML - 线性回归》
  8. 力扣225-用队列实现栈(C++,附思路及优化思路,代码)
  9. Linux内核与Linux操作系统的区别,[科普] Linux 的内核与 Linux 系统之间的关系
  10. Java中判断当前数据是否全为数字
  11. 《Javascript DOM 编程艺术》
  12. 漫画:Bitmap算法
  13. 店铺进销存管理系统源码
  14. 世界一流学科排名计算机科学,2021软科世界一流学科排名:计算机科学与工程...
  15. 期权定价模型BS模型及反推隐含波动率 golang实现
  16. python使用selenium爬取dell官网驱动(一):获取遍历各驱动的下载网址
  17. Python 爬虫实战,模拟登陆爬取数据
  18. MATLAB教程(1) MATLAB 基础知识
  19. 计算机复试面试英语自我介绍,天津师范大学计算机研究生复试面试英语自我介绍...
  20. 背景为图片的按钮css实现按钮背景图置灰

热门文章

  1. 白等贺锦鲤就职典礼最靓的仔~Have fun
  2. 网络设备行业价格指数走势
  3. 国产动漫屡遭吐槽 融资困境待解
  4. 数据库管理员是开发数据库的专门人员吗?
  5. 版本控制神器之Git深入介绍
  6. 用数据讲故事 英文版_建立数据科学产品组合:讲故事与数据
  7. 基于dynamic-datasource多数据源自由切换--多租户
  8. 2023华为od机试真题 C语言 实现【数大雁】
  9. Nanoprobes 艾美捷用于免疫组织化学和印迹的EnzMetTM
  10. 流量传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告