Kategorie:FRMSKUPSCHEMANODEOPR

Z Dokumentace Disoft
Verze z 12. 11. 2019, 11:17, kterou vytvořil Fiala (diskuse | příspěvky) ((by SublimeText.Mediawiker))
Přejít na: navigace, hledání

Schéma - nový / oprava

Jedná se o editor schémat tiskových sestav. V tomto nastavení si lze vybrat, jaké sloupce se budou tisknout ve výstupní mřížce nebo sestavě. Lze využívat jednodušších i složitějších operací s daty ve sloupcích.

Záložka Definice sloupců

Je rozdělena na několik panelů:

Levý panel pro volbu polí (sloupců ve výstupních datech).

  • Levý seznam zobrazuje všechna nepoužitá pole (budoucí sloupce).
  • Pravý seznam zobrazuje již vybrané pole (sloupce) pro tisk nebo výpočet.
  • Tlačítka s šipkami vpravo a vlevo slouží pro přidávání nebo odebírání sloupců ze seznamů.
  • Tlačítky s šipkami nahoru a dolů lze měnit pořadí sloupců v pravém seznamu - ve stejném pořadí budou zobrazeny v závěrečné mřížce a na sestavě.

Panel pod pravým seznamem

  • Slouží pro přidání nebo smazání Volného sloupce (vhodný pro práci se skriptem) nebo sloupce s funkcí (funkci lze upravit přímým zápisem nebo tlačítkem Vzorec v panelu Nastavení sloupce.

Panel Nastavení sloupce

  • Týká se vždy pole (sloupce), který je vybrán v pravém seznamu.
  • Lze nastavit, zda se má sloupec vůbec Zobrazit (nebo zda slouží pouze pro další výpočty), jeho Název, Šírku, Zarovnání, Písmo,barvy. Od verze 4.6.0 je zobrazen i Původní název pro lepší orientaci v případě, že se rozhodnete sloupec přejmenovat.
  • Maska slouží jako šablona pro formátování dat sloupce (např. počet des. míst, formátování označení apod.)
  • Volba Skupinovací nastavuje, že tento sloupec bude použit pro seskupení výsledných dat (odpovídá sql příkazu GROUP BY). Na výstupu bude tedy méně řádků. U všech ostatních počítatelných sloupců (sloupců obsahujících čísla) však musí být použita Agregace. Výchozí Agregace je suma.
  • Volba Odstránkovat má smysl pouze, pokud není zvoleno Netisknout souhrn a zajistí, že nová skupina bude začínat na nové stránce.
  • Volba Netisknout souhrn potlačí tisk záhlaví skupiny a souhrnu skupiny. Na data ve výstupní mřížce nemá žádný vliv.
  • Volba Tisknout sumu má smysl pouze u počítatelných sloupců a zajistí zobrazení celkového součtu všech dat (řádků) na konci tiskové sestavy.
  • Roletka Filtr umožňuje dále filtrovat data na základě podmínek: menší, rovno, větší, obsahuje, nerovno, prázdný, neprázdný. Porovnává se hodnota tohoto sloupce buď s výslovně zadanou hodnotou v textovém poli napravo od roletky (pozor, rozlišuje se velikost písmen) nebo s hodnotou sloupce vybraného v roletce Hodnota sl.. Systém neumožňuje zvolit sloupec i hodnotu. Pomocí tohoto filtru lze tedy omezit počet výsledných řádků a to i na základě podmínek, které nejsou zadané v průvodci sestavy nebo je porovnat s hodnotou jiného sloupce v témže řádku. Upozornění: filtr v průvodci sestavy bude vždy rychlejší než tento.
Upozornění: filtr neumožňuje filtrovat text v přidaném sloupci typu volný sloupec. Pokud budeme např. ve skriptu chtít používat filtrování, je lepší využít sloupec typu Funkce
  • Volba po agregaci ovlivňuje, zda se bude filtr aplikovat data ještě před agregací (např. sumou) nebo zda se filtr použije až na výsledná agregovaná data.

Záložka Skript

Umožňuje podrobnější operace se sloupci např. podmínky. Zápis probíhá v jazyce Delphi.

V levé horní části je tlačítko Kontrola syntaxe.

Procedura GetFieldData je spouštěna vždy, když mřížka zobrazuje sloupec jehož název je uvedený v proměnné field. K tomuto účelu dobře poslouží Volný sloupec (viz Záložka Definice sloupců). Parametr value je hodnota, jakou bude mít tento sloupec po vykonání této procedury. Chceme-li tedy upravit výsledek sloupce, nastavíme v této proceduře parametr value.

Procedura GetFieldValue vloží do proměnné value hodnotu ze sloupce field. Tento sloupe cmusí být vybrán pro zpracování (umístěn v pravé části).


  • Následující příklad obsahuje volný sloupec Vyhovuje a běžné datové sloupce Naměřená hodnota, Minimum, Maximum:
procedure GetFieldData(const field: String; var value: Variant);
var
   dHodnota : variant;
   dLimit : variant;
begin
  if field = 'Vyhovuje' then begin
    GetFieldValue('Naměřená hodnota' , dHodnota);
    GetFieldValue('Minimum' , dLimit);
    If (dHodnota < dLimit ) then value := 'NE'
    else begin
      GetFieldValue('Maximum' , dLimit);
      If (dHodnota > dLimit ) then  value := 'NE'
      else value := 'ANO';
    end;
  end;
end;

  • Příklad na filtrování jen záznamů, které nemají ve sloupci "Název" na konci text XX. Vytvoříme nový sloupec typu Funkce s názevm "maXX", ale funkci nebudeme zadávat. Nastavíme na sloupec filtr = "0" a do záložky skripty přidáme:
procedure GetFieldData(const field: String; var value: Variant);
var
  sNazev : variant;
begin
  if field = 'maXX' then begin
    GetFieldValue('Název' , sNazev);
    sNazev := Trim(Uppercase(sNazev));
    if Copy(sNazev,Length(sNazev)-1 , 2) = 'XX' then
      value := 1
    else
      value := 0;
  end;
end;

  • Následující příklad zobrazuje místo dat 30.12.1899 a 30.12.2499 ve sloupci Datum realizace hodnotu 0. Silně nedoporučujeme nahrazovat hodnoty v systémovém sloupci, ale pro tyto účely je vytvořen volný sloupec s názvem Dat. realizace.
procedure GetFieldData(const field: String; var value: Variant);
var
  dat : variant;
begin
  if field = 'Dat. realizace' then begin
     GetFieldValue('Datum realizace',dat);
     if dat = EncodeDate(2499,12,30) then value := nil
     else if dat = 0.0 then value := nil;
  end;
end;

Poznámky:

Pro práci s textovými řetězci se musí používat apostrof ('). Tento však ve verzích starších než 4.6.0 nešlo zadat z klávesnice. V takovém případě použijte schránku (CTRL+C, CTRL+V).

Záložka Kontingenční tabulka

Do verze 4.7.26 přidána volba "Zobrazit v mřížce sloupec Data" (ve výchozím nastavení zatrhnuto) do formuláře pro úpravu schématu

Tato kategorie neobsahuje žádné stránky či soubory.