Avalados por :

Problema ao definir o valor do campo no modelo oData usando setProperty: solução e dicas

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

Olá,

Não consigo definir o valor de um campo no modelo oData usando setProperty, obtenho "false" como valor de retorno.

Eu usei um "Aplicativo mestre-detalhe CRUD". Da visualização Detalhes, navego para a visualização de Edição. Tenho campos de entrada e um botão de rádio na página de Edição. Se eu alterar o valor do campo de entrada, o modelo é atualizado. Para o botão de rádio, tenho uma função para a propriedade "select" definida para o RadioButtonGroup. Estou obtendo o valor (conforme o índice selecionado), mas ao usar setProperty no modelo oData, obtenho um false como retorno.

No controlador da visualização de Edição, na função "OnInit", faço uma chamada para a função "_onEdit". Estou usando-a para vincular os dados à visualização.

oPath = "/ItemsEntitySet(Index)" (Índice selecionado na visualização Detalhes)

oView.bindElement({

path: oPath

});

Na seleção do botão de rádio, obtenho o índice selecionado e o valor correspondente ao índice e tento definir o valor novamente no modelo oData (200 é o valor a ser definido para o campo no modelo oData Items Entity. E oResult é "false").

var oResult = this.getModel().setProperty("/ItemsEntityDetail/Index/Field", "200");

Por favor, me avise o que estou perdendo. Outros campos de entrada na visualização de Edição são atualizados automaticamente quando seus valores são alterados.

Obrigada,

Anna

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Vista Maestra

<List id="list" items="{ path: '/BankTypeSet', sorter: { path: 'Stext', descending: false }, groupHeaderFactory: '.createGroupHeader' }" busyIndicatorDelay="{masterView>/delay}" noDataText="{masterView>/noDataText}" mode="{= ${device>/system/phone} ? 'None' : 'SingleSelectMaster'}" growing="true" growingScrollToLoad="true" updateFinished="onUpdateFinished" selectionChange="onSelectionChange">

<infoToolbar>

<Toolbar active="true" id="filterBar" visible="{masterView>/isFilterBarVisible}" press="onOpenViewSettings">

<Title id="filterBarLabel" text="{masterView>/filterBarLabel}"/>

</Toolbar> </infoToolbar>

<items>

<ObjectListItem type="{= ${device>/system/phone} ? 'Active' : 'Inactive'}" press="onSelectionChange" title="{Stext}"></ObjectListItem>

</items>

</List>

Vista Detallada

<List id="employeeList" items="{BankDataNav}">

<items>

<ObjectListItem title="Nome do Banco: {Banka}" iconDensityAware="false" number="{Bankn}">

<attributes>

<ObjectAttribute title="{ path: 'Begda', type: 'sap.ui.model.type.Date', formatOptions: { style: 'medium', UTC: true } }" text="{ path: 'Endda', type: 'sap.ui.model.type.Date', formatOptions: { style: 'medium', UTC: true } }"/>

<ObjectAttribute text="Chave do Banco: {Bankl} "/>

<ObjectAttribute title="Chave de Controle do Banco" text="{path: 'Bkont', formatter: '.conv2Text' }"/>

<ObjectAttribute title="Método de Pagamento" text="{path: 'Zlsch', formatter: '.conv2Text' }"/>

</attributes>

</ObjectListItem>

</items>

</List>

Vista de Edição

<f:SimpleForm id="SF_Id" maxContainerCols="2" layout="ResponsiveGridLayout" title="Editar: {Banka}" minWidth="1024" columnsL="1" columnsM="1" editable="true" emptySpanL="4" emptySpanM="4" labelSpanL="3" labelSpanM="3">

<f:content>

<Label text="Válido desde" required="true"/>

<DatePicker name="Begda" value="{ path: 'Begda', type: 'sap.ui.model.type.Date', formatOptions: { style: 'medium', UTC: true, maxLength:15}}" id="Begda_id" enabled="{= ${viewModel>/mode} === 'edit'? true: false}" visible="true"/>

<Label text="Número da chave do banco" required="true"/>

<Input name="Bankl" id="Bankl_id" valueLiveUpdate="true" liveChange="_validateSaveEnablement" enabled="{= ${viewModel>/mode} === 'edit'? true: false}" visible="true" value="{Bankl}"/>

<Label text="Conta bancária" required="true"/>

<Input name="Bankn" id="Bankn_id" valueLiveUpdate="true" liveChange="_validateSaveEnablement" enabled="{= ${viewModel>/mode} === 'edit'? true: false}" visible="true" value="{Bankn}"/>

<Label text="Tipo de conta" required="true"/>

<RadioButtonGroup select="onSelectRadio" columns="2" id="RBG_Id">

<buttons>

<RadioButton id="RB1-1" text="Conta corrente"/>

<RadioButton id="RB1-2" text="Conta poupança"/>

</buttons>

</RadioButtonGroup>

</f:content>

</f:SimpleForm>

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

É um Modelo oData.

var oPath1 ="/BankDetailSet("+index+")";

var oSet = this.getModel().setProperty(oPath1+"/Bkont", "02");

Queres que eu faça upload do arquivo do projeto?

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

Pode me mostrar seu código? Você está usando JSONModel ou ODataModel?

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

Olá Jun,

Obrigado pela resposta rápida. Tentei com a sua sugestão e ainda não funcionou.

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?