Toto je starší verze dokumentu!
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 grau.
Prametry formy
Nastavení formy pro zobrazení ganttova grafu probíhá přes hidden parametry. 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í. Obsahuje výpis vazeb celého grafu.
- 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 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