Funkčnost sestava

Funkčnost Sestava umožňuje uživateli na základě dotazu do databáze naplnit data do aplikace Excel a vytvořit z nich tiskovou sestavu s mezisoučty. Sestava automaticky reaguje na změnu počtu řádků. Do sestavy je možné vkládat funkce aplikace Excel a ty budou následně rozkopírovány do všech řádků sestavy.

EasyTab disponuje funkčností „Pomocník“. Tento pomocník pomůže s nastavením argumentů funkčnosti. Pomocník použije oblast buněk A1:B15 k vložení a čtení argumentů této funkčnosti.

Funkčnost obsahuje dvě definiční oblasti:

  • Definice recordsetu jež obsahuje definici připojení k databázi a vlastní dotaz do databáze
  • Definice sestavy, jež obsahuje definici umístění dat recordsetu, součtů, vkládaných textů a vkládaných řádků

Sestavu a případně její argumenty je nutné vždy umístit na čistý list.

Definice recordsetu.

Vytvoření recordsetu se definuje propojovacím řetězcem a dotazem do databáze.

·         Propojovací řetěz – Connectionstring na databázi ze které se budou data načítat, lze použít (buňka B1):

    • kompletní cestu k databázi MS Access,
      • Pokud nevyplníte, bude použita databáze Data.mdb nacházející se v aktuálním adresáři.
      • Pokud vyplníte jen název (Data.mdb) použije se tento název databáze v aktuálním adresáři
    • pro připojení k datům VisualFoxPro použijte ConnesctionString v tomto tvaru:
      • ODBC;DSN=Visual;FoxPro;Tables;SourceDB=?;Database=?;SourceType=DBF; Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes; 
      • přičemž nahraďte otazníky cestou k adresáři ve kterém se data nachází
    • pro připojení k datům SQL Serveru použijte ConnectionString v tomto tvaru:
      • ODBC;DRIVER=SQL;Server;SERVER=?;DATABASE=?; TrustedConnection=yes;UID=?;PWD=? 
      • přičemž nahraďte otazníky odpovídajícími hodnotami

·         Dotaz do databáze (buňka B2):

    • Klasický SQL dotaz do databaze.
    • U dotazů do SQL Serveru doporučuji používat klausuli WITH NOLOCK
    • Pokud dotaz obsahuje některé z níže uvedených slov, tak nebude proveden!
      • INSERT, UPDATE, DELETE, DROP, CREATE, ALTER, GRANT, REVOKE, RENAME, SAVEPOINT
    • V příkladu je použit křížový dotaz nad tabulkou dat HISTORIE_V

TRANSFORM SUM(CELKEM) AS [CASTKA]
SELECT (RADEK_V & ‘ – ‘ & NAZEV_CZ) AS [RADEK],”‘” & UCET AS [CISLO UCTU],
NAZEV AS [NAZEV_UCTU], RADEK_V AS [PORADI], LEFT(UCET, 3) AS [SYNTETIKA]
FROM HISTORIE_V
WHERE UCET <> ‘SOUCET’
GROUP BY RADEK_V, NAZEV_CZ, “‘” & UCET, NAZEV, LEFT(UCET, 3)
ORDER BY RADEK_V, UCET
PIVOT OBD_MH

 Definice sestavy:

Argumenty definice se nachází v oblasti A3:B15.

Popis významu argumentů:

  • Sestavu umístit na list – Název listu, na kterém se má sestava vytvořit. Pokud nevyplníte, sestava se vygeneruje na aktuálním listu.
  • První řádek seznamu – číslo řádku, od kterého, včetně se budou načítat data. Hlavička sestavy se bude umísťovat do řádku nad první řádek seznamu. Hlavička sestavy se nenačítá automaticky, uživatel si může názvy sloupců definovat jinak, než jsou názvy polí recordsetu. Aktualizace sestavy nepřepíše hlavičku sestavy
  • Funkce ExC_Seznam() – pokud je Propojovací řetěz do databáze správný a Dotaz do databáze také, tak funkce vrátí počet záznamů recordsetu. Pravé tlačítko myši a Sestava / Načtení seznamu sloupců  vygeneruje seznam názvů vrácených polí a tento seznam umístí do buněk vpravo od funkce.
  • Číslo sloupce umístění pole – pod jednotlivými názvy polí definuje, zda a do jakého čísla sloupce se budou data pole recordsetu načítat. Na obrázku je vidět že pole SYNTETIKA se načítat nebude, CISLO_UCTU se bude načítat do sloupce B – sloupec číslo 2.
  • Pokud dojde ke změně tak součet – definuje, že se vygeneruje mezisoučet, pokud dojde ke změně hodnoty sloupce. V příkladu je vidět, že se vygeneruje součet v případě, že se změní hodnota ve sloupci RADEK. Z dotazu je vidět, že se recordsetu řadí vzestupně dle sloupce RADEK. Dále se vygeneruje součet v momentě, kdy dojde ke změně ve sloupci SYNTETIKA a také vidíme, že řazení v druhém pořadí se provádí dle čísla účtu (pole UCET).
  • Při součtu prázdný řádek před? – zda se má před řádek mezisoučtu vložit prázdný řádek
  • Při součtu vložit tento prázdný text – vlastní text, který bude při mezisoučtu vložen
  • Vlastní text vložit do sloupce – číslo sloupce, do kterého se bude vlastní text vkládat
  • Při součtu převzít text z pole – Převzatý text, který bude při mezisoučtu vložen
  • Převzatý text vložit do sloupce – číslo sloupce, do kterého se bude převzatý text vkládat
  • Při součtu převzít hodnotu z pole – hodnoty mezisoučtů, které se budou do řádku mezisoučtů počítat. Čísla jednotlivých sloupců jsou odděleny svislou čárou.
  • Převzatou hodnotu umístit do sloupce – čísla sloupců, do kterých se budou převzaté hodnoty z definice výše vkládat.  
  • Při součtu prázdný řádek za – definuje, zda se za mezisoučet vloží prázdný řádek
  • Na obrázku je názorně ukázáno použití jednotlivých argumentů při sestavení tiskové sestavy. Formátování oblasti k tisku se provádí prostředky běžnými pro Excel. Jakož i případné opakování hlavičky sestavy, číslování stránek apod.

Formátování

Formátování grafického vzhledu provádějte s využitím podmíněného formátování, tak jak je naznačeno na obrázku níže. (1. a 2. pravidlo zvýrazňují jednotlivé mezisoučty a podtrhávají je. 3. pravidlo skrývá stejné hodnoty ve sloupci A, nastavuje barvu pozadí a písma na bílou barvu)

Kontextová nabídka

Nabídka k práci se sestavou. Po kliknutí pravého tlačítka myši se zobrazí nabídka EasyTab na tvorbu sestavy.

Nabídka Sestava obsahuje:

  • Pomocník – pomůže se sestavením argumentů sestavy a vytvoří příklad použití
  • Načtení seznamu sloupců – načte seznam sloupců recordsetu
  • Sestavení sestavy – provede smazání dat a sestaví znovu sestavu dle zadaných argumentů