【SpreadJS v16.0 新特性预览】数据管理器(DataManager)支持字段别名
SpreadJS V16对集算表做了增强,在集算表的数据管理器(DataManager)中也做了对应的功能增强。新增了dataName用于支持字段别名。
例如下面的例子:
上面的集算表在构建表时,通过dataName设置了字段名称的映射。如上面红框的代码所示,在addTable的时候,在schema中设置了dataName:OrderId: {dataName: "Id"}
var myTable = dataManager.addTable("myTable", {
remote: {
read: {
url: apiUrl
}
},
schema: {
columns: {
OrderId: {dataName: "Id"},
OrderDate: {dataType: "date"},
RequiredDate: {dataType: "date"},
ShippedDate: {dataType: "date"},
ShipVia: {dataMap: {1: "Speedy Express", 2: "United Package", 3: "Federal Shipping"}}
}
}
});
Id表示后端数据源中的字段名称
OrderId表示集算表dataManager的表中对应的字段名称。在后续生成的视图中,就可以使用OrderId来代替Id这个字段了,如下图所示:
看到这里可能有人会问,看上去显示仅仅是更改列头的名字,那么如果仅仅是为了改列头名字,那么设置dataName,与设置view中的caption字段有何不同?
两者虽然最终表现上看起来差不多,但是在原理上有着本质的区别。caption就是列名的别名,列名默认会按照设置的value来进行显示,而value对应的就是table设置的字段。caption隶属于view,但是dataName隶属于table。一个table可以生成多个view。如果设置了dataName,那么所有的view中对应的value属性都需要跟dataName的设置保持一致。所以dataName可以理解为数据字典,将后端的数据字段与前端集算表中的命名建立联系。之后,在前端集算表中就不再使用后端的数据字段了,通通用映射的字段来代替。
dataName的应用场景:
1.如果最终用户想要自己按喜好配置不同的视图时,程序中需要提前设计好方便最终用户理解的dataName。因为最终用户往往并不了解DB构建规则,DB中表的命名也不便于最终用户理解。这个时候程序可以辅助创建dataName。这样最终用户在使用的时候用的就是映射之后便于理解的dataName,而无需关注这个dataName究竟在DB中代表的字段名称。
2.假设后端数据库中的字段名称做了修改,这个时候只需要在程序的dataName映射中做一下对应的修改即可。无需改动每个视图的配置。
页:
[1]