Gantt(ův) graf
Přímo integrovaný ganttův graf do frmuláře ESO9 nenahrazuje původní řešení Tvorba Ganttových grafů pro obecného klienta. Toto řešení zůstane prozatím funkční, jen nebude dále rozšiřováno. Nové řešení využívá komponentu z https://www.jqwidgets.com/ a je plně integrováno do editační formy ESO9. Nahrazuje zobrazení Browse formy a umožňuje grafický náhled a editaci dat přímou manipulací s prvky ganttova grafu.
Prametry formy
Nastavení formy pro zobrazení ganttova grafu probíhá za pomoci hidden parametrů. Pokud nejsou některá z polí uvedena v editoru je nezbytné je uvést v HiddenFields.
- GANTT - hodnota 1 - Zajistí zobrazení ganttova grafu místo Browse.
- GANTTTYPE - hodnota 0 (prozatím základní gantův graf).
- GANTTTASKID - Název pole ID pro identifikaci záznamu.
- GANTTTASKIDP - Název pole ve kterém se nachází ID pro identifikaci předchůdce. (Určuje zobrazení stromové struktury tasků).
- GANTTTASKDATESTART - Název pole určující počáteční datum tasku (DATETIME).
- GANTTTASKDATEEND - Název pole určující konečné datum tasku (DATETIME).
- GANTTTASKLABEL - Název pole určující zobrazenáý popis tásku.
- GANTTTASKTYPE - Název pole určující typ tasku. Povolené hodnoty v datech jsou PROJECT/TASK/MILESTONE.
- GANTTTASKPROGRESS - Název pole určující procento plnění tasku. *
- GANTTTASKCONN - Název pole určující definici napojení na ostatní tasky. Struktura "ID:TYP_VAZBY;ID:TYP_VAZBY". př. "14587:1;14588:2" Tapy vazby mohou nabývat hodnot 0=Start-to-Start, 1=End-to-start, 2=End-to-End a 3=Start-to-end.
- GANTTCURRENTTIMEINDICATOR - zda zobrazovat zobrazit indikátor aktuálního dne.
- GANTTCURRENTTIME - Název pole určující hodotou aktuálního dne, pokud je jiný než dnešní datum (DATETIME).
- GANTTVIEW - Název pole určující zobrazení časové osy. Možné hodnoty DAY/WEEK/MONTH/QUARTER/YEAR.
- GANTTTOOLTIP - hodnota="1" povolí zobrazení tooltipu.
- GANTTTASKTOOLTIP - Název pole určující vlastní tooltip tasku.
- GANTTHEIGHT - výška grafu v pixelech, pokud se neuvede vypočítává se automaticky.
- GANTTTASKMFCONNUPDATE - Název MF pole do kterého gantt zapisuje aktuálně vytvořené/zrušené propojení tasků přes grafické rozhraní. struktura je IDP:IDN:TYP_VAZBY.
- GANTTTASKSPCONNUPDATE h- Název SP procedury která je spuštěna po vyzvoření/zrušení propojení tasků. Procedura musí mít vstupní parametr, který se rovná názvu polem uvedeného v GANTTTASKSPCONNUPDATE. V proceduře se může zpracovat aktuální propojen tasků.
Příklad nastavení parametrů
Pro formu obsahující data tabulky SDOK s potřebnými vazbami
<input type="hidden" name="GANTT" value="1">
<input type="hidden" name="GANTTTYPE" value="0">
<input type="hidden" name="GANTTTASKID" value="IDSDOK">
<input type="hidden" name="GANTTTASKIDP" value="PREDCHUDCCE">
<input type="hidden" name="GANTTTASKDATESTART" value="DTPLANTERM">
<input type="hidden" name="GANTTTASKDATEEND" value="DTSKUTTERM">
<input type="hidden" name="GANTTTASKLABEL" value="TEXT_SLOZ">
<input type="hidden" name="GANTTTASKTYPE" value="TASKTYPE">
<input type="hidden" name="GANTTTASKPROGRESS" value="MNPROCPRIRAZKA">
<input type="hidden" name="GANTTTASKCONN" value="CONNECTIONS">
<input type="hidden" name="GANTTCURRENTTIMEINDICATOR" value="1">
<input type="hidden" name="GANTTCURRENTTIME" value="CURRENTTIME">
<input type="hidden" name="GANTTVIEW" value="QUARTER">
<input type="hidden" name="GANTTTOOLTIP" value="1">
<input type="hidden" name="GANTTTASKTOOLTIP" value="TOOLTIP">
<input type="hidden" name="GANTTHEIGHT" value="300">
<input type="hidden" name="GANTTTASKMFCONNUPDATE" value="MF_CONNECTIONS">
<input type="hidden" name="GANTTTASKSPCONNUPDATE" value="spCONNECTIONS_Update">
Příklad SP procedury na aktualizaci vazby
CREATE OR ALTER procedure dbo.spCONNECTIONS_Update
@MF_CONNECTIONS varchar(255),
@RequeryState Smallint= null
AS
Set NoCount ON
declare @IDSDOKP INT,
@IDSDOKN INT,
@VLTYPVAZBY SMALLINT
--přečtu si vytvořenou vazbu "IDP:IDN:TYP_VAZBY"
select @IDSDOKP = RADEK from dbo.fnTABULKA_SEZNAM(@MF_CONNECTIONS,':') where poradi = 1
select @IDSDOKN = RADEK from dbo.fnTABULKA_SEZNAM(@MF_CONNECTIONS,':') where poradi = 2
select @VLTYPVAZBY = RADEK from dbo.fnTABULKA_SEZNAM(@MF_CONNECTIONS,':') where poradi = 3
--kontrola existence vazby
IF (@IDSDOKP IS NULL OR @IDSDOKN IS NULL OR @VLTYPVAZBY IS NULL)
BEGIN
raiserror('Chybná data v MF_CONNECTIONS', 16, 1)
END
IF NOT EXISTS (SELECT * FROM SDOK WHERE IDSDOK = @IDSDOKP)
BEGIN
raiserror('Neexistuje sdok IDSDOKP', 16, 1)
return
END
IF NOT EXISTS (SELECT * FROM SDOK WHERE IDSDOK = @IDSDOKN)
BEGIN
raiserror('Neexistuje sdok IDSDOKN', 16, 1)
return
END
--smazu obracenou vazbu a nasledne potvrdim novou Nesmi existovat kruhova
DELETE HISSDOK WHERE IDSDOKP = @IDSDOKN AND IDSDOKN = @IDSDOKP
--pokud existuje aktualizuji typ, jinak založím
IF EXISTS (SELECT * FROM HISSDOK WHERE IDSDOKP = @IDSDOKP AND IDSDOKN = @IDSDOKN)
BEGIN
UPDATE HISSDOK SET VLTYPVAZBY = @VLTYPVAZBY
WHERE IDSDOKP = @IDSDOKP
AND
IDSDOKN = @IDSDOKN
END ELSE
BEGIN
INSERT HISSDOK (IDSDOKP, IDSDOKN, VLTYPVAZBY) VALUES (@IDSDOKP, @IDSDOKN, @VLTYPVAZBY)
END
Výsledek
