日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

漫谈SAP产品里页面上的Checkbox设计与实现系列之一

發布時間:2023/12/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 漫谈SAP产品里页面上的Checkbox设计与实现系列之一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

昨天是2020年的最后一天,我整天的時間,都在和兩位歐洲同事一起處理一個SAP Spartacus UI里的Checkbox bug.

處理完bug之后,很自然地回憶起了這么多年來,我經歷過的不同SAP產品里的Checkbox的設計與實現。

文章目錄

(1) SAP GUI里的Checkbox
(2) SAP CRM里的Checkbox
(3) SAP Cloud for Customer里的Checkbox
(4) SAP UI5里的Checkbox
(5) SAP S/4HANA里的Checkbox
(6) SAP Spartacus里的Checkbox

本文介紹前三部分,其中歷史最悠久的當然就是SAP GUI里的Checkbox.

值得一提的是,SAP GUI Screen里的控件也支持Keyboard Accessibility,即通過鍵盤的Tab鍵,可以逐一導航到屏幕上的每一個控件。

SAP CRM WebClient UI本質上還是ABAP BSP技術,其Checkbox的一個例子,如下圖Main Partner列:

一個用戶肉眼可見的Checkbox,在SAP CRM系統里由總共6個HTML標簽組合而成。

當Checkbox里的勾選中時,最外層的wrapper div標簽的class變為th-sapcb-chkd,chkd是checked的縮寫。 內層a標簽屬性值aria-checked設置為true.

div內層一個隱藏的input標簽,如下圖標號6所示,用于同ABAP后臺進行值傳遞,其value屬性值變為X.

當Checkbox勾選時,上述介紹的最外層wrapper div的class變為th-sapcb-blk, blk意為blank; 內層a標簽的aria-checked屬性設置為false,hidden input的value屬性值置空。

而Checkbox的小勾視覺效果,通過a標簽的CSS::before選擇器實現。如上圖黃色所示。

::before選擇器的用法,通過下面這個簡單的例子可以學會——在施加了::before選擇器的HTML元素前部,會自動出現選擇器content屬性指定的內容。

'\e05d’代表小勾的視覺效果:

我們試著在Chrome開發者工具里將這個content屬性值改一改。’\e05c’代表hint,一個小感嘆號:

'\e05d’代表group:

::before選擇器的width和height屬性控制Checkbox矩形框的寬和高:

這一套::before content屬性值和對應的icon視覺效果圖的映射關系,可以在這個鏈接里獲得:

https://sapui5.hana.ondemand.com/test-resources/sap/ui/core/Icon.html

當然,SAP CRM的開發人員,是不會直接編寫原生的HTML代碼的。在SAP CRM里需要將一個控件定義成Checkbox,只需要實現這個控件綁定的模型節點字段的GET_P方法:

里面將控件的fp_fieldtype設置為field_type_checkbox.

Jerry之前的文章 SAP UI 搜索分頁技術 提到,SAP CRM UI采用服務器端渲染技術,WebClient UI框架基于上述維護的控件元數據,為一個Checkbox控件,在ABAP端渲染出上述介紹的總共7個HTML元素對應的原生HTML代碼。

SAP Cloud for Customer(C4C)里的Checkbox

SAP C4C里的Checkbox顏值較之SAP GUI和SAP CRM有了很大的提升:

同SAP CRM一樣,SAP C4C最終渲染出的HTML頁面里,也是由多個HTML元素協同工作,形成最后的Checkbox視覺效果。

C4C的Checkbox處于未選中狀態時,wrapper div的aria-checked屬性值為false, 內層div被賦予css類sapMSwtOff,span節點的值為No:

Checkbox處于選中狀態時,aria-checked屬性切換為true,內層div的class切換成sapMSwtOn, span的值為Yes:

C4C里的Checkbox,視覺效果上并不是SAP GUI里和SAP CRM里樸素的小勾,而是一個類似抽屜的滑動效果。

這個效果并未像SAP CRM那樣采取::before實現,而是通過給一個div標簽同時添加sapMSwtOn和sapMSwtHandle這兩個類實現的,handle的字面意思即抽屜的把手。

Checkbox關閉狀態的把手視覺效果通過sapMSwtOff和sapMSwtHandle這兩個類共同實現,把手尺寸通過sapUiSizeCompact的height和width控制:

當然,SAP C4C二次開發人員也不需要直接編寫這些原生的HTML代碼,而是在SAP C4C UI Designer里,從控件工具箱里拖拽一個Checkbox類型的控件到UI編輯界面即可實現Checkbox效果。

本文后續會接著簡單介紹SAP UI5,SAP S/4HANA和SAP Spartacus里的Checkbox設計,感謝閱讀。

更多Jerry的原創文章,盡在:“汪子熙”:

總結

以上是生活随笔為你收集整理的漫谈SAP产品里页面上的Checkbox设计与实现系列之一的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。