Encomendar uma selecção de entidade com este novo método ORDA

Tradução automática de Deepl

Num post de blog anterior, aprendeu como construir critérios de pesquisa sofisticados e complexos aplicando fórmulas numa consulta ORDA. Para lhe fornecer ainda mais ferramentas de desenvolvimento completas e poderosas, está disponível um novo método ORDA: orderByFormula(). Com a ajuda de fórmulas, pode agora encomendar uma selecção de entidade utilizando critérios complexos num método de projecto ou expressão 4D.

HDI: Exemplos para encomendar uma selecção de entidade com uma fórmula

Os critérios de encomenda são avaliados quando a fórmula é dada como uma string ou uma Formula objetar ao orderByFormula() método.

Encomendar com uma fórmula como uma corda

Aqui temos uma DataClass, Companies, e encomendamos todas as empresas com base nos seus lucros (lucros = receitas – custos).

Note-se que a entidade é acedida através do This comando.

C_OBJECT($companies;$orderedCompanies)
$companies :=ds.Companies.all()
$orderedCompanies :=$companies.orderByFormula ("This.revenue - This.costs")

Encomendar com um objecto de fórmula

Aqui encomendamos as empresas utilizando os mesmos critérios, mas em vez de uma string, estamos a utilizar um comando Formula objecto e estamos a ordenar por ordem decrescente.

C_OBJECT($companies;$orderedCompanies;$formula)
$formula := Formula(This.revenue - This.costs)
$companies :=ds.Companies.all()

$orderedCompanies:=$companies.orderByFormula ($formula;dk descending)

Note-se que utilizando um Formula O objecto oferece algumas vantagens (tais como auto-completamento, cores no editor de código, etc.) em relação à utilização de uma fórmula como string.

O orderByFormula() método tem ainda mais opções. Consulte a documentação e descarregue o IDH acima para mais detalhes.

sobre como encomendar uma selecção de entidade

Pode agora inserir uma declaração order by dentro do próprio método de membro query(). Este é um enorme benefício quando se trabalha em modo cliente/servidor, porque se pode combinar a consulta e a acção de encomenda no mesmo pedido, reduzindo o número de pedidos enviados para o servidor e o tráfego da sua rede.

C_OBJECT($companies)
$companies :=ds.Companies.query("revenue> :1 order by cost desc";5000)

Avatar
• Proprietário do produto - Marie-Sophie Landrieu -Yvert entrou ao time 4D Product como Proprietária do Produto em 2017. Como tal, está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Marie-sophie se formou na Escola de Engenharia de ESIGELEC e começou sua carreira como engenheira da IBM em 1995. Participou em vários projetos (de manutenção e criação) e trabalhou como desenvolvedora de Cobol. Depois trabalhou como designer de UML e desenvolvedora de Java. Suas principais funções foram analisar e redigir requisitos funcionais, coordenar os times de negócio e de desenvolvimento.