1、金蝶BOS平台开发笔记一、 入门篇。新建、修改一个主从表1. 建主表 第一步,在业务建模视图下,新建业务单元。我们新建一个名为 MainChild_Demo的单元,别名起为“主从表演示”。 点击下一步,创建方式选择“直接新建”,完毕。生成的主表如下图:系统自动创建了4个编辑字段(另有一些字段未在本界面显示,在此不做详述。)2. 新增单据体。仍然在业务视图下,在生成的“主从表演示”界面上右键,选择“单据信息”,点击“新增单据体”。新增的单据体即是从表。3. 字段管理在界面上右键选择“字段管理”,弹出字段管理界面。 新增主表字段:在左侧选择“主从表演示”,然后点击“新增字段”即可增长主表字段。我们
2、新增一个“mainfield1”,字段描述“主表字段1”。如下图: 新增从表字段:在左侧选择“第一个表体”,然后点击“新增字段”即可增长从表字段。我们新增一个“childField1”,字段描述为“从表字段1”,如下图:4. 点击保存5. 查看新建单元所产生的对象:打开业务设计视图。在目录下找到本次新建单元产生的所有对象。见下图中选中部分:各扩展名结尾文献的含义如下:Entity:实体对象。Table:数据表。Query:查询表。Relation:实体关系表。即实体间相应关系。Ruleset:Ui:界面。Bizunit:业务对象。6. 修改实体对象1) 主表实体对象的基本信息:双击打开Main
3、Child_Demo.entity。一方面展示的是实体对象的基本信息,见下图: 父实体对象:是MainChild_Demo实体对象的父类。可以看到,它继承自 com.kingdee.eas.framework.app.Database对象。从这个对象继承过来的对象,拥有数据库编辑方面的功能。 相应表对象:这个是实体相应的物理数据表,可以看到,它相应的是com.kingdee.eas.xuehongtao.demo.app.CT_DEM_MainChild_Demo(蓝色部分是数据表途径,根据每个人新建单元时选择的文献夹不同而不同)。2) 从表实体对象的基本信息双击打开MainChild_Dem
4、oE1.entity,如下图: 父实体对象:MainChild_DemoE1实体对象的父类为com.kingdee.eas.framework.app.BillEntryBase。 相应表对象:从表相应的物理数据表为 com.kingdee.eas.xuehongtao.demo.app.CT_DEM_MainChild_DemoE1。3) 主表实体对象的属性点击下方的页签“属性”,可以打开实体对象的属性页。如下图:展开左侧属性树,可以看到实体的继承层次,及各层次下继承来的属性。黄色钥匙符号的字段为自有属性,蓝色圆球符号的为连接属性。其中E1为我们所建立的连接从表的连接属性,mainfield
5、1是我们建立的主表的自有属性。4) 从表实体对象的属性其中parent属性为从表关联主表的属性,该属性是连接属性。可以看到,在编辑关联属性所相应的字段处,该字段关联主表字段的值为: FParentID。 Childfield1为从表的自有属性。主从表实体对象的关联,就是通过主表的E1字段,和从表的parent字段进行关联的。5) 修改主表实体对象属性字段E1:该字段用于与从表的关联,从“主表实体对象的属性”图可以看出该字段尚未指定在主表中的相应字段。这里我们选择FID字段作为关联从表的字段。7. 查看主从表实体对象关系双击打开 R_MainChild_Demo_MainChild_DemoE1
6、.relation 。该实体关系的类型为:CompositionClientEntity:主表实体对象。SupplierEntity:从表实体对象。多重性:表白了主从表之间是“一对一”、“多对多”、还是“一对多”的关系。这里默认为一对多的关系。8. 测试主从表1) 在客户端创建自己的菜单:在业务视图模式下,在业务单元管理里随便选中一个文献夹,然后点击菜单“方案”-“主菜单管理”:如下图:在弹出的主菜单管理管理界面,可以在根菜单下建立自己的子菜单目录,也可以直接在根菜单下直接建立菜单项。如下图,我们创建了“薛宏涛”目录,并在“薛宏涛”目录下创建了子菜单项“测试”,通过点击浏览按钮,找到刚刚创建的
7、“主从表演示”业务,拟定。2) 运营客户端点击菜单“运营”-“启动客户端”,或者从工具栏直接点击“启动客户端”按钮,运营客户端。3) 测试主从表启动客户端,输入用户名密码,登录成功后,可以看到我们刚刚创建的菜单项:双击“测试”,即弹出主从表的List界面。点击菜单“文献”-“新增”,或者从工具栏点击最左侧的新增按钮,弹出编辑界面,直接在里面就可以输入数据和分录:输入数据保存后,就可以在List界面看到数据记录了。9. 后记通过以上几步操作,我们就实现了最简朴的主从表,不用写一行代码,可以进行简朴地数据录入及列表展示。最后,想要补充说明的一点是:金蝶的SDK都是教你如何在设计视图模式下,从新建实
8、体(entity)-生成物理表(table)-新建实体关系(relation)-新建查询(query)-新建编辑和列表界面(ui),一步步实现以上操作的,作为一名求甚解的合格的程序员(嘿嘿),理论上这么做可以让我们快速地了解整个二次开发平台的原理,可惜的是,金蝶的SDK写得实在太浅显了,并且没能完整地教你如何实现一个业务。本人在学习的时候,也曾试图走一遍设计视图下实现的模式,最终由于对整个平台不够熟悉,再加上金蝶自身的BUG较多、约束较多而流产。所以,假如你是初学,还是先走一遍上面这个例子吧。二、 为按钮控件(KDButton)添加事件假设在ClientInfoListUI界面添加一个按钮kD
9、Button11. 方法1:1) 双击该按钮会生成如下代码(注:不要直接在该处写Java代码,此功能金蝶尚未开发,仅留一个接口): 2) 保存!发布ClientInfoListUI.ui !3) 切换到Java视图,找到相应的Java类,选中该类所在的父节点(本例为Client节点)。刷新!则在抽象类AbstractClientInfoListUI.java中已经生成了按钮的单击事件:4) 在实现类ClientInfoListUI.java中重写该方法即可:2. 方法2:1) 在设计视图下,打开ClientInfoListUI,然后打开大纲视图 2) 在Actions节点上右键,选择,输入类和实例名,完毕!3) 在UI目录下,向下找到kdButton1,选中。 4) 打开属性页,在行为的action项选择刚才新建的action:5) 保存!发布ClientInfoListUI.ui !6) 切换到Java视图,刷新代码!然后就可以在抽象类AbstractClientInfoListUI.java中找到方法定义。7) 最后,在实现类ClientInfoListUI.java中复写该段代码即可。