比如“客户”模块页面上的“客户跟进”子表,以及“项目管理”模块界面上的甘特图其实都是单据子表。当然甘特图比较特殊一下,我们后面会单独进行介绍。
我们的单据子表包括两类:只读子表,可编辑子表
只读子表:不能直接编辑子表上的单元格的值,只读子表下方会提供一个带有新增,刷新,导出等按钮的工具条,双击子表的记录会打开一个新的页面显示子单据的内容,所以只读子表需要先增加子单据模块才能在主单据上增加子单据列表;
可编辑子表:可编辑子表可以直接编辑单元格的内容,可编辑子表没有提供工具条,所以可编辑子表不需要先增加子单据列表。
增加只读子表
下面我们在“客户”模块上增加一个“客户跟进”只读子表,要增加一个只读子表,必须先增加一个子单据(比如B单据引用了A单据上的某个字段,那么B单据就自动成为A单据的子单据,所以一个单据如果引用了多个单据的字段则他就会成为这些单据的子单据,比如“客户跟进”引用了“客户”上的客户名称字段,那么客户跟进就自动成为了客户的子单据)
1、先增加一个“客户跟进”表单(过程略):“客户跟进”表单必须引用了“客户”表单的字段,这样才能使得客户跟进自动成为客户表单的子表,这里引用了客户表单的客户名称字段,如下图:
2、打开开发平台,打开“客户”模块设计界面,选中设计窗口后,可以如下图调整客户模块大一些
3、从工具箱中拖入一个标签并设置文本为“客户跟进”,再拖入一个“只读子表”并调整大小和位置使其看上去整洁美观,然后设置只读子表的别名为“客户跟进”,点击“所属单据”属性后面的按钮
4、弹出“选中下级单据”窗口,下面有两个子单据可供选择(客户跟进,项目管理,因为这两个单据模块都引用了客户模块的客户名称字段,所以自动成为客户模块的子单据),选中客户跟进,并确定。
5、设置了“所属单据”以后,然后点击“列设置”属性后面的按钮
6、在弹出的“设置子单据列表字段”窗口中,按照我们需要的列顺序依次勾选左边树中的字段,然后“确定”
7、我们的只读子表就添加完成了,非常简单。
增加可编辑子表
由于可编辑子表不需要增加子单据,所以与只读子表有一定的区别,假设我们给客户增加一个联系人列表
1、打开开发平台,打开“客户”表单并调整窗口的大小,并调整下前面增加的“客户跟进”列表的位置,然后从左边工具箱中拖入一个标签并设置文本为“客户联系人”,然后拖入一个“可编辑子表”并设置属性:
别名:联系人,别名发布后自动在Web客户端中显示为子表前面的标签名;
子单据ID:CustomerContact, 只读子表也是单据,只不过是没有实际单据体的单据,所以也需要一个唯一的“单据ID”;
数据库表:tb_CustomerContact, 只读子表也是单据,也需要存储在数据库表中,所以需要指定数据库表;
设置好上面三个基本属性后,点击“列设置”后面的按钮,就可以设置子表中需要哪些列了。
2、在弹出的“设置子单据列表字段”窗口中,如下图我们可以定义子单据的列,比如“联系人姓名”是文本类型,那么我们就选择“自定义列类型”为文本列,并添加
3、添加后点击新增加的列,并设置“列标题”和数据库字段名
4、联系人性别为下拉选项,所以我们增加一列下拉框列,设置列标题为性别,数据库字段为__Sex__,下拉列表项为男,女(中间回车分隔)
5、依次增加职位,电话,邮箱列,分别设置好他们的列标题和数据库字段
6、添加好所需要的列以后,确定,我们就增加好联系人可编辑子表了
7、发布后,我们可以在客户信息中增加联系人了,我们发现,联系人子表是可以直接在上面进行编辑的。
附:
如果可编辑子表中也引用了其他单据字段,如下图,假设“项目名称”和“项目编号”两列需要引用“保险项目”表单上的对应字段,以实现录入这个子表的时候可以直接选择保险项目,那么我们就可以选择引用了。
第一步:先在下图左上角的下拉列表中选择本子表希望引用的表单;
第二步:勾选要引用的字段,比如我们这里勾选了项目名称”和“项目编号”两个字段;
第三步:比如我们希望引用的“项目名称”列在客户端中有个按钮能够选择引用数据,则设置“选择引用数据”属性为True;
引用字段和前面增加的“文本列”“下拉列表列”等等普通字段是不一样的,引用字段不可编辑,引用自动的值来源于所引用的表单。
如上图“输入选择引用数据”属性如果设置为True,那么表示这一列是可以直接输入查询并选择的,输入后将会自动根据输入的值查询出可供选择的引用数据列表。如果没有设置“输入选择引用数据”,则就只能通过点击单元格后面的按钮选择引用数据了。