D365入门: 一行代码不用建一个用户维护模块 ...

时间:2024-03-24 13:00:04

目标: 熟悉D365开发环境, 进行简单的二次开发, 建新表, 建新FORM, 完成CRUD操作.

D365开发环境已设好, 开发硬件是一台12核服务器, 但硬件要求还是远远不够, 没听错, 是远远不够的.

远程登入,打开vs2015, 里面已经安装了d365的开发插件, 按Ctrl-E调出Application管理器:

D365入门: 一行代码不用建一个用户维护模块 ...

首先, new project新建一个project dgmislrh2,项目类型选择Unified Operations.

D365入门: 一行代码不用建一个用户维护模块 ...

生成project后, 再右键此project,选择properties,修改下列两处, 一个是Model, 将其改为公司应用层面的Model, 将Synchronize Databases on Build设为true (这个非常必要).

D365入门: 一行代码不用建一个用户维护模块 ...

 

再用New item -> Table来创建table ta_user:

D365入门: 一行代码不用建一个用户维护模块 ...

再打开ta_user这个表, 为Fields增加字段, 增加字段有多种方式, 可以手动增加然后每个字段设定宽度label这些, 也可以从预先定义好的DataType里面选中datatype,再拖到Fields里面,再改字段的名称. 又或者自已新建一个datatype ,再拖进来 .

D365入门: 一行代码不用建一个用户维护模块 ...

 

如何字段定义为下拉框选择,该如何做? 比如fa_role。先定义一个Base Enum:

D365入门: 一行代码不用建一个用户维护模块 ...

为这个enum增加三个item

D365入门: 一行代码不用建一个用户维护模块 ...

完毕后,将其拖到ta_user的fields里面,并改名为fa_role.

再增加一个字段fa_country,下拉框选择,来自另一个table。首先,先增加这个Fa_country,string(20)。然后增加relate table:

D365入门: 一行代码不用建一个用户维护模块 ...

然后选了另一个table AEL_ParameterTable,并将此relation改名为AEL_ParameterTable. 完毕后,再选中AEL_ParameterTable 右键选择New->Normal以增加一个关联条件:

D365入门: 一行代码不用建一个用户维护模块 ...

在属性里面改为如下,也就是ta_user.fa_country=AEL_ParameterTable.Code了,意思是说,fa_country下拉的数据来自AEL_ParameterTable.Code

D365入门: 一行代码不用建一个用户维护模块 ...D365入门: 一行代码不用建一个用户维护模块 ...

又因为AEL_ParameterTable不止是Country的数据,还有其他杂儿杂八的记录, 所以还需要增加一个固定参数的过滤,只显示country的记录:

   在上图中选择new->Field fixed, 然后属性改为如下, 也就是增加一个filter:Type必须为Country:

D365入门: 一行代码不用建一个用户维护模块 ...D365入门: 一行代码不用建一个用户维护模块 ...

再增加一个unique index,再将ta_user的primary index设为这个:

D365入门: 一行代码不用建一个用户维护模块 ...    D365入门: 一行代码不用建一个用户维护模块 ...

至此, Ta_table已定义完毕。

接下来, 需要新建FORM , 

D365入门: 一行代码不用建一个用户维护模块 ...

打开此form,然后apply pattern为simple list,然后依次:

  1. 将ta_user拖到此form的datasource里面
  2. 选中Design ...建立action pane
  3. 新建Group
  4. 新建Grid,将datasource里面的字段拖到grid里面

D365入门: 一行代码不用建一个用户维护模块 ...

    5.点击第2点的Group,再new QuickFilter,再点击QuickFilterControl1,将属性里面这几个item设置好。

D365入门: 一行代码不用建一个用户维护模块 ...

D365入门: 一行代码不用建一个用户维护模块 ...

 

IDE的下面区域有preview:

D365入门: 一行代码不用建一个用户维护模块 ...

 

至此, FORM也设计完毕。

接着需要为这个FORM增加一个启动菜单:

D365入门: 一行代码不用建一个用户维护模块 ...

然后修改Label和Object, Label很多地方都需要设置,因为篇幅原因就没细说,而且正规来说, 不应该直接输入内容,而是将其放在resource file里面,在这里引用label key的。

D365入门: 一行代码不用建一个用户维护模块 ...

启动菜单定义好,我们需要将其加到主菜单里面,比如想加到这个菜单组里

D365入门: 一行代码不用建一个用户维护模块 ...

那么,需要在aot里面搜索, 找到ProductInformationManagent,再右键选择create extension建立一个新的扩展ProductInformationManagement.dgmislrh_Extension:

D365入门: 一行代码不用建一个用户维护模块 ...D365入门: 一行代码不用建一个用户维护模块 ...

打开新扩展,新建一个sub menu  ael_modification, 然后将project里面的mn_dgmislrh_ta拖至此sub menu里面即可:

D365入门: 一行代码不用建一个用户维护模块 ...

D365入门: 一行代码不用建一个用户维护模块 ...

 

 

完毕后, 点选project,右键点击Build,然后耐心等吧,2分钟后编译完毕。

然后打开浏览器,发现菜单已成功安装,点击进入:

D365入门: 一行代码不用建一个用户维护模块 ...

 

D365入门: 一行代码不用建一个用户维护模块 ...

 

========

完毕。