码迷,mamicode.com
首页 > 其他好文 > 详细

Smart template的控件能否当成普通控件来用

时间:2018-02-25 19:23:57      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:field   unity   abap   drop   ref   not   问题:   image   web   

我的同事问过我这个问题:

技术分享图片

只要弄清楚Smart control的原理,就能回答这个问题。

答案是: smart control可以像普通的控件一样在xml view中被定义和使用,但是必须结合OData annotation,否则没有意义。以Smart control里的Smart field为例,详细原理在我的博客Currency example – how Smart field works里介绍。

概括起来,就是:

1. Smart field本身也是一个控件,更准确的说是一个没有UI输出的控件,只是一个壳。在UI render的时候,smart field会演变成input field,还是drop down list,还是date picker,还是F4 help,这些都需要有一个角色来告诉smart field,这个角色就是Odata annotation。Metadata里定义的annotation会决定smart field最后的输出方式。

2. Smart control可以脱离Smart template框架单独使用。也就是说您可以创建一个很简单的xml view,然后在这个view里像使用普通控件那样使用smart control,没有任何问题。

请参考这个例子(完整实现代码在文末):

技术分享图片

在XML view里,我定义了一个Smart field,绑到Price这个property上。

技术分享图片

在runtime时,它会自动被渲染成带单位的currency field。后面那个EUR的currency field就像变戏法一样生成了,其实就是sap:unit="CurrencyCode"这个annotation起的作用。至于框架是如何解析annotation并自动生成currency field,相关的代码和分析都在上述提到的博客Currency example – how Smart field works里。

技术分享图片

该Fiori应用的目录结构:

技术分享图片

源代码地址

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
技术分享图片

技术分享图片

Smart template的控件能否当成普通控件来用

标签:field   unity   abap   drop   ref   not   问题:   image   web   

原文地址:https://www.cnblogs.com/sap-jerry/p/8469923.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!