
## 用户场景
移动端不支持表格展示,对于一些需要表格类型的用户,之前设计器中不存在表格,只能通过动态创建方式去创建表格,但动态创建的方式学习成本很高,实现一个表格必须依赖例子及要与平台进行大量的细节沟通,不直观且会浪费大量时间,为了方便用户使用,故需要增加移动端的表格相关控件。
## 适用版本
金蝶云苍穹V4.0.004及以上
## 功能介绍
#### 数据源
目前移动表格的数据源有两种:
1. 主实体数据源:PC单据、PC基础资料自带的移动表单拥有主数据源
2. 插件数据源:可由插件自定义取数,且在一个移动表格中,不同字段数据源可不一样
移动表格上可以配置数据源类型和选择数据源实体,数据源类型为单据体可以取表单的实体数据源,数据源类型为自定义的则需要通过插件赋值。

#### 移动表格列
目前移动表格支持八种类型的列,分别是**表格文本、表格整数、表格小数、表格日期,表格时间、表格图片、表格金额,表格附件**。

移动表格列通过映射的方式映射到实体数据源对应的列,比如表格文本,字段映射选择的是单据体的基础资料列,在展示的时候其实也是基础资料的类型。需要注意的是,表格整数类型的列不能映射到文本类型,在选择的时候也选不到,因为平台帮我们做了隔离。具体可以映射的类型可以参考下面表格:

需要注意的一点时:字段映射时会把单据体相关的列属性也带过来,如果在移动表格列也配置了相同的属性,则移动表格的配置优先生效。例如单据体小数列的小数精度为10,移动表格列设置的小数精度2,那么显示的时候小数精度也是2。
## 操作演示
以单据体取数为例:
1. 新建一个单据,并配置好单据体分录数据 
2. 切换到移动表单,左侧控件栏选择【表格控件】-->【移动表格】,然后将表格数据源绑定刚才建好的单据体。
3. 选中移动表格控件,然后在左侧控件栏选择添加移动表格列,也可以直接拖拽添加。添加列定义后,选中其中某一列,点击字段映射属性,将移动表格列映射到单据体的列。其他列定义按同样的步骤处理。

4. 接下来是数据,回到单据页面预览,给单据体添加数据,完成后点击提交

5. 切换到移动列表,预览点击刚才新增的单据,效果如下:

# 插件示例
数据源为自定义取数时需要使用插件给表格赋值。
这里以设计器配好的一个移动表格为例,动态去修改列属性以及插入行数据。初始化代码如下:
```
public class MobTablePluginSample2 extends AbstractFormPlugin implements IBeforeCreateMobTableColumnsListener {
@Override
public void initialize() {
MobTable mobTable = getControl("mobtableap");
mobTable.addBeforeCreateMobTableColumnsListener(this);
mobTable.addMobTablePackageDataHandlerListener(new IMobTablePackageDataHandlerListener() {
@Override
public void createMobTablePackageDataHandler(MobTablePackageDataHandlerEvent mobTablePackageDataHandlerEvent) {
mobTablePackageDataHandlerEvent.setMobTablePackageDataHandler(new MyMobTablePackageDataHandler2());
}
});
}
}
```
调整已有列的格式化属性:
```
@Override
public void beforeCreateMobTableColumns(BeforeCreateMobTableColumnsEvent event) {
List<MobTableColumn> mobTableColumns = ev