Článek: AN0001911Aktualizováno::
To, zda má být sloupec skryt nebo zobrazen primárně nastavujeme v detailu sloupce nebo v nastavení Násobných sloupců, pokud jimi třída disponuje. Někdy ale potřebujeme sloupec skrýt v závislosti na dalších skutečnostech, které zjistíme až zaběhu. Sloupce můžete skrýt vždy, ale naopak je nemůžete skriptem zobrazit, pokud byly skryty přímo v definici sloupce nebo nejsou zvoleny v nastavení Násobných sloupců.
Skrytí sloupce v seznamu záznamů
Následující skript skryje sloupec s kódem column_code v seznamu záznamů.
Místo použití skriptu: Detail třídy: Skript pro detail záznamu
function OnLoad()
{
OGColumns['column_code'].Visible = false;
}
Skrytí sloupce v detailu záznamů
Následující skript skryje sloupec 'segmentation'. Nastavení provedeme v události OnAfterLoadColumns.
Místo použití skriptu: Detail třídy: Skript pro seznam záznamů
function OnAfterLoadColumns()
{
OGColumns['segmentation'].Visible = false;
}
Následující příklad skryje ve třídě s násobnými sloupci sloupec 'name' pro nově zakládaný záznam, pokud je ve sloupci 'category_request' odkazováno na záznam jiné třídy, který má ve sloupci 'code' hodnotu 'HR requests'. Protože chceme potlačit chování definované v násobných sloupcích, skript musí běžet až po nastavení sloupců dle definice v Násobných sloupcích. Proto ho provádíme v události OnPreRender.
function OnPreRender()
{
var visible = true;
var name = OGColumns['name'];
var rcId = OGColumns['request_category'].ColumnUI.GetData();
if ( rcId != null && name.Visible)
{
var clRC = OGModel.ClassDefs['request_category'];
var drRC = OG.DataRow.GetDataById( clRC.Id, rcId);
if ( drRC != null && drRC['code'] == 'HR requests')
{
visible = false;
}
}
name.Visible = visible;
}