¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Otimização e personalização de colunas dinâmicas na SAP.m.table

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 2 Vistas
0
Cargando...

Olá Gurus!

Temos uma sap.m.table com 3 colunas no meu detail.view.xml:

<html:style type="text/css">
  td[data-colorCode="Overdue"] {
     background-color: pink !important;
   } 
   .cyan {  background-color : rgba(0, 255, 255, 0.28) } 
</html:style>
<Table id="meetingDetailTable" items="{screenModel>/meetingTable}">
  <columns>
	<Column id="meetTabIBpId"><header><Label text="{i18n>meetTabIBpId}"  /></header></Column>
	<Column id="meetTabIDevId"><header><Label text="{i18n>meetTabIDevId}" /></header></Column>
	<Column id="meetTabIDevDesc"><header><Label text="{i18n>meetTabIDevDesc}" /></header></Column>
  </columns>
  <items>
        <ColumnListItem id="meetingDetailTableList">
	  <cells>
	     <ObjectIdentifier 
		text="{screenModel>BusinessProcessId}"
		title="{screenModel>BusinessProcessDesc}"/>
	  </cells>
	  <cells>
		<Text
	         	text="{screenModel>ExtId}" />
	  </cells>
	  <cells>
		<Text
			text="{screenModel>DevelopmentDesc}" />
	  </cells>
        </ColumnListItem>
   </items>
</Table>

Em seguida, adicionamos algumas colunas dinamicamente:

var oModelData = oController.getModelData("screenModel");
var oMeetingTab = oController.byId("meetingDetailTable");
var oMeetinglist = oController.byId("meetingDetailTableList");


for (var i=0; i < oModelData.columns.length; i++){
    if (oModelData.columns[i].visible) {
        oMeetingTab.addColumn(new sap.m.Column({header: {{i18n.getText(oModelData.columns[i].header)}}}));
    }
}
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Obrigado pela sua resposta. Infelizmente, o componente principal é o objeto ColumnListItem e não a célula.

Acredito que quando oMeetinglist.addCell(oCell) é executado, uma conversão de estreitamento transforma o objeto filho oCell (sap.m.text/label/button/etc) em um sap.m.control, tornando assim impossível acessar a coluna HTML.

Talvez precisemos adicionar uma função de formatação ao objeto oCell, mas como queremos cores diferentes por valor de célula, a vinculação é feita a esse objeto.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...
verificar se isso ajuda, isso.getParent().addStyleClass("cyanb");
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá! Obrigado pela resposta.

Funcionou!

Adicionamos a lógica ao evento de atualização do modelo e anexamos um parâmetro de dados personalizado à célula.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá John,

Espero que o código abaixo seja útil para você.

var table = sap.ui.getCore().byId("__xmlview1--idProductsTable");

var cell = table.getItems()[0].getCells()[3];

var DomRef = cell.getDomRef();

$(DomRef.parentNode).addClass("backgroundRed");

Atenciosamente,

Bhargava

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?