Ganttův diagram v sestavě

Top  Previous  Next

Seznam témat:

řešení

 

Řešení

Potřebujete do sestavy dostat něco jako ganttův diagram?

ukázka

 

Ganttův diagram je druh pruhového diagramu pojmenovaný po H. L. Ganttovi, průmyslovém inženýrovi, který byl za první světové války průkopníkem jeho používání. Ganttův diagram se využívá při řízení projektů pro grafické znázornění naplánování posloupnosti činností v čase. ...

 

Řešení

V prvním kroku musíte prostřednictvím SQL dotazu získat hodnoty. V tomto příkladu SQL dotaz (datový zdroj QUERY8) vrací 10 záznamů seřazených tak, jak potřebujeme a obsahuje termíny jednotlivých etap projektu (přesněji „termín od“ a „termín do“)

1.Datový zdroj je v tomto případě použit v oblasti typu poddetail.

 

 

 

Do oblasti je umístěn modrý obdélník a je pojmenován „bar“. Podobně je do oblasti umístěna i databázová položka, obsahující popis a termíny. I tuto položku musíte pojmenovat.  Horizontální pozice a šířka obou prvků je v okamžiku návrhu nepodstatná. Pokud chcete, jako v tomto příkladu, aby textová položka byla zobrazena přes obdélník, musíte nastavit výšku prvku (Element – přesunout do popředí).

 

 

3.

 

4. Posledním krokem je umístění modrého obdélníku podle termínů „od – do“ a nastavení šířky obdélníku v okamžiku generování sestavy. To platí i pro textovou položku. To lze zařídit skriptem pro        danou oblast. Skript v podstatě již jen vypočítá nejzazší hranice všech obdélníků, horizontální pozici každého obdélníku a délku každého obdélníku. Dále skript nastaví tyto vlastnosti pro                obdélníky i textovou položku. Příklad skriptu :

set zg = 90                                 // odsazení zleva

set ss = 1900 - zg                        // největší možná šířka obdélníku

 

set fs = query8._daydif_projekt // posunutí ve dnech (kde má obdélník začínat) vůči obdélníku, který začíná nejdříve a má tedy toto posunutí = 0

set nl = query8._daydif                        // délka obdélníku

set maxtd = query8._daydif_bigest // nejzazší termín, tj. kam až by sahal obdélník nejvíce vpravo

 

set pomer = ss/maxtd // výpočet poměru, kterým budeme každou hodnotu násobit. To je proto, že se musíme vléz se zobrazením na stránku

 

SETELEMENTLEFT('bar', zg+fs*pomer)   // nastavení levého okraje obdélníku

SETELEMENTWIDTH('bar', if(nl*pomer=0,10,nl*pomer))

// nastavení délky obdélníku (pokud vychází 0, tak nastavíme aspoň délku 10)

 

SETELEMENTLEFT('tx', zg+4+fs*pomer) // nastavení začátku textu

set dt = if(nl*pomer < 700,ss-fs*pomer-4,nl*pomer)

SETELEMENTWIDTH('tx', dt)           // nastavení délky textu tak, aby nepřetekl přes okraj stránky

 

Související témata