问题


北京起步科技的BeX5是企业开发与政务开发的高效平台,尽管其提供了大量的学习视频与各种形式的快速入门教程,但是,相比于WeX5(完全开源),要想在短期内迅速掌握BeX5开发还是颇有难度的。其一便是实践开发中许多细节在官方教程中根本没有提供,而论坛中一般都有涉及,无奈只提一二,见不到明确的解答。本文记录的正是本人在开发中遇到的一个问题,即如何在Grid列表组件中显示主键字段的问题。


一个概念对象,默认情况下的主键是fID,且其默认值为guid()。另外,这个默认主键在Grid组件中是无法直接显示的。另一方面,概念的主键是可以修改的。还有一个普遍会使用到的情况是一个概念中可能会有多个主键关系(关系即关系数据库表格中的字段)。根据这些特点,并结合文后论坛文章中的提示,我使用了一种方法可以在前端UI2建模界面的Grid列表组件中显示主键字段。



解决办法


1,我重新定义了概念中的fID,即原来其默认值为guid(),我则把它重新定义为nextSeqString('P','000000')。


2,添加了一个新关系,其其实是上面默认关系名fID的一个副本,名字是fSecondPrimaryKey,并作如下图所示设置:


3,我的需求是这样的(介绍的次序有些颠倒了),我想创建一个一对多的主从关系,并且想在UI界面中更方便编辑从表中的数据。其实我是有多个这样的一对多的关系表格,并且都是主从关系。


上面这多个‘一’是同一个主表,而多个‘从’表是不一样的。这样,当我向多个从表中添加数据时,从表中一般要显示对应于主表中的主键值,但是这个主键值不可能每次都输入。


如果,在主表编辑时让计算机自动按指定规律(如上面定义的那样)生成一次,则向多个从表中添加新记录时在对应字段中自动填充不是很好吗?


你看一下我的截图可能就明白我的意思了,第一个图如下:


Bex5开发技巧之如何在列表中显示主键字段_第1张图片


这里,我单独编辑的主表,使用的正是Grid组件,其中的主表的默认主键fID是不会显示的。于是,我使用了它的一个副本(或者叫代替)——自定义的另一个主键secondPrimaryKey(其显示名称是‘第二个主键’)。


注意:上图1中我使用了‘主键关系’的办法,这样一来,就把fSecondPrimaryKey设置为默认主键fID的副本。另外,当概念中需要联合主键时请参考后面的‘参考资源’中介绍(其实,在许多关系数据库中联合主键的使用也不在少数,并不难理解)。


另外,这个副本主键的默认值设置为自定义的内容,如我重新定义的fID的默认值正是一般不二。


上面的主表维护操作对应的设计时选项如下图所示:



4,下图正是我众多主从界面输入数据中的其中之一(当然这个只是一个测试例子):



如我开始时描述的,我在前面单独创建了主表数据。这样,在类似于上面这种界面下,我在输入从表中数据时,只需要点击一下想对应输入的主表中的某一行,然后在上图下面部分中点击‘添加’,即可以在从表中第一列(即‘主表ID’)中自动输出这个主键值,我只需要输入第二列字段值即可,当再点击下部的添加时,同时第一列(即‘主表ID’)中自动输出这个主键值,我只需要输入第二列字段值......


注:这个图中上部的添加,删除及保存等按钮显然是不需要的,你可以轻易从toolbar组件中去掉它们。



小结


上面的描述介绍了我为什么需要在Grid组件中显示主表主键:我的目的就是在使用同一个主表的多个主从界面下看着(单击一下)主表中的行,即可在从表中输入对应的其他多行(当然,从表中对应的主键值是自动输入的)。不知说清楚了没有,有兴趣的朋友欢迎共同交流。


主要参考资源:


  1. http://bbs.wex5.com/forum.php?mod=viewthread&tid=41360&highlight=%E5%A6%82%E4%BD%95%E6%98%BE%E7%A4%BA%E4%B8%BB%E9%94%AE

  2. http://bbs.wex5.com/forum.php?mod=viewthread&tid=37685

  3. http://bbs.wex5.com/forum.php?mod=viewthread&tid=53161&highlight=%E6%98%BE%E7%A4%BA%E4%B8%BB%E9%94%AE