Jak zobrazit víceúrovňovou kolekci v různých rámečcích seznamu!

Automaticky přeloženo z Deepl

Od verze 4D v17 lze obsah víceúrovňové kolekce snadno zobrazit v různých rámečcích seznamu. To znamená, že můžete svázat několik seznamových boxů a zobrazit vnořené detaily… bez jediného řádku kódu! Toho lze dosáhnout prostým použitím objektu nebo kolekce jako zdroje dat pro jiný box seznamu!

S novým typem kolekce seznam boxů byly přidány vlastnosti „Aktuální položka“ a „Vybrané položky „. Mějte na paměti, že vlastnost „Aktuální položka“ umožňuje získat objekt, zatímco vlastnost „Vybrané položky“ vrací kolekci.

Podívejme se na konkrétní příklad a uvidíme, jak můžeme zobrazit výsledky krevního testu!

Příklad databáze

Co je uvnitř?

Na první úrovni máme jméno pacienta, datum vyšetření a jméno lékaře. Dále jsou výsledky rozděleny podle kategorií. U každé kategorie je seznam vyšetření s hodnotou výsledku, minima, maxima a jednotky.

Z hlediska struktury dat máme k dispozici objekt s některými atributy první úrovně( tj. jméno, příjmení atd.) a také kolekci objektů kategorií. Pro každý objekt kategorie pak máme kolekci objektů testů. Abychom to shrnuli:

{
  "lastname": "Beal",
  "firstname": "Estele",
  ...,
  "results": [{
    "category": "Metabolic",
    "test": [
      { "name": "Albumin", "value": ... },
      { "name": ... }]
  }, {
    "category": "Lipoprotein",
    "test": [
      { "name": "HDL", "value": ...  },
      { "name": ... }]
  }, {...}]
}

Níže uvedené schéma popisuje, jak se výsledky zobrazují ve dvou seznamových polích vedle vstupních objektů. To vše … bez jediného řádku kódu! Ve skutečnosti jsou všechny vlastnosti definovány v objektech formuláře, jediná část, kde je potřeba nějaké kódování, je při načítání výsledku. To je vše, přátelé! ?

Jak vidíte, tento příklad usnadňuje čtení a pochopení výsledků krevních testů, zejména když jsou nesprávné údaje zvýrazněny barevným nádechem.

K tomu jsme přiřadili následující metodu Decorate s meta výrazem ve vlastnosti pole seznamu:

If (This.value>(This.max*2))
$0 :=Form.meta.doubleOutOfRange
Else
If ((This.value>This.max) | (This.value<This.min))
$0 :=Form.meta.outOfRange

Else
$0 :=Form.meta.perfectValue

End if
End if

Vanessa Talbot
• Product Owner • Vanessa Talbot se připojila k programovému týmu 4D v červnu 2014. 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. Od svého příchodu pracovala na definování klíčových prvků ve 4D. Pracovala na většině nových funkcí preemptivního multi-threadingu a také na velmi složitém tématu: nové architektuře pro enginované aplikace. Vanessa má titul z Telecom Saint-Etienne. Svou kariéru začala ve Výzkumném ústavu kriminalistickém jako vývojářka pro audiovizuální oddělení. Působila také v mediální a lékařské oblasti jako expertka na technickou podporu, produkci i dokumentaci novinek.