Článek: AN0001915Aktualizováno::
Zda má být sloupec pouze ke čtení se primárně nastavuje v detailu sloupec. Pokud však nastavení chceme provést v závislosti na dalších skutečnostech, v detailu sloupec povolíme editaci a read-only vlastnost nastavíme až za běhu.
Níže uvedený skript nastaví 'date' jako pouze ke čtení (read-only).
Místo použití skriptu: Detail třídy: Skript pro detail záznamu
function OnAfterLoadColumns()
{
OGColumns['date'].ReadOnly = true;
}
Níže uvedený skript nastaví pro existující záznam (ne nově vytvářený záznam a ne archívní záznam) všechny sloupce kromě sloupce 'comment' jako pouze ke čtení (read-only), pokud uživatel není ve sloupci 'solver' nebo nemá jednu z rolí 'it-architect', 'system-administrator', 'it-helpdesk'.
Místo použití skriptu: Detail třídy: Skript pro detail záznamu
function OnAfterLoadColumns()
{
var isRow = OGDataRowId != null;
if ( isRow && !OGIsArchiveMode)
{
var isRight = false;
if (
OG.Person.IsUserInRoleByCode('it-helpdesk') ||
OG.Person.IsUserInRoleByCode('it-architect') ||
OG.Person.IsUserInRoleByCode('system-administrator')
)
{
isRight = true;
}
if ( !isRight)
{
var dr = OG.DataRow.GetDataById(OGClassDef.Id, OGDataRowId);
if ( dr != null && dr['solver'] != null && dr['solver'].Id == OG.Person.GetLoginPerson().Id)
{
isRight = true;
}
}
//pokud nema roli ani neni resitelem, tak vse zakazat krome sloupce comment
if( !isRight)
{
var colIds = OGColumns.GetColumnIds();
for( var i = 0; i < colIds.Count; ++i)
{
var cc = OGColumns.GetById(colIds[i]);
if ( cc.Entity.Code != 'comment')
{
cc.ReadOnly = true;
}
}
}
}
}