Todos já passamos por isso. Construímos uma bela interface que apresenta uma seleção de entidades aos usuários. Eles podem soltar entidades para refinar as suas escolhas, mas depois… aparecem aqueles espaços vazios onde as entidades soltas costumavam estar.
Reconstruir a seleção de entidades depois de as soltar? Não mais! 4D 20 R6 introduz uma caraterística útil que elimina esse ponto de dor com apenas uma linha de código.
Continue a ler para descobrir como esta caraterística pode manter a sua interface limpa e os seus usuários felizes.
a função clean no objeto de seleção de entidade
Vamos ver como funciona esta funcionalidade.
É apresentada uma seleção de entidades e o utilizador pode eliminar algumas entidades.
A caixa de listagem abaixo apresenta a seleção de entidades Form.persons. O utilizador seleciona algumas delas (Form.selected ) e clica no botão Drop. Se executarmos apenas este código:
Form.selected.drop()
Form.persons:=Form.persons
Obtemos isto:
Com apenas uma linha de código, graças à nova função clean() :
Form.persons:=Form.persons.clean()
Os espaços vazios desaparecem por magia, deixando a sua interface limpa e fácil de utilizar:
O parâmetro clean na API REST $entityset
Se a sua aplicação depende de APIs REST, também pode utilizar o parâmetro clean com a API REST $entityset.
Se você tiver um conjunto de entidades contendo entidades excluídas (conforme apresentado pelo objeto azul contendo a propriedade __STAMP) como este:
{
"__DATACLASS": "Persons",
"__entityModel": "Persons",
"__GlobalStamp": 0,
"__COUNT": 3,
"__FIRST": 0,
"__ENTITIES": [
{
"__STAMP":0
},
{
"__KEY": "2",
"__TIMESTAMP": "2024-05-23T09:26:19.658Z",
"__STAMP": 1,
"ID": 2,
"firstname": "Broddy",
"lastname": "Cristofanini"
},
{
"__KEY": "3",
"__TIMESTAMP": "2024-05-23T09:26:19.658Z",
"__STAMP": 1,
"ID": 3,
"firstname": "Candie",
"lastname": "Figin"
}
],
"__SENT": 3
}
Você pode obter um novo conjunto de entidades sem as entidades excluídas, executando a solicitação abaixo (949062617AF6408CB198B3CB41FB72FB é o ID do conjunto de entidades):
/$entityset/949062617AF6408CB198B3CB41FB72FB?$clean=true&$method=entityset
O resultado? Um conjunto de entidades sem as entradas eliminadas:
{
"__ENTITYSET": "/rest/Persons/$entityset/8F658F3BA1884DE6BEC1FCFF4A7938F0", xml-ph-0000@deepl.internal
"__DATACLASS": "Persons",
"__entityModel": "Persons",
"__GlobalStamp": 0,
"__COUNT": 2,
"__FIRST": 0,
"__ENTITIES": [
{
"__KEY": "2",
"__TIMESTAMP": "2024-05-23T09:47:50.933Z",
"__STAMP": 1,
"ID": 2,
"firstname": "Broddy",
"lastname": "Cristofanini"
},
{
"__KEY": "3",
"__TIMESTAMP": "2024-05-23T09:47:50.933Z",
"__STAMP": 1,
"ID": 3,
"firstname": "Candie",
"lastname": "Figin"
}
],
"__SENT": 2
}
Com esta nova funcionalidade, gerir seleções de entidades nunca foi tão fácil. Mantenha as suas interfaces organizadas e os seus utilizadores satisfeitos!