`
JerryWang_SAP
  • 浏览: 1003468 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

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

阅读更多

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

 

只要弄清楚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的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

 

 
 
0
0
分享到:
评论

相关推荐

    atl.rar_atl template

    "atl.rar_atl template"这个压缩包可能包含的是关于如何使用ATL模板进行COM开发的文档,例如"atl.doc"可能是详细的教程或示例代码,指导开发者如何创建和使用ATL模板来构建COM组件。学习和理解这些内容,开发者可以...

    smart form

    本文档将详细介绍如何在SAP Smart Form中使用Table(表格)、Template(模板)、Loop(循环)以及Command(命令),并通过这些元素来展示一系列记录的具体方法。通过本教程的学习,读者可以更好地掌握这些关键概念,...

    Jarvis后台管理模板

    这款模板基于Jarvis Smart Admin框架,旨在提供一个直观、响应式且易于定制的界面,以提升开发效率并优化用户体验。 该模板的核心特性包括: 1. **响应式布局**:Jarvis后台管理模板采用现代前端技术,如Bootstrap...

    smart-tabs:Smart Tabs自定义HTML元素

    在`smart-tabs`组件中,可能使用Shadow DOM来隔离标签页的CSS,确保每个标签页的样式独立。 5. **JavaScript-Tabs**: 这个组件主要用JavaScript实现,它负责处理逻辑,如监听用户的点击事件,更新当前活动标签页...

    WTL 9.1 5270 ReadMe 中文 汉化 中英文对照版 01d

    WTL(Windows Template Library)是一种ATL扩展类库,它能为应用程序及各种控件提供更复杂的用户界面支持,同时保持ATL简洁快速的优点。WTL类库被设计为ATL实现广泛Win32用户界面的最简最优方式,支持各种应用程序、...

    OpenGL 封装技术可以直接引用

    "SmartClient.rar"和"SmartOGCtrl"可能分别是封装完成的客户端应用示例和OpenGL封装控件本身,供开发者下载和研究。 总的来说,这个项目展示了如何通过ATL和STL在Windows平台上构建一个跨语言的OpenGL封装库,使得...

    Visual+C+++2005编程技巧大全

    4. **异常处理**:介绍C++的异常处理机制,如何使用try、catch和throw来捕获和处理程序运行时的错误。 5. **模板**:详述模板的使用,包括函数模板、类模板、模板元编程以及模板特化。 6. **内存管理和智能指针**...

    深入编程内幕--Visual C++

    《深入编程内幕--Visual C++》是一本专为C++开发者设计的深度学习书籍,尤其对使用Microsoft Visual C++(VC)开发环境的程序员来说,是不可多得的参考资料。这本书详细介绍了C++语言的基础与高级特性,以及如何在...

    深入浅出MFC--侯捷 深入浅出MFC--侯捷 深入浅出MFC--侯捷

    6. **类库和容器(Class Libraries and Containers)**:MFC包含许多标准的C++容器类,如集合(Collection)、智能指针(Smart Pointers)和模板容器(Template Containers),如vector、list和map等,提供了强大的...

    JAVA上百实例源码以及开源项目源代码

    得到RSA密钥对,产生Signature对象,对用私钥对信息(info)签名,用指定算法产生签名对象,用私钥初始化签名对象,将待签名的数据传送给签名对象(须在初始化之后),用公钥验证签名结果,使用公钥初始化签名对象,用于...

    WTL 9.1 5270 Beta 中文 汉化 中英文对照版

    WTL(Windows Template Library)是一种ATL扩展类库,它能为应用程序及各种控件提供更复杂的用户界面支持,同时保持ATL简洁快速的优点。WTL类库被设计为ATL实现广泛Win32用户界面的最简最优方式,支持各种应用程序、...

    C++类库介绍

    ### C++类库详细介绍 #### 一、C++与类库的重要性 C++作为一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,它结合了...正确地利用这些类库不仅能提高开发效率,还能确保代码的质量和可维护性。

    java开源包8

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包1

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包11

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包2

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包3

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包6

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

    java开源包5

    WebSocket4J 并未实现客户端通讯协议,所以不能用它来连接 WebSocket 服务器。 Struts验证码插件 JCaptcha4Struts2 JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 ...

Global site tag (gtag.js) - Google Analytics