知识刷屏:Mendix敏捷开发零基础学习《二》
Posted Mendix
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识刷屏:Mendix敏捷开发零基础学习《二》相关的知识,希望对你有一定的参考价值。
该章节的案例是基于的需求和案例进一步讲解。
01
Microflow微流
01
引言
Mendix的Microflow微流其实是处理程序逻辑的一种方式。微流可以执行诸如创建和更新对象,显示页面以及做出选择之类的动作。这是传统上以文本程序代码结尾的可视化方式。
02
常见的功能
图标 |
名称 |
描述 |
|
开始节点 |
开始事件是微流的起点。一个微流只能有一个启动事件。 |
![]() |
结束节点 |
结束事件定义微流停止的位置。在某些情况下,取决于微流的返回类型,必须指定一个值。可以有多个结束事件。 |
![]() |
判断节点 |
根据条件做出决策,并且仅遵循一个流出流。微流中没有并行执行。 |
![]() |
合并节点 |
合并可用于将多个序列流合并为一个。如果在微流中做出选择,然后需要完成一些常见的工作,则可以使用合并将两个(或更多)路径合并。 |
![]() |
任务节点 |
任务节点是在微流中需要处理的任务。 |
![]() |
参数节点 |
在触发微流的位置填充参数。 |
![]() |
顺序流 |
顺序流是将事件,活动,决策和彼此合并的箭头。它们共同定义了微流程中的执行顺序。 |
---------- |
注释流程 |
关联是可用于将注释连接到另一个元素的连接。 |
更多图标解释请参见官网:
https://docs.mendix.com/refguide/microflows#1-introduction
03
微流的功能
举例1(用微流打开新增页面)
基于,创建完培训活动的功能模块以后,可以在列表页增加一个新增的按钮,然后调用微流来实现展示页面。
1. 双击左侧目录树中的TrainingEvent_Overview 培训活动列表页,在右侧区域的Toolbox中的Widgets搜索框中搜索Button,找到空白Button后将其拖入到列表页。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/0aee0ed9c7f540c8a9a7261727601929.jpg)
2. 然后双击拖入的按钮Button,修改Caption选项(按钮名称)为新增,修改On click下拉框为Call a microflow,创建一个微流。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/6e0b87c520ea4d59acaf8bb7451eef8d.jpg)
3. 在弹出的页面选择New按钮,新建微流。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/07506455f9f1407fb2a3845bf0a0796b.jpg)
4. 在新弹出的窗口在Name选项输入ACT_TrainingEvent_New(请遵循微流命名规范),然后点击OK->OK按钮,即完成创建。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/62576efa2542489eadde097e993560a8.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/1378695e721e4b9f9752fbd97805a449.jpg)
5. 这时,目录树中新增了一个微流ACT_TrainingEvent_New,双击该页面,就可看到微流的工作台,图中圆圈内的内容是刚才创建的新增按钮所在的数据源TrainingEvent,会自动带入到该微流作为常量来使用。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/0ade853f163d4444b5253b18896c1c7c.jpg)
6. 回顾一下,第一获取TrainingEvent数据模型,第二展示新增页面,明确需求后继续。首先鼠标单击下图圆圈中的任务节点拖入到顺序流中。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/4d3f719fa7c64733a57abdc1bf306c5e.jpg)
7. 双击刚才拖入的任务节点,我们选择Object下的Create object,然后点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/cde3a8ce7f134060bec35a130c280a81.jpg)
8. 在弹出的窗口中点击Select按钮,然后选择TrainingEvent数据源,然后点击Select->OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ac1b91dd0ae74438809fce1f6186f11c.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/aa66cef1c5854fe89c3fab7d67db4944.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/5be64369fcb0410a8aeae1ba59e7eef9.jpg)
9. 在新增页面,还需要拖入一个任务节点,双击拖入的节点,选择处理类型位Client下的Show page,然后点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/a32977cf10414cc9b1e72fdbb8585444.jpg)
10. 在弹出的窗口中Object to pass下拉框中选择刚才获取数据的节点NewTrainingEvent。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/a69ab8d12f0f461c852378df49ff08ad.jpg)
11. 然后点击Select选择需要渲染的页面,这里是渲染新增页面,所以选择对应的TrainingEvent_NewEdit,然后点击Select->OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/de4021178bd94648b3c07d10491f8e6a.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/130d2e74bb4a4355acbd4e671768e4ae.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/175389e3a6524f879961b8a6ae7f1af1.jpg)
12. 运行项目,进行预览,看通过微流是否打开创建的页面。点击菜单栏TrainingEvent,然后点击新增按钮,这时候就可以用微流打开页面了。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/77379d9d2dc54800baf26335cbcb6291.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/411b22880eac4ce4a37b77566ecc917c.jpg)
举例2(用微流做运算、触发器)
通过举例1接触到微流的应用场景,其实微流还可以做很多事情哦。以下是一些常用的函数和运算公式:
函数 |
备注 |
输入 |
输出 |
* |
乘法运算 |
2*3 |
6 |
div |
除法运算 |
3 div 5 |
0.6 |
: |
除法运算 |
12 : 3 |
4.0 |
mod |
计算一个数除以另一个的余数 |
23 mod 5 |
3 |
+ |
加法运算 |
-3 + 4 |
1 |
- |
减法运算 |
5 - 4 |
1 |
parseInteger |
接受字符串并将其解析为整数。 |
parseInteger(‘42’) |
42 |
toString |
将指定的值转换为字符串表示形式。 |
toString(1.4) |
‘1.4’ |
addDays |
该功能为日期增加了几天。 |
addDays (dateTime(2007, 1, 1, 1, 1, 1), 3) |
“Mo Jan 04 01:01:01 CET 2007” |
更多函数请参见官网:
https://docs.mendix.com/refguide8/expressions
报名数量统计
业务需求:
现在学校又有一个需求,管理员需要在活动信息报名模块,展示每一个活动报名了多少人,从而无需再手动计算。
需求分析:
根据分析可以分为三个部分:第一部分是在用户报名时增加数量;第二部分用户取消报名时减少数量;第三部分将数量信息展示到页面。
项目实现:
1. 首先需要在活动详情(TrainingEvent)的数据模型中追加字段NrOfRegistrations,来记录报名人数。双击Domain Model,然后双击TrainingEvent数据模型,然后点击New来新增字段。在弹出的窗口输入Name名称,数据类型选择Integer,然后点击OK->OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/e2f4be83838e446480baf999c0ebe0ca.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/2ede7ef4ab8d4762ba4b6cddccc01623.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/e464df6d6bf2473abc4f616165c0e492.jpg)
2.需要在报名人员新增和删除的时候去更新TrainingEvent数据模型中的NrOfRegistrations数量字段。双击报名人员Registration数据模型,然后找到Event Handlers,点击New按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/5f5d855a353e453e8ae933b2f76aa5a2.jpg)
3.要求的逻辑是表单提交以后更新,所以Moment选择After(After是在操作之后,Before是操作之前),Event事件我们选择Commit(Create是创建事件、Commit是表单提交事件、Delect是删除事件、Rollbock是数据回滚事件),然后选择Select按钮选择Microflow微流。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/0bc9c1705b8144b8a029c9f36ee1eb31.jpg)
4.此时还没有Microflow微流,所以新创建一个。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/0a2b2d2a96e34a9791edb81d45399d98.jpg)
5.在弹出的页面输入微流的名称ACO_Ade_Registration_SetNubOfRegi(命名规范),然后点击OK->OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/bdf9976d31d047cea99427de91158233.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/26dc39ec9a0c4eb388106e868fae6861.jpg)
6.然后点击New,再创建一个数据删除更新的触发器。Moment选择After,Event事件选择Delect。然后点击Select按钮选择刚才创建的微流ACO_Ade_Registration_SetNubOfRegi,接着选择Select按钮完成选择。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ed4696d9202346f4bfd90f862bfc4f8e.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/1eeb3cbe34e84a178452672b7e24e3ba.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/2b7fc3443c6d45dda93ed5f70ab4c6ac.jpg)
7.然后点击OK-OK按钮完成创建。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/1ec1dc8cb99a4f1fbe65b9c5847d1aab.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/997ebc82e2e24fcda91114d2287429f0.jpg)
8.创建好后,在目录树上双击打开创建的Microflow微流ACO_Ade_Registration_SetNubOfRegi文件,然后拖入一个Activity事件。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/19ae6aff7d874a6bbeb9ad842419b250.jpg)
9.然后选择Retrieve(最终目的是更改活动TrainingEvent数据模型中的NrOfRegistrations数量字段,所以需要获取到TrainingEvent数据模型),该类型就是获取缓存或数据库中的数据,然后点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/0e67bfa84bf64573926541ac3c235aa2.jpg)
10.在弹出的窗口Source选择By association(By association是从系统内存中获取数据,From database是从数据库中获取数据),因为系统运行时会将数据模型中的数据加载到内存中,所以可以直接从内存中获取数据,然后点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/4cddb41756ce4807a49f3bc7fe0da053.jpg)
11.选择报名人员Registration数据模型相关联的报名活动TrainingEvent数据模型,选择Select按钮,然后点击OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/b325c41d488343ccb8dc7d0520f97c0d.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/9b65d4fe60a642538d4e09f51089b4dc.jpg)
12.然后拖入一个Activity选择相同的Retrieve事件用来获取数据库中的报名人员的所有信息。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/e5854762419549d7976bfbb805153054.jpg)
13.选择From database从数据库中获取数据,再点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/fa12b337ab7145c4a25f422e132255e7.jpg)
14.然后选择与TrainingEvent活动详情相关联的报名人员Registration数据模型,点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/88d6506cd44d4b9ea4cf905b21ae6bf8.jpg)
15.然后点击OK按钮完成创建。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/76a5f0a01c9c4798a04fc2f290e5bcae.jpg)
16.再拖入一个事件,用于统计刚才获取的所有报名人员。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/442aadea3ee74b7aac04c39c7a0c99af.jpg)
17.因为获取到的是一个list,所以双击Activity事件选择Aggregate list,对List进行操作。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/07a1693a12934389a3fef75bc0b6c77c.jpg)
18.选择刚才获取的报名信息RegistrationList数据,然后再Function中选择Count求和操作。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/dffb395bec5642669403b016578b5ddc.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/56586ef300824b8aabd36fecf204c923.jpg)
19.然后将Output 输出的Variable name参数改为number,点击OK按钮,完成操作。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/b6ba37ae2db44ef4991a2b27933a33b7.jpg)
20.将统计的信息更新到数据库中,所以需要再创建一个Activity事件并双击,然后在弹出的窗口选择Change object 更改数据事件,点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/e2bab29dde3f4b43b51f0ddd3a2fc13e.jpg)
21.然后在弹出的页面选择第一步获取的TrainingEvent活动数据模型。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/2e4cada5079e4af79c720bb5ebe181a9.jpg)
22.点击New,编写规则。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ddbf047c1c0d4fabb205d49408d331d2.jpg)
23.选择需要修改的字段NrOfRegistrations。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/18733b91ce46446480f43c15eae1e35f.jpg)
24.然后Type选择Set,在输入框中打出$会自动带出微流的一些信息,其中number是刚才获取的所有用户的数量。选择number,选择好点击OK->OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/639790b8bfbb4f1a8e83d77dbd0c8362.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/f7c18bf45e964499956a173d73e75860.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/071d447f65aa4c59a7ab913d0793e7ab.jpg)
25.基本逻辑创建好以后,现在需要在页面上展示出人员。首先打开活动列表TrainingEvent_Overview(双击打开),然后在右侧区域Toolbox的Widgets搜索text文本框,将其拖入到页面中,双击拖入的文本框。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/606f41a8b04f40639e361c0becdb0a91.jpg)
26.在弹出的页面点击Edit按钮,选择New按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/b857478e2a2448c9915b9ddeea8b4d22.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/6c7c4b61cfe74ede9f7dcd11756fcbbb.jpg)
27.然后点击Select按钮,选择需要展示的字段NrOfRegistrations人员数量信息,点击Select按钮完成选择。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/cdf98cd7309b447d814d756abae1e269.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/849f7ff1ab2f4723a7bdfc3b8c3a4ddf.jpg)
28.然后点击OK按钮,在Caption上填写需要展示的信息:动态展示{1}。点击OK->OK按钮,完成操作。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/7b59f2dda21b4efd9452b09fd5c89ee6.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/271d4ae1e8f245ec836e9a259f364c42.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/bf26d2a63f2f4c329d9bd5bf0174e913.jpg)
29.运行项目看一下效果,成功!
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/3eb1a3d686484cdc89a6b1b811170284.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/d8151ef23ce04007a1ef5ef33aa4c980.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/493559a6667846458305352764389bd0.jpg)
结束日期统计
业务需求:
现在学校又有一个需求,因为活动报名人员每次都需要自己填写结束日期,这个体验感实在不好。
需求分析:
可以在用户报名时选择课程信息(包含培训天数)和选择开始日期后,触发微流,但需要微流执行什么动作
呢?就是让它将开始日期自动加上培训天数得出结束日期,然后返回到页面。
项目实现:
1.首先双击目录树中的TrainingEvent_NewEdit(活动新增)页面,然后双击课程框(Courses),在弹出的页面选择On change事件为Call a microflow ,触发微流事件。在弹出的页面选择New按钮,重新创建一个Microflow微流。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/d05b7193510047c2b077b074fb5841ef.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/17f912d3f1314f22a32722cfb47f7f6b.jpg)
2.在弹出的页面输入Microflow微流名称OCH_TrainingEvent_CalculateEn(命名规范),然后点击OK->OK按钮,完成新建。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/3d918bd333f54ea999e29dcc33cacb2a.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/b6825f77ae2f4017b93056cb5771deb4.jpg)
3.创建完毕后,双击目录树中刚创建的Microflow微流OCH_TrainingEvent_CalculateEn,然后在工作台拖入一个Activity事件,双击,选择Retrieve事件(用来获取课程信息中的培训时间以便最后的计算)。在弹出的页面选择By association(从内存中获取),点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/3a3f68e1536d4304812440cacc292dc6.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/166f79cb24c74634a7c210394c6085b3.jpg)
4.在弹出的页面选择与活动关联的课程信息(Courses)数据模型,然后点击Select->OK按钮,完成选择。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ae7974c6d9e247beb46ba92cdd54e4de.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/6dbeac29f2c1444da46b0425a855edf5.jpg)
5. 继续拖入一个Activity事件,用来更改计算后的endDate(结束时间),双击拖入的Activity事件。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/b34ea9e5db644583bfb1b5f2a6d837be.jpg)
6. 选择Change Object 事件,然后点击Select按钮,完成事件选择。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/1633c79c23874a44a90029e014673b28.jpg)
7.在弹出的页面选择Object为TrainingEvent(活动),用来改活动里的endDate(结束时间),然后点击New按钮(新建规则)。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/cd463ccd8e2b4d6ab6edc3ac81dde8ce.jpg)
8.首先选择要修改的活动endDate(结束日期)。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/8616a3ed54da40e29dda4aaae8f6ce74.jpg)
9.在Value里编写规则,首先用到的函数是addDays(追加时间),然们输入函数,在标识2先获取到活动的开始日期,然后在标识3选择活动所需天数,系统就可以自动追加天数了。然后点击OK->OK按钮,完成对规则的编写。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/757d22afa555477f95166bd7a513cc8d.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/e0cd47f1362d452082bbad425ebf3bf3.jpg)
10.同理,在开始时间选择时需要调用微流,双击目录树的TrainingEvent_NewEdit新增页面,然后双击start date开始日期,在弹出的页面选择Events事件的On change事件为Call a microflow。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/b58e449243c84ec3968ab07826589677.jpg)
11.然后选择我们刚才创建的微流 OCH_TrainingEvent_CalculateEn,点击Select->OK按钮,完成该部分的设计。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/e36a1ff8a97342958a3b3b8ddb235ae9.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/fdbf9a1fbce44c9f9e1021508179c0e1.jpg)
12.运行项目,看到结束日期可以自动算出来啦。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/f366f951c540454ba32bdc499fe0aa34.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/a07843f484794757b42ac1348fba4bf0.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/7346b7bf9eb4497e92a591d332d499fb.jpg)
13.虽然实现了效果,但是总会有一个提示弹框(出现错误,请与系统管理员联系)。这时需要DeBug进行问题跟踪,后续会详细介绍。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/c0fbe33c93084d249822b3b9ffd5a23c.jpg)
14. 问题跟踪完成以后,做一个非空的处理逻辑,双击微流,然后拖入一个判断分支,并双击打开它。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/14eb6edb06d6455fa11cb203031bc83e.jpg)
15. 然后在Expression 中判断逻辑,输入**$选择TrainingEvent(活动数据类型),然后输入/**选择startDate,不等于!= empty。判断逻辑做好以后,在Caption起一个有意义的名称,如startDate not empty,然后点击OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/4241d4326c5843dab0cf48856feb9817.jpg)
16.这时候工作台报了两个错误,是因为需要提供分支判断结束以后的走向。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/c8bfadcb67314f40a9b2cd62fc02f8b6.jpg)
17.双击下图中红框内容,然后选择判断为true的走向为继续执行(不等于空的时候继续执行),然后点击OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/d3afeb3e12fb44af9124c8f798f22d63.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/d6732bd4375d406db4dcc72ef34dd197.jpg)
18.另外一个错误,需要判断为false的时候给与一个走向(如果等于空就结束)。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/5dd96ab85fe448e693fb25f17283345c.jpg)
19.然后按照下图所示,鼠标左键,直接拉。拉好适当位置以后松开,选择事件,选择End event(结束事件)。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/8be661a388de473892c70359a2885053.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/1ee933e6e0d54daabed73bb38e99a698.jpg)
20.同理,判断一下课程中所需时长为空也不触发计算的逻辑。这里就不作演示,跟上述步骤一致。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/dbbab9a516d44439ac85caed06e9d4a2.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ae109a24e682480c863cc54856179161.jpg)
21.设置完逻辑以后,点击保存运行,报错提示框就不会再显示了。
举例3(用微流做表单验证)
业务需求:
现在管理员觉得新增活动时,空的数据为什么会保存,需要修改为空的数据程序不保存并且提示错误信息。
需求分析:
在活动新建提交保存的时候,触发微流让微流做非空的判断,然后阻止表单提交。
项目实现:
1.双击TrainingEvent_NewEdit活动新增页面,然后双击Save按钮,在弹出的窗口On click 选择Call a microflow,创建一个微流。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/c343471fa40e48ea8ae9476c17597676.jpg)
2.选择New新建一个微流,在弹出框中输入微流名称ACT_TrainingEvent_Save(命名规范),然后点击OK-OK按钮,完成创建。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/5fd42ce252c04e35a998f224631b2b71.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/442b5e88bc1c4c49bd1bfcb3aa8064e5.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/701e699d77a94525a9cf6eba3bb3305a.jpg)
3.在目录树中双击刚创建的微流ACT_TrainingEvent_Save,然后拖入一个判断分支,然后双击打开,首先需要判断课程不为空,然后点击OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/8f38bac3a8844c1eae1d1565cf8d3680.jpg)
4.设置好判断分支后,接着需要设置流向,双击下图红色区域,选择True,然后选择OK按钮,不为空时继续执行。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/089d024e45f647c5858c47acfba2dda2.jpg)
5.在为空的时候,因为需要在输入框显示验证的信息,所以再拖入一个Activity事件,选择Client(客户端)的Validation feedback(验证模块)来进行验证,选择好以后点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ee4c877974f44b56882e2ceac358582a.jpg)
6.然后在弹出的页面中,选择TrainingEvent(活动数据模型)。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ce585f38195e438ea46753eba4e4a0e3.jpg)
7.然后选择课程文本框。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/d0cf996c21b74a45a552b6e798d413c7.jpg)
8.在Template中输入需要提示的信息,然后点击OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/9266f9681a324b219d4d3f27168fada9.jpg)
9.这时需要再拉一个走向结束的节点,判断流向为false并拉向刚创建的提示文本,然后提示完以后走向就结束。按住鼠标左键拉动,松开以后选择End event节点。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/707d4605e66a4d76aa32b9762053c35c.jpg)
11.时间非空处理
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/6a0010bf0e6843b4831f3e351ca9dae4.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/5c5a7a3abbde45adb0ab5a175d6d0f4d.jpg)
12.老师非空处理
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/e307cbd49d754e2c8d15bb37786f4be1.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/4f703ef6a2124f90b532cbad481e119f.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/d27ca6c7ccce433b9d3ba5ada8f471e4.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/71b948b90b8344d9977c716effb83675.jpg)
14.整体非空处理完成以后的走向图如下方展示:
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/434dac5f58194e8da5cfce6b58220b65.jpg)
15.非空判断以后,需要模拟表单的提交操作,所以拖入一个Activity事件,双击选择Commit object(表单提交组件),然后选择Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/70763435676642908441b145af5b92b3.jpg)
16.在Object or List选择提交的模型为TrainingEvent。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/b396bb8cb64641e6b90c0b57b29671b9.jpg)
17.勾选Refresh in client为Yes(在客户端刷新),然后点击OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/64ebf943fb8f4dbd94833c7767e7f3fe.jpg)
18.表单提交以后,模拟客户端关闭页面的动作,重新拖入一个Activity事件,双击选择Close page即可。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/4744c9fff519473680a02d3868b5c305.jpg)
19.运行项目,可以发现是一条一条地进行验证,而不是全部触发校验。(文本框提示过高,可以在输入验证信息的文本框中,将验证信息剪切出来,然后删除多余的空格以后保存,然后再次打开复制进去就可解决问题)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/32ec58687b1242889f9f19142852c90d.jpg)
20.现在触发全部表单验证,首先拖入一个分支合并节点Merge到工作台中。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/98e176605bf24fd7805c979bec282cc1.jpg)
21.然后删除结束节点,将验证失败以后的流向,指到刚才拖入的分支里。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/fd9b594ac1f04e2da31c9b0d3abc9c50.jpg)
22.依次将其余的验证失败分支进行同样的处理。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/a24f05788c5348bea1c7ba8f1d0140cb.jpg)
23.然后保存,运行项目,再次验证一下效果。
24.显示触发全部字段的验证并展示了错误信息以后,程序接着又保存数据了,可见这里的逻辑有问题。所以在程序验证前加一个标记,每次验证的时候触发这个标记,最后提交的时候判断该标记是否可以提交。
25.首先拖入一个Activity时间,选择Ctreate variable(创建一个临时变量),然后点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/119f256a40094eda8518be7ccdc029f8.jpg)
26.因为只需要做判断,所以选择Boolean类型。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/1bcef5a206bb4a88ba78d74706a1f773.jpg)
27.默认设置为true后提交,修改Variable name变量名称为isCommit(能否提交),点击OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/cb87471b533c432595f88dce2f1f2638.jpg)
28.设置完变量以后,要在非空判断为空的情况下追加Activity,从而改变变量。拉入一个Activity事件,选择Change variable(改变临时变量),点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/e67275e1fa9740d087cc32fad9bb2441.jpg)
29.将isCommit 修改为false ,点击OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/c30de973f9ed4a2d90e546aaa1f598c0.jpg)
30.同样的将其余的分支将isCommit修改为false,修改后的效果如下展示:
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/101e8293e40249b083200b20165010a3.jpg)
31.接着在最后的判断节点上追加条件分支,用于判断isCommit是否可以提交。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/31d3658d08ea4d8b83c15b0c9549906f.jpg)
32.验证效果:可以提交的话就继续执行,如果不可以提交则结束。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/5232bdb251f444bf99a2b09c28273770.jpg)
33.保存项目后运行一下,可见已实现该效果。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/49ad1fdb3b1c4812be94c35da1874623.jpg)
02
DeBug问题跟踪
01
工具介绍
1.将Debugger菜单调整出来,点击菜单栏View,找到Debug Windows(问题跟踪窗口),然后点击Debugger(跟踪栏)和Variables(参数)。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/cf84755f8e2448169740e577555ddc57.jpg)
2.这时可以在控制台中查看到Debugger(跟踪栏)和Variables(参数)两个选项栏。当调试微流时,“Debugger”窗格会很有用,因为它起帮忙引导完成微流的操作。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/3216e597745f4ff2b564ae29ff7ed49a.jpg)
3.“Variables”窗格显示了微流中涉及的变量,对象和列表,以及在通过“调试器”窗格逐步通过微流时,它们会做如何更改。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/cfa7acdc59e747fea1ff5ec484c87198.jpg)
02
问题查找
1.对工具有所了解以后,可以开始问题查找。首先,需要在微流中打上一个断点,双击目录树上的OCH_TrainingEvent_CalculateEn微流组件,在第一步鼠标右击,选择 Add breakpoint,增加断点。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/609532fdb8a24bb8baf826b0018b8c75.jpg)
2.然后运行项目,运行刚才的程序。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/a310d9851324421c9fea0a7a12fcc458.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/dfe9d34b38ef41fc922ece71173703cb.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/79bcc6b56d7c4aa3a6ddc4ecb8f0ff2b.jpg)
3.在桌面的导航栏中Mendix开发工具会有闪烁,证明刚才打的Debuger起作用了,接着打开开发工具。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/d180080a770a41838dd038e3cead9f98.jpg)
4.此时看到Debugger跟踪框中,会有一个跟踪的问题。点击Step out先让其结束运行,并查看控制台Console如何报错。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/d47897bcfa0b4fd69f3be18c279aea51.jpg)
5.Connector是程序后端的错误,Client是前端的报错信息。双击点开Connector的错误,查看报错内容。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/74eb446266264fab88fbe8145b93097c.jpg)
6.可以看到addDays运算出错,但之前这个运算是成功的,有没有可能是计算空数据报的错误呢。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/bf5ca2941af64a7fa13a3717064a6c8b.jpg)
7.然再运行一遍,点开“Variables”窗口,可以看到TrainingEvent(活动)数据模型中的startDate(开始时间)是empty空的数据。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/f1c3b04e3fcf41bb9a6b11af5dffa80c.jpg)
8.经过问题跟踪,可以得知addDays在计算空的数据时会报错。因此,需要在计算前做一下非空的处理。
03
数据嵌套
01
需求分析
现在学校有一需求,就是在活动列表中需要有一个学生报名的页面。页面上方需要展现活动详情,旁边要有一个新增按钮,可以新增报名人员。页面下方有一个列表页,展示已经录入的报名信息。
02
项目实现
*创建数据模型
1.新建一个报名人数数据模型,双击目录树中的Domain Mode,然后点击导航菜单Entity,将数据模型Entity拖入到工作台,双击打开。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/2068f531ef014384b6ef0388774ffa40.jpg)
2.在新弹出的页面修改Name属性为Registration,然后点击New增加属性。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/7c3125bb5501428cbff3654f0fedc7c3.jpg)
3.罗列一些需加的属性,这里就不再作演示,可以参考【Mendix敏捷开发零基础学习《一》】。
报名人员Registration:
属性 |
备注 |
类型 |
Number |
数量 |
AutoNumber |
Attended |
是否报名 |
Boolean (需要将Default value单选框改为False,默认未报名) |
加法运算 |
报名时间 |
Date and time (需要将Default value改为[%CurrentDateTime%],系统默认时间) |
*配置模型关系
报名人员Registration数据模型创建好以后,需要与Trainee(学生)和TrainingEvent(活动)进行关联,如图所示,直接拉两条线即可。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/d52302af34884987a1fadb3538fc61fd.jpg)
*报名新增
1.接下来需要在活动列表中,增加一个按钮,用来跳转所说的页面。双击目录树中的活动列表TrainingEvent_Overview页面,然后在右侧区域搜索button,拖入一个空白button,然后双击。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/2ea76b413dcb492b89756ec27e108b1e.jpg)
2.在弹出的窗口修改按钮Caption的名称为报名,接着On click下拉框选择Show a page(展示一个页面),在弹出的页面选择New按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/26053141d86d4919adce2cb23f730da2.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/9b0aef66c61b4f5da795295a318ad0bf.jpg)
3.在新弹出的窗口中,选择Blank空白模版,Page name是系统默认给生成的名字,不需要修改,Navigation layout 选择Atlas Default方式。然后点击OK->OK按钮,完成页面创建。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/2817d533327443af9cf3c5ec6db3453a.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/7603379160e24c5cafea7afbd3db6f29.jpg)
*页面模型
1.在目录树双击刚才创建的空白页面TrainingEvent_View,然后选择菜单栏中的Data view拖入到页面中。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/a6d059c57603499bbe51a08a9c4fa39c.jpg)
2.然后在拖入的Data view上右击,选择Select data source。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/46ba99517d2f4d1d826b798300b8f55a.jpg)
3.在弹出的页面选择Select,然后在弹出的页面上选择TrainingEvent活动数据源,点击Select->OK按钮,并选择NO按钮(不自适应)。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/cc092524105c4de0991e8312d94844d4.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/cb0ece88a15147ffaa1a1ff1e3881d3c.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/0f1e5460b0ec417e85158e1f5745c081.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/b0dc6ee7a91845698abacc2cc897eb5a.jpg)
4.为了美观,双击Data view数据表格,将Show footer改为No,然后点击OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/f7f82037f5ba49d0914d627f93218b82.jpg)
*页面详情
1.在右侧区域Toolbox的Building blocks搜索Pageheader Controls将其拖入到Data view数据表格中。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/1cf077e2dd034c00a36451e654d00bcf.jpg)
2.双击Title展示课程的标题,在弹出的页面点击Edit按钮,然后点击New按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/355910b7f47545b9a393b999a31648eb.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/993ff214195a49b6a75c1ff4daca3f66.jpg)
3.选择Select,在弹出的窗口选择课程的标题Title属性,然后点击Select->OK按钮。接着,将序号为{1}的数据进行回显,按照下图修改Caption为{1}即可,然后点击OK->OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/119f49c5f48b4d4d9ea397f0c6293352.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/38e452461eea49cda79a953e76e19bb6.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ea7ad6cbda18407498f34acc4cb4d3dc.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ede8947897d44fa3b3e1fa0f384d2487.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/df1a307275d44e61a2db7874dc82bbc2.jpg)
4.将其余没用的删除掉(选中以后按Delete键),最终效果如下图。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/41d9d48b281249508057379ae4b91fbf.jpg)
*页面列表
1.在下图圆圈中右击,然后选择Insert row below,选择Full一列,增加一列。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/76cdf0cdf8624caf9ab65ca7d3311bff.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/c1885cc2ab0f42539f4f75b49ccd3fe9.jpg)
2.在右侧区域Toolbox的Building blocks搜索list,找到list2,将其拖入到新增的那一列中。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/e673c198ada14739a58be72f21bb9bee.jpg)
3.在刚拖入的List中鼠标右击(下图红框内)点击 data source选择数据源,在弹出的窗口选择Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/089ed09bd92f405a85f2902a1906f0b3.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/487fd277ef044d3c806ab09d22b2adb8.jpg)
4.选择与TrainingEvent(活动信息)相关联的Registration(报名人员),然后点击Select->OK按钮完成选择。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/5744efad9b584b1ba75706efd5cdd995.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/24977aefab714c11bfbba32d29c74e0c.jpg)
5.接下来将页面上的元素进行数据绑定,双击Name,在弹出窗口选择Edit。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/355910b7f47545b9a393b999a31648eb.jpg)
6.在弹出的窗口选择New按钮,然后再选择Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/993ff214195a49b6a75c1ff4daca3f66.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/119f49c5f48b4d4d9ea397f0c6293352.jpg)
7.在弹出的窗口选择Registration_Trainee中的Name报名人员,然后点击Select->OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/38e452461eea49cda79a953e76e19bb6.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ea7ad6cbda18407498f34acc4cb4d3dc.jpg)
8.将序号为{1}的数据进行回显,按照下图修改Caption为{1}即可,然后点击OK->OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/ede8947897d44fa3b3e1fa0f384d2487.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/a923832859934f5e823055a0d4aee4f8.jpg)
*列表新增
1.完成以上步骤后,就实现了页面渲染(这里只回显了一个字段,可以多回显几个字段),接下来新增报名人员。双击Add按钮,在弹出的页面On click下拉框中选择Create object选项。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/da91c26d7f064dd0a792035f8ae9a92e.jpg)
2.选择Select按钮,在弹出的页面选择与TrainingEvent(活动信息)的Registration(报名人员),然后点击Select按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/84bd067ee06a4891809af25f96e7514f.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/5744efad9b584b1ba75706efd5cdd995.jpg)
3.选择Select按钮,在弹出窗口选择New。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/c26c19ca2044443b8afed6028b5ddf96.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/0bdbcef9abea493c9c1665ded68f3864.jpg)
4.选择Forms的Form Vertical模版,Page name系统会自动创建,所以不需要修改。Navigation layout打开方式选择PopupLayout(弹出),然后点击OK->OK按钮。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/2a1c1afb0d8040418ecb12fc2372e2ee.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/b165dc6a039f497fb3d57a40693e5d85.jpg)
*效果展示
1.运行项目查看效果,先点击TrainingEvent菜单,然后点击报名,最后点击Add按钮进行新增。
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/2ac5563261154f9d95f4b8e8b840c20e.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/448f9194eb1b4059a7e1a85f4c8b0515.jpg)
![知识刷屏:Mendix敏捷开发零基础学习《二》](https://image.cha138.com/20210402/49ea0ab8c1364695a52b591cfef2485d.jpg)
2.点击Save保存按钮后,就能在列表中找到新增的数据。
04
版本管理
版本控制请参考官网:
https://docs.mendix.com/refguide/version-control#1-introduction/
关于Mendix
Mendix,a Siemens business是全球企业级低代码的领导者,正在从根本上重塑数字化企业构建应用的方式。企业可通过Mendix低代码软件快速开发平台来扩展自身的开发能力,打破软件开发的瓶颈。借助Mendix开发平台,企业可以打造具备智能、主动性和人机互动等原生体验的智能化应用,对核心系统进行现代化升级并实现规模化应用开发,以跟上业务增长的速度。Mendix低代码软件快速开发平台可在保持最高安全、质量和治理标准的前提下,促进业务与IT团队之间的密切合作,大大缩短应用开发周期,帮助企业自信迈向数字化未来。Mendix的“Go Make It”平台已被全球4000多家领先公司采用。
以上是关于知识刷屏:Mendix敏捷开发零基础学习《二》的主要内容,如果未能解决你的问题,请参考以下文章
零基础学习WEB前端开发:HTML第一部分基础知识的综合案例
借助Mendix打造敏捷开发和移动端应用的数字化维修服务平台
Windows OpenGL ES 图像 GPUImageLookupFilter