根据运行时的内容自动调整sap.ui.table.Table列的大小

2020-09-07 09:08发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

Am具有类型为sap.ui.table的网格表,如下所示。

 



 

 
  <文本text =" Sr号" />  <文本text =" {MODEL> SERIAL_NO}"/>  
  <文本text ="部件号"/>  <文本text =" {MODEL> EQUIPMENT_NUMBER}"/>  
  <文本text ="描述"/>  <文本text =" {MODEL> EQUIPMENT_DESCRIPTION}"/>  
  <文本text =" Configuration"/>  <输入值=" {MODEL> CONFIGURATION}" id =" QuantityInput1" class =""/>  
  <文本text =" UOM"/>  <文本text =" {MODEL> UOM}"/>  
  <文本text ="零件数量"/>  <输入值=" {MODEL> QUANTITY}" id =" QuantityInput2" class =""/>  
      
  <文本text ="折扣类型"/>  <选择商品=" {MODEL> DISCOUNT_TYPE}" change =" getItemDetails">  key}" text =" {MODEL> Desc}"/>   
  <文本text ="折扣率"/>  <输入值=" {MODEL> DISCOUNT_RATE}" id =" QuantityInput3" class =""/>  
  <文本text ="折扣金额(₹)"/>  <文本text =" {MODEL> DISCOUNT_AMOUNT}"/>  
  <文本text ="折扣后的净值(₹)"/>  <文本text =" {MODEL> NET_VALUE}"/>   
  <文本text =" CGST"/>  <文本text =" {MODEL> CGST_PRCNT}"/>  
  <文本text =" CGST Amt(₹)"/>  <文本text =" {MODEL> CGST_AMOUNT}"/>  
  <文本text =" SGST%"/>  <文本text =" {MODEL> SGST_PRCNT}"/>  
  <文本text =" SGST Amt(₹)"/>  <文本text =" {MODEL> SGST_AMOUNT}"/>  
      
  <文本text ="已确认数量"/>  <文本text =" {MODEL> CONFIRMED_QUANTITY}"/>  
 
 

 

我在列中添加了属性autoResizable =" true",因此,当在屏幕上用表中的数据加载屏幕时,双击任何列,该特定列(列即双击示例列A)的宽度将自动调整为 该列中具有最大长度的内容(数据)的长度。

现在,我想在加载屏幕时自动为所有列实现此目的,而无需双击列,我们如何实现这一目标?

致谢

Govardan

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

Am具有类型为sap.ui.table的网格表,如下所示。

 



 

 
  <文本text =" Sr号" />  <文本text =" {MODEL> SERIAL_NO}"/>  
  <文本text ="部件号"/>  <文本text =" {MODEL> EQUIPMENT_NUMBER}"/>  
  <文本text ="描述"/>  <文本text =" {MODEL> EQUIPMENT_DESCRIPTION}"/>  
  <文本text =" Configuration"/>  <输入值=" {MODEL> CONFIGURATION}" id =" QuantityInput1" class =""/>  
  <文本text =" UOM"/>  <文本text =" {MODEL> UOM}"/>  
  <文本text ="零件数量"/>  <输入值=" {MODEL> QUANTITY}" id =" QuantityInput2" class =""/>  
      
  <文本text ="折扣类型"/>  <选择商品=" {MODEL> DISCOUNT_TYPE}" change =" getItemDetails">  key}" text =" {MODEL> Desc}"/>   
  <文本text ="折扣率"/>  <输入值=" {MODEL> DISCOUNT_RATE}" id =" QuantityInput3" class =""/>  
  <文本text ="折扣金额(₹)"/>  <文本text =" {MODEL> DISCOUNT_AMOUNT}"/>  
  <文本text ="折扣后的净值(₹)"/>  <文本text =" {MODEL> NET_VALUE}"/>   
  <文本text =" CGST"/>  <文本text =" {MODEL> CGST_PRCNT}"/>  
  <文本text =" CGST Amt(₹)"/>  <文本text =" {MODEL> CGST_AMOUNT}"/>  
  <文本text =" SGST%"/>  <文本text =" {MODEL> SGST_PRCNT}"/>  
  <文本text =" SGST Amt(₹)"/>  <文本text =" {MODEL> SGST_AMOUNT}"/>  
      
  <文本text ="已确认数量"/>  <文本text =" {MODEL> CONFIRMED_QUANTITY}"/>  
 
 

 

我在列中添加了属性autoResizable =" true",因此,当在屏幕上用表中的数据加载屏幕时,双击任何列,该特定列(列即双击示例列A)的宽度将自动调整为 该列中具有最大长度的内容(数据)的长度。

现在,我想在加载屏幕时自动为所有列实现此目的,而无需双击列,我们如何实现这一目标?

致谢

Govardan

付费偷看设置
发送
2条回答
灬番茄
1楼 · 2020-09-07 09:39.采纳回答

在表api中没有直接的方法或事件可实现该目标。

标准控件使用一个扩展类来实现所有这些功能。

您可以尝试扩展标准控件以实现它,也可以直接使用扩展名(有升级后它不起作用的风险)。

例如,我通过以下方法使它起作用 码。

 onResizeAll:函数(oEvent){
 var tbl = this.getView()。byId(" table");
 var columnCount = tbl.getColumns()。length;
 for(var indx = 0; indx  

表,

Sarbjeet Singh

吹牛啤
2楼-- · 2020-09-07 09:19

table.getColumns将返回对列对象的引用,而不是副本。

我宁愿鼓励使用列的结果数组,而不是使用私有属性_aExtensions遍历该数组,因为它可以在ui5的未来版本中进行更改,并且会破坏您的应用程序。

一周热门 更多>