Ulehčete život vývojářům pomocí seznamových boxů

Automaticky přeloženo z Deepl
Naším hlavním cílem je den za dnem usnadňovat vývojářům život a boxy se seznamy jsou jedním z nejpoužívanějších a nejvýkonnějších formulářových objektů 4D, které k tomuto účelu slouží. Všichni víme, že seznamové boxy spouštějí mnoho událostí, proto jsme v 4D v18 R2 vylepšili funkci Form event příkaz, aby vracel ještě více informací, když jsou události seznamových boxů spuštěny.
Chcete se zbavit starého složitého kódu pro odhadování, na který řádek, sloupec nebo záhlaví jste klikli nebo na který jste položili myš? Ukážeme vám plynulejší a chytřejší způsob, jak to udělat!

HDI: Příklady pro snadnou práci s událostmi Listboxu

V závislosti na události nyní příkaz vrací další relevantní vlastnosti. Form event příkaz.
Podívejme se na několik příkladů.

Při události kliknutí na záhlaví

Název objektu záhlaví, název objektu sloupce a číslo sloupce jsou nyní vraceny příkazem Form event příkaz.
Zde je příklad objektu vráceného při spuštění události On Header Click/.

{"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"}

Pokud například nastavíte název objektu sloupce skutečným názvem atributu datové třídy (např. příjmení):

Při kliknutí na záhlaví sloupce zobrazujícího příjmení zaměstnanců seřadíme sloupec podle atributů příjmení a jméno :

Form.event:=FORM Event
Case of
: (Form event code =On Header Click)
if (Form.event.columnName="příjmení")
Form .employees:=Form.employees.orderBy(Form.event.columnName+", jméno")
End if
End case

Při události DISPLAY DETAILS

Při spuštění události On Display Details jsou nyní příkazem vraceny další relevantní vlastnosti( např. isRowSelected). Form event příkaz. To může být užitečné při správě vzhledu řádků pole seznamu.
Níže je uveden příklad metody(setColor) nastavené ve vlastnosti Meta info expression pole seznamu:
blank
Metoda 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

A zde je vidět, jak vypadá pole seznamu, když jsou vybrány řádky:

blank

Při pohybu myší EVENT

Další často používanou událostí je událost On Mouse Move. Níže jsou uvedeny příklady objektů vrácených pomocí Form event příkazu při jejím spuštění.

Okamžitě získáte užitečné vlastnosti pro lokalizaci místa, kam jste umístili myš!

Při najetí myší na záhlaví

Form event Příkaz vrací:

{"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"}
.

Při najetí myší na buňku

Form event příkaz vrací:

{"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"}
Událostí boxu se seznamem je tolik, že jeden příspěvek na blogu nestačí na pokrytí všech, proto se nezapomeňte podívat do dokumentace, kde najdete rozsáhlé informace o každé události, a stáhněte si HDI, abyste se dozvěděli více!
Avatar
• Product Owner • Marie-Sophie Landrieu-Yvert se připojila k programovému týmu 4D jako Product Owner v roce 2017. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich převod do funkčních specifikací. Její úlohou je také zajistit, aby implementovaná funkce odpovídala potřebám zákazníka. Marie-Sophie vystudovala inženýrskou školu ESIGELEC a svou kariéru zahájila jako inženýrka v IBM v roce 1995. Podílela se na různých projektech (projekty údržby nebo výstavby) a pracovala jako vývojářka Cobol. Poté pracovala jako UML designer a Java developer. V poslední době byly jejími hlavními rolí analyzovat a psát funkčních požadavky a koordinovat obchodní a vývojové týmy.