====== Grafy ====== Vytvoření grafu na záložce a v menu. ==== Návod na vytvoření záložky grafu v pohledu ==== 1.Nová záložka + popis 2.-zaktivnit plochu panelu-kliknout na plochu pod popisem záložky. 3.Layout - Border layout 4.BrowsePanel 5.Wrapper - cz.ortex.gui.o0.grafy1.OgrafSimpleWrapper 6.Uloha - orsoft.o.graf.Ograf 7.Parametry wrapper - par:hodn; par1:hodn1 8.Spojeno s - this 9.-uložit pohled a znova otevřít, jinak se nenajde bod 10. 10.Layout umístění - Na střed **!!! – ‘;‘ středník se nesmí vyskytovat v parametrech nikde jinde než pro oddělení jednotl. parametrů ** **!!! - pokud se po prvním spuštění zobrazí duální režim, je vhodné v záložce přepnout na detail, aby se tam "nepletl nějaký browse"** [[:orsoftopen:o0:ografsimple01.png?id=orsoftopen:o0:ografsimple&media=orsoftopen:o0:ografsimple01.png|{{:orsoftopen:o0:ografsimple01.png?nolink&682x258}}]] Wrapper - cz.ortex.gui.o0.grafy1.OgrafSimpleWrapper Uloha - orsoft.o.graf.Ograf Parametry wrapper - např. callpar:pvfHl; datVyberu:datSplatnost; filtrVyberu:sumZafirma; typGrafu:chart; pocetKategorii:1; stPootPopOsyX:60; sloupecPocet:10; mesPocet:6; priznDMR:M; seraditVyber:Y; nadpisGrafu:Fakturace - odběratele - 9 podle velikosti + ostatní; zobrHodnVrchGraf:A; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac Spojeno s - this Layout umístění - Na Střed ==== Parametry wrapperu ==== **callpar, callpar2**: přesné určení/rozlišení pro naplnění dat grafu **tabulka, tabulka2:** jméno tabulky, pokud je potřeba **zdroj:** přesné rozlišení dat, pokud to nelze předat při volání z věty **uloha:** úloha, pokud je potřeba **typGrafu: ** //chart// - sloupce //chart3D// - sloupce 3D //chartLayer// - sloupce přes sebe, jen pro kategorie //chartXYBar// - sloupce - měnit směr hodnot osy X //sloupline// - kombinace sloupce a spojitý graf //sloupline3D// - kombinace sloupce 3D a spojitý graf 3D //line3x// - kombinace max 3 spojitých grafů //chartvrst// - sloupce - max 10 vrstev //chart3Dvrst// - sloupce 3D - max 10 vrstev //lineChart// - spojnicový //lineChart3B// - spojnicový 3D //xyLineChart //- spojnicový pro různé hodnoty osy X a Y //chartKolac //- koláč (%-procenta) //chartKolac3D //- koláč 3D (%-procenta) //chartMultiKolac //- koláč - více koláčových ploch //chartMultiKolac3D //- koláč 3D - více koláčových ploch //stackedAreaChart //- graf skládaných oblastí //stackedBarChart //- stohovaný sloupcový //stackedBarChart3D //- stohovaný sloupcový 3D //ringChart //- kruhový graf //polarChart //- polární graf //xYAreaChart //- plošný //xYStepAreaChart //- krokový XY - plocha //xYStepChart //- krokový XY – linka //histogram //- histogram //waterfallChart //- vodoznak **orientaceGrafu:** standardně vertikálně, pro "1" nebo "H" bude horizontálně **pocetKategorii:** 1-3, např roky letos, minulý rok a předminulý rok , … **stPootPopOsyX:** pootočení popisu na ose x o počet stupňů, pootočení je vzhledem k oknu, tzn. 90 je svisle vždy ať je orientace grafu vodorovně nebo svisle **zobrHodnVrchGraf:** zobrazení hodnoty na vrcholu sloupce „A“-ano **stPootHodnVrchGraf:** pootočení hodnoty na vrcholu sloupce o počet stupňů, platí jen společně s zobrHodnVrchGraf **zobrHodnOsyX:** zobrazení hodnoty na ose X, např. pro týden „D“-datum poc-konec, jinak číslo (+ třeba „.tyden“) **denPocet:** data za počet dnů zpět, pro výpočet datumu-OD **tydenPocet:** data za počet týdnů zpět, pro výpočet datumu-OD **mesPocet:** data za počet měsíců zpět, pro výpočet datumu-OD **rokPocet:** data za počet roků zpět, pro výpočet datumu-OD **denPocetB:** data za počet dnů do budoucna, pro výpočet datumu-DO **tydenPocetB:** data za počet týdnů do budoucna, pro výpočet datumu-DO **mesPocetB:** data za počet měsíců do budoucna, pro výpočet datumu-DO **rokPocetB:** data za počet roků do budoucna, pro výpočet datumu-DO **sloupecPocet:** maximální počet sloupců – např. 10 = 9 největších a zbytek (ostatní) je v posledním sloupci „…ostatní“ **priznDMR:** sloupec grafu je **D**-en, **T**-ýden, **M**-ěsíc, **R**-ok – součty množství jsou za den,měsíc,rok, týden funguje jen pro speciální zpracování **priznKatDMR:** kategorie grafu je **D**-en, **T**-ýden, **M**-ěsíc, **R**-ok – kategorie mají odlišnou barvu sloupců, kategorie je většinou o řád vyšší, tzn. pro data za den je kategorie měsíc nebo rok a pro data za měsíc je kategorie rok, týden funguje jen pro speciální zpracování **nadpisGrafu:** vlastní nadpis grafu **popisX:** popis osy Y (rok,měsíc,den,…) **popisY:** popis osy X (Kč, množství, …) **popisLegenda1, popisLegenda2, popisLegenda3:** popis legend, který nemusí odpovídat klíčům, v grafu, např. klíčem je „pvfHl“ a „ppfHl“, ale zobrazí se popis „ Vydané faktury (PvfHl)" a „ Došlé faktury (PpfHl)" **datVyberu:** název pole v sql-tvaru, podle kterého se provádí výběr dat, např. Lq… - datdo_vyst , datfa_vyst, … PvfHl, PpfHl – dat_vystaveni, dat_splatnost, … **filtrVyberu:** filtr podle dalších parametrů sumZa… - součty/sloupce za … Kskut… - skupina, misto, zakazka, … Kplnsm – cisvyr, skupina, sumZaVyr, sumZaMisto, … Lq… - o1firma, o2firma, d1firma, zakazka, sumZao1firma, … PvfHl, PpfHl - o6a.dkaNr, firma, sumZafirma, … **seraditVyber:** seřazení výběru „A“, „V“ - vzestupně „Z“, „S“ - sestupně „Y“ - sestupně a nechat „…ostatní“ na konci ( pro filtrVyberu:sumZa…a sloupecPocet menší než počet sl. bez omezení ) **barva1, barva2, barva3:** u některých grafů lze nastavit barvu kategorií ve tvaru R,G,B – černá = 0,0,0; bílá=255,255,255; červená=255,0,0; zelená=0,255,0; modrá=0,0,255; žlutá=255,255,0; cyan=0,255,255; magenta=255,0,255 **prepocMnoz:** prepočet množství (hodnoty Y) při více kategoriích (např. u stoh. grafu) na procenta ze součtu hodnot kategorií **poleHodnX:** název pole v sql-tvaru, které se použije pro hodnotu osy X, typ Integer (datum, Lqo - datdo_vyst, datfa_spl, …) **poleHodnDateX:** stejné jako poleHodnX, ale pro hodnotu typu Date **poleHodnY:** název pole v sql-tvaru, které se použije pro hodnotu osy Y, např. množství, částka v Kč (mno, mno2, mno_vyda, mno_ram, uhrada, prirazp, priraz, cenab, dzakl, dph, dspo, rabat, rabath, fakcsb, zaokr, fakcsn, obnost, obnosz, zaokrt, zaokrz, zaokropr PvfHl, PpfHl – obnos_fakt, obnos_tuz, obnos_tuzem(PpfHl), obnos_prep, obn_zbyva, obn_zbyva_odeslano) **pohledNazev:** název gad-pohledu pro zadání datumu-od nebo datumu-od-do, použité jsou hodnoty gaTvon01 (uloží se do ografParams.DatOd), gaTbis01 (ografParams.DatDo), gaTvon02(ografParams.setCislo1), gaTvon02(ografParams.Cislo2), gaVwa01(ografParams.Text1), gaVwa02(ografParams. Text2), gaVwa03(ografParams.Text3) **dataInterface:** název a umístění podavače dat grafu, např. cz.ortex.impldao.p0.grafy.PgrafPodavac, cz.ortex.impldao.l0.grafy.LgrafPodavac **obsluznaTrida:** název třídy volané po kliknutí na sloupec grafu **nazevObslMetody:** název metody volané po kliknutí na sloupec grafu …..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..….. ==== Vyzkoušené záložky na editační obrazovce ( Parametry wrapperu ) ==== Wrapper cz.ortex.gui.o0.grafy1.OgrafSimpleWrapper **PvfHl: ** **//Odběratele - fakturace za 6 měsíců podle datumu splatnosti // ** //- sloupce // callpar:pvfHl; datVyberu:datSplatnost; filtrVyberu:sumZafirma; typGrafu:chartKolac; mesPocet:6; priznDMR:M; seraditVyber:Z; nadpisGrafu:Fakturace - odběratele podle velikosti; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac **//Odběratele - fakturace za 6 měsíců podle datumu splatnosti - jen 10 největších + zbytek // ** //- sloupce // callpar:pvfHl; datVyberu:datSplatnost; filtrVyberu:sumZafirma; typGrafu:chart; pocetKategorii:1; stPootPopOsyX:60; sloupecPocet:10; mesPocet:6; priznDMR:M; seraditVyber:Y; nadpisGrafu:Fakturace - odběratele - 9 podle velikosti + ostatní; zobrHodnVrchGraf:A; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac **//Odběratele - fakturace za 6 měsíců podle datumu splatnosti – // ** //koláč// callpar:pvfHl; datVyberu:datSplatnost; filtrVyberu:sumZafirma; typGrafu:chartKolac; mesPocet:6; priznDMR:M; seraditVyber:Z; nadpisGrafu:Fakturace - odběratele podle velikosti; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac **//Neplatiči// ** **//– zbytek do fakturace za 6 měsíců podle datumu splatnosti // ** //- kruh // callpar:pvfHl; datVyberu:datSplatnost; filtrVyberu:sumZafirma; typGrafu:chartKolac; mesPocet:6; priznDMR:M; poleMnoz:obnZbyvaOdeslano; nadpisGrafu:Neplatiči za 6 měsíců; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac **//CASH.FLOW-měsíc podle datumu splatnosti // ** callpar:cashflow; tabulka:pvfHl; datVyberu:datSplatnost; typGrafu:chart; pocetKategorii:2; stPootPopOsyX:60; mesPocetB:1; priznDMR:D; priznKatDMR:D; nadpisGrafu:Fakturace - CASH.FLOW měsíc; popisX:den; zobrHodnVrchGraf:A; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac; popisLegenda1:vydané; popisLegenda2:došlé **//CASH.FLOW-5 týdnů podle datumu splatnosti // ** callpar:cashflow; tabulka:pvfHl; datVyberu:datSplatnost; typGrafu:chart; pocetKategorii:2; tydenPocetB:5; priznDMR:T; priznKatDMR:T; nadpisGrafu:CASH.FLOW 5 týdnů; popisX:týden; zobrHodnOsyX:D; zobrHodnVrchGraf:A; stPootPopOsyX:40; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac; popisLegenda1:vydané; popisLegenda2:došlé …..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..…..….. ==== Volání z menu ==== Program cz.ortex.gui.o0.grafy1.OgrafSimpleAkce – není to wrapper, ale spojovací program OgrafSimpleAkce ==== Vyzkoušené volání z menu ( Parametry wrapperu ) ==== **PvfHl: ** {{:orsoftopen:o0:ografsimple03.png?700}} **//Sloup - odběratele - fakturace za 6 měsíců podle datumu splatnosti // ** callpar:pvfHl; datVyberu:datSplatnost; filtrVyberu:sumZafirma; typGrafu:chart; pocetKategorii:1; stPootPopOsyX:60; mesPocet:6; priznDMR:M; seraditVyber:Z; zobrHodnVrchGraf:A; nadpisGrafu:Vydané faktury - 6 měsíční fakturace na odběratele; pohledNazev:Kdatumu; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac **//Sloup - odběratele - fakturace za 6 měsíců podle datumu splatnosti - jen 9 největších + zbytek // ** callpar:pvfHl; datVyberu:datSplatnost; filtrVyberu:sumZafirma; typGrafu:chart; pocetKategorii:1; stPootPopOsyX:60; sloupecPocet:10; mesPocet:6; priznDMR:M; seraditVyber:Y; zobrHodnVrchGraf:A; nadpisGrafu:Vydané faktury - 6 měsíční fakturace na odběratele - 9 největších + zbytek; pohledNazev:Kdatumu; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac **//Koláč - odběratele - fakturace za 6 měsíců podle datumu splatnosti // ** callpar:pvfHl; datVyberu:datSplatnost; filtrVyberu:sumZafirma; typGrafu:chartKolac; mesPocet:6; priznDMR:M; seraditVyber:Z; nadpisGrafu:Vydané faktury - 6 měsíční fakturace na odběratele; pohledNazev:Kdatumu; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac **//Kruh - odběratele - fakturace za 6 měsíců podle datumu splatnosti // ** callpar:pvfHl; datVyberu:datSplatnost; filtrVyberu:sumZafirma; typGrafu:ringChart; pocetKategorii:1; stPootPopOsyX:60; mesPocet:6; priznDMR:M; nadpisGrafu:Vydané faktury - 6 měsíční fakturace na odběratele; pohledNazev:Kdatumu; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac //**Sloup - odběratele - denní fakturace za měsíc podle datumu splatnosti** // callpar:pvfHl; datVyberu:datSplatnost; filtrVyberu:sumZafirma; typGrafu:chart; pocetKategorii:1; stPootPopOsyX:60; mesPocet:1; priznDMR:D; seraditVyber:Z; zobrHodnVrchGraf:A; nadpisGrafu:Denní fakturace za měsíc podle datumu splatnosti; pohledNazev:Kdatumu; dataInterface:cz.ortex.impldao.p0.grafy.PgrafPodavac **Kplnsm:** **//Sloup - denní graf za měsíc// - s posouváním grafu a zobrazením záznamů jednotlivého sloupce po dvojkliku na sloupci** callpar:kplnsm; typGrafu:chart; pocetKategorii:1; stPootPopOsyX:60; poleHodnX:datum; poleHodnY:celk_suma; tabulka:KPLNSM; priznDMR:D; zobrHodnVrchGraf:A; mesPocet:1; datVyberu:datum; popisX:den; popisY:množství; nadpisGrafu:Denní výroba za 1 měsíc; sipkyLevaPrava:D; obsluznaTrida:cz.ortex.gui.k0.vyroba.KgrafSimpleAkce; nazevObslMetody:grafWrapper; dataInterface:cz.ortex.impldao.k0.vyroba.KgrafPodavac **//Sloup - měsíční graf za rok// - s posouváním grafu a zobrazením záznamů jednotlivého sloupce po dvojkliku na sloupci ** callpar:kplnsm; typGrafu:chart; pocetKategorii:1; stPootPopOsyX:60; poleHodnX:datum; poleHodnY:celk_suma; tabulka:KPLNSM; priznDMR:M; zobrHodnVrchGraf:A; rokPocet:1; datVyberu:datum; popisX:den; popisY:množství; nadpisGrafu:Měsíční výroba za 1 rok; sipkyLevaPrava:D; obsluznaTrida:cz.ortex.gui.k0.vyroba.KgrafSimpleAkce; nazevObslMetody:grafWrapper; dataInterface:cz.ortex.impldao.k0.vyroba.KgrafPodavac ---- ==== Programy - pro programátory ==== Různé grafy potřebují různé typy seznamu dat. V balíčku cz.ortex.apilogic.o0.grafy1 je deklarovana trida OgrafPodavacInterface **public interface OgrafPodavacInterface {** //… pro sloupcový graf; spojnicový; multi koláč; skládané oblasti; stohovaný; // **public OgrafCategoryDataset podejDatasetBar(OgrafParams ografPar);** //… pro koláčový graf// **public OgrafPieDataset podejDatasetKolac(OgrafParams ografPar); ** //… pro spojnicový; polární graf; XY plošný/linkový; // **public OgrafXYDataset podejDatasetXY(OgrafParams ografPar);** //… pro histogram // **public OgrafIntervalXYDataset podejIntervalXYDataset(OgrafParams ografPar); ** Pro naplnění hodnot pro graf a jejich podání je nutné mít vytvořenou třídu pro podsystém např. pro účetnictví. **public final class PgrafPodavac implements OgrafPodavacInterface {** **@Override** **public OgrafCategoryDataset podejDatasetBar(OgrafParams ografParams) {** //.. zde se naplní seznam dat a je možné i změnit parametry grafu // Pokud mají být ve sloupcovém grafu zobrazeny všechny sloupce a není jistota, že pro danou hodnotu X jsou data, je potřeba nejdříve naplnit nulovou hodnotou a pak provést vlastní naplnění. např. for (int i = 0; i < mesPocet; i++) { \\ … vynulování kl - kategorie, pokud je pro všechny stejná je graf jen s jednou barvou klP - hodnota na ose X, např. měsíc(číslo,název,rok/měsíc, …) nebo firma, závod, sklad, … dataBar.addValue(new BigDecimal(BigInteger.ZERO), kl, klP);\\ for (int i = 0; i < alist.size(); i++) {\\ … naplnění dataBar.setValue(alist.get(i).getMnozstvi(), kl, klP); **@Override ** **public OgrafPieDataset podejDatasetKolac(OgrafParams ografPar) {** //.. zde se naplní seznam dat a je možné i změnit parametry grafu // //dataset je oproti sloupcovému grafu jednodušší// klP - hodnota, např. měsíc(číslo,název,rok/měsíc, …) nebo firma, závod, sklad, … //dataKolac.setValue(klP, new Double(0)); - vynulování// //dataKolac.setValue(klP, alist.get(i).getMnozstvi()); - naplnění// **@Override** **public OgrafXYDataset podejDatasetXY(OgrafParams ografPar) {** //.. zde se naplní seznam dat a je možné i změnit parametry grafu // //XYSeries xyfirma = new XYSeries("firma");// //xyfirma.add(alist.get(i).getCislo1(), alist.get(i).getMnozstvi());\\ // **@Override ** **public OgrafIntervalXYDataset podejIntervalXYDataset(OgrafParams ografPar) ** //.. zde se naplní seznam dat a je možné i změnit parametry grafu // //není ukázka v PgrafPodavac// Pokud existují v programu třídy pro naplnění dat, je možné graf vytvářet. Pro naplnění hodnot pro graf a jejich podání je nutné mít vytvořenou třídu pro podsystém např. pro účetnictví