1. Případová studie Model IT: Kalendář pro harmonogram prací

    Článek: AN0001855Aktualizováno::

    Ve třídě Harmonogram prací se ukládají plánované aktivity (release z projektů, patchování serverů atd.) či důležité informace (pohotovost týmů...). Každý záznam obsahuje mj. název, popis, počáteční a koncové datum, typ práce, odkaz na release.

    Popis funkčnosti

    Záznamy chceme zobrazit i vizuálně ve formě kalendáře.

    Popis řešení

    V definici třídy na záložce Čas zaškrtneme Povolit zobrazení kalendářů a zvolíme sloupce pro konfiguraci kalendáře. (Alternativní možností je použití webpartu Kalendář, který umístíme do zvláštní stránky. Webpart nakonfigurujeme tak, aby přebíral data ze třídy Harmonogram prací. Do třídy Harmonogram prací vložíme tlačítko, které zobrazí stránku s webpartem Kalendář. Na stránku s webpartem naopak vložíme tlačítko obsahující odkaz na seznam záznamů Harmonogramu prací, aby uživatel mohl přepínat mezi oběma pohledy.)

    Ve webpartu Kaledář máme možnost mj. určit barvu pruhu představujícího aktivitu v kalendáři. Do třídy Harmonogram prací tedy vložíme sloupec typu barva a zajistíme jeho plnění pomocí pravidel před uložením nového záznamu a před uložením existujícího záznamu. Tento sloupec uvedeme při konfiguraci třídy/webpartu jako Sloupec pro barvu pozadí.

    Pravidlo set_colour_new na třídě Harmonogram prací:

    /*
    The rule will find out value in columns type and release and sets the value in column colour in this way:
    If type = 1, then column colour will contain pink colour  - #ff99cc, (RGB: 255,153,204)
    If type = 1, then column colour will contain green colour - #99cc00, (RGB: 153,204,0)
    If type = 1, then column colour will contain orange colour - #ff6600, (RGB: 255,102,0)
    If type = 1, then column colour will contain blue colour - #99ccff, (RGB: 153,204,255)
    However, if column release is not null, then column colour will contain red colour - #ff0000, (RGB: 255,0,0)
    */


    var dTy = OGActualDataRow['type'];
    var dRe = OGActualDataRow['release'];

    if ( dRe != null)
    {
        OGActualDataRow['colour'] = OG.Color.ToInt( 255, 0, 0);
    }
    else if ( dTy != null)
    {
        if (dTy == 1)
        {
               OGActualDataRow['colour'] = OG.Color.ToInt( 255, 153, 204);
        }
        else if (dTy == 2)
        {
               OGActualDataRow['colour'] = OG.Color.ToInt( 153, 204, 0);
        }
        else if (dTy == 3)
        {
               OGActualDataRow['colour'] = OG.Color.ToInt( 255, 102, 0);
        }
        else if (dTy == 4)
        {
               OGActualDataRow['colour'] = OG.Color.ToInt( 153, 204, 255);
        }
    }

     

×