Facilita a vida do seu desenvolvedor com caixas de listagem

Tradução automática de Deepl
O nosso principal objectivo é facilitar a vida dos criadores, dia após dia, e as caixas de listagem são um dos objectos de forma mais usados e poderosos da 4D que servem este propósito. Todos sabemos que as caixas de listagem desencadeiam muitos eventos, e é por isso que em 4D v18 R2 melhorámos o comando Form event para devolver ainda mais informações quando os eventos da caixa de listagem são desencadeados.
Quer largar o seu antigo código complicado para adivinhar em que linha, coluna, ou cabeçalho clicou ou colocou o seu rato? Deixe-nos mostrar-lhe uma maneira mais suave e mais inteligente de o fazer!

HDI: Exemplos para trabalhar facilmente com eventos da Listbox

Dependendo do evento, as propriedades adicionais relevantes são agora devolvidas pelo comando Form event comando.
Vamos ver alguns exemplos.

No evento de clique de cabeçalho

O nome do objecto de cabeçalho, o nome do objecto de coluna e o número da coluna são agora devolvidos pelo comando Form event comando.
Aqui está um exemplo do objecto devolvido quando um evento On Header Click é accionado/

{"headerName":"headerLastname", // New property - Header object name
"columnName":"lastname", // New property - Column object name
"column":2,   // New property - Column number
"code":42,
"description":"On Header Click",
"objectName":"EmployeesLB"}

Por exemplo, se definir um nome de objecto de coluna com um nome de atributo real de um dataclass( por exemplo, último nome):

Ao clicar no cabeçalho da coluna que mostra o apelido dos empregados, ordenamos a coluna no último nome e primeiros atributos do nome :

Form.event:=FORM Event
Case of
: (Form event code =On Header Click)
if (Form.event.columnName. Form= "último nome")
orderBy .employees:=Form.employees. (Form.event.columnName+", primeiro nome")
End if
End case

No evento DISPLAY DETAILS

Quando o evento On Display Details é accionado, propriedades adicionais relevantes(por exemplo, isRowSelected) são agora devolvidas pelo comando Form event comando. Isto pode ser útil para gerir o aspecto das linhas de uma caixa de listagem.
Abaixo está um exemplo de um método(setColor) definido na propriedade da expressão Meta info de uma caixa de listagem:
blank
O método setColor:
C_OBJECT($event;$0;$meta)
$event :=FORM Event
$meta :=New object
Case of
: ($event.code=On Display Detail)
If ($event.isRowSelected) //set color when row is selected
$meta .fill:="lightblue"
End if

End case
$0:=$meta

E eis como fica a caixa de listagem quando as filas são seleccionadas:

blank

No movimento do rato EVENTO

Outro evento frequentemente utilizado é o evento On Mouse Move. Abaixo estão exemplos de objectos devolvidos pelo Form event comando quando é accionado.

Obtém imediatamente propriedades úteis para localizar onde coloca o seu rato!

O rato paira sobre uma cabeça

Form event O comando regressa:

{"area": "header", // The mouse is on a header
"areaName": "headerLastname", // Header object name
"column":2, // Column number
"columnName": "lastname", // Colmun object name
"code":37,
"description": "On Mouse Move",
"objectName": "EmployeesLB"}

O rato paira sobre uma cela

Form event comando retorna:

{"area": "cell", // The mouse is on a cell
"column":1, // Column number
"row":2, // Row number
"columnName": "firstname", // Colmun object name
"code":37,
"description": "On Mouse Move",
"objectName": "EmployeesLB"}
Há tantos eventos em caixas de listagem que um único post no blog não é suficiente para cobrir todos eles, por isso não se esqueça de verificar a documentação para encontrar informação extensiva sobre cada evento e descarregar o HDI para saber mais!
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.