Přeskočit na hlavní obsah

Pivot table v Supercalcu 3

Budu psát článek, který popisuje tvorbu kontingenčních tabulek ve starém tabulkovém procesoru Supercalc 3. Doba, kdy Německo bylo ještě rozdělené a naopak Československo byl jeden stát. Windows bylo ještě slovo téměř neznámé a vše se odehrávalo na počítačích s názvem XT, někdy i AT. Pokud byl v počítači pevný disk, byla to spíš výjimka. A tak se stalo, že jeden z mých zákazníků přišel s požadavkem, abych mu udělal součet údajů podle dvou hodnot. Ale ne vždy to musel být přímo součet. Jednalo se také o průměr nebo minimální hodnotu. A protože svoji agendu řešil právě v tom Supercalcu, řešení na sebe nedalo dlouho čekat. Odborně se tomu říká kontingenční tabulka, kteréžto pojmenování zavedl až Excel 5 a nebo také Pivot table. Ale to jsem tenkrát ještě nevěděl.

Nápad je tak úžasně jednoduchý, že mě to až samotného překvapilo. Nějakou část udělám manuálně, ten zbytek už udělá stroj. A ten zbytek je vlastně jen opakování téhož, čili výběru z databáze, ovšem výsledek se kopíruje pokaždé na jiné místo. V podstatě je to křížová tabulka, jejíž záhlaví v řádku a ve sloupci udává výběrová kritéria a průsečík pak obsahuje výsledek, který tato kritéria splňuje. Opravdu jednoduché jak facka. Manuálně jsem si vytvořil tři oblasti. Oblast dat, oblast kritérií a výstupní blok, což je základ pro veškeré databázové operace v tabulkových procesorech. Následuje ještě poslední oblast, a to je vzorec, který z výstupního bloku vypočítá výsledek. 

A teď k té automatizaci. Supercalc 3 2.10 podporuje makra XQT. V XQT souboru se mohou objevit v podstatě jen stisky kláves. A přesně tohle bude řešit můj generátor, který jsem napsal v Turbo Pascalu. Celý tento generátor má na vstupu tyto položky:

Start (počátek), tedy souřadnici, kde začínají řádky a sloupce tabulky, do které se budou ukládat hodnoty. Z tohoto bodu se vždy vychází směrem vpravo a dolů. Dále je to počet řádků a sloupců v tabulce a následně buňky, kde jsou uložena kritéria. Poslední položka obsahuje vzorec, který z výstupní oblasti vypočítá výsledek. No a ten se jako hodnota následně uloží do výsledné tabulky do průsečíku kritérií. No a celý tento proces probíhá tolikrát, když počet řádků vynásobím počtem sloupců.

Jedná se tedy o to, že v makru nakopíruju Start + pravá (sloupec) do prvního kritéria,  + dolů (řádek) do druhého kritéria a spustím databázový dotaz, což v Supercaclu 3 obnáší následující: //Data, Extract, Remain !. Tímto se pro se pro daná kritéria vytáhnou požadované hodnoty a ty už pak jenom nakopíruju na patřičné místo. Rychlé a okamžité. Někdo by mohl namítnout, proč jsem nepoužil databázové funkce, které nabízí třeba Lotus 1-2-3, tedy @DSUM, @DAVG. Z jednoduchého důvodu. Supercalc 3 tyto funkce ještě nemá. Ty zvládla až následující verze, tedy čtyřka. Ale tam už bylo možno provozovat klasická makra, takže logika se nemusela řešit mimo tabulkový procesor. 

Jednoduché řešení, výsledek téměř okamžitý, a pokud se tabulka změnila, stačilo jen v generátoru změnit pár hodnot a nové makro bylo možno použít. Snad jen vysvětlivka k tomu vykřičníku ve výběrovém příkazu. Vykřičník znamená přepočet tabulky, což v Lotusu obstarává klávesa F9.

Přikládám pár obrázků. První obsahuje obrazovku generátoru a druhý už výslednou tabulku. Ještě zmíním druhou variantu, kterou jsem už nakousl, a to jsou databázové funkce, které ve trojkové verzi Supercalcu ještě nejsou. Pokud bych je použil následně ve verzi 4, pak bych musel vytvářet složitě tabulku kritérií a tabulka by byla přeplněna vzorci a její přepočet na na XT počítačích by nebyl rychlý. Spíš naopak. Při rozsáhlých tabulkách by změna jedné hodnoty celý program zabrzdila. A při velkých tabulkách a omezené operační paměti (mnohdy 512 KB) téměř nemyslitelné řešení. A tak jsem zvolil to, co jsem zvolil a zákazník byl naprosto spokojen. A o tom to celé je.

Takže tohle byla jen taková malá vzpomínka na dobu, kdy jsem s počítači PC teprve začínal. Pracuji s nimi doposud a vlastně Supercalc 3 byl můj první tabulkový procesor. A pořád ho mám uložený ve svém archívu. Pokud by si někdo chtěl pohrát, tak na www.vetusware.com si tenhle tabulkový skvost můžete stáhnout. Ale bez emulátoru ho zřejmě nespustíte.


Komentáře

Populární příspěvky z tohoto blogu

Najdi, ulož, oprav, generuj

Opět se ponořím do dávné minulosti. Podle údajů v archívu se jednalo o rok 1994. To už je opravdu nějakej pátek. A protože v té době kraloval DOS a snad i Windows 3.11, čas od času jsem používal na nějaké menší obrázky Z-Soft Paint Brush . Pamětníci jistě vědí, o čem hovořím. Na podobném principu následně i Microsoft vytvořil program Malování. Ale já používal tehdy Paint Brush. Neměl jsem k němu výhrady, snad jen, že nepodporoval české znaky. A protože absence Češtiny mi vadila čím dál víc, rozhodl jsem se s tím něco udělat. Při pohledu do adresáře jsem pochopil, že fonty jsou uložené v souborech, které mají příponu FNT a jsou rastrové. To mi samozřejmě nedošlo hned, ale musel jsem chvíli do těchto souborů nahlížet. A pak mě napadlo řešení. Co kdybych si napsal svůj prográmek, který umí obsah tohoto souboru přepsat tak, aby se znaková sada změnila na to, co chci já? A v tom okamžiku mi došlo, že vlastně nejde jen o Paint Brush, ale že bych rád počeštil i jiné programy. A ta...

Jak hacknout Pagemaker?

Opět píšu a důvod bude následující. Zase bych rád něco napsal na blog. O čem to bude tentokrát? Opět půjde o jeden program, který jsem ale nenapsal já. Je to program publikační a jmenuje se Pagemaker 5. Ten, kdo s ním někdy přišel do styku, jistě tuší, o čem tohle povídání bude. Ano, program měl zabudovanou ochranu proti neoprávněnému kopírování. Pokud si zpětně po letech vybavím, bylo možné z disket udělat maximálně tři instalace na tři různé stroje. Pokud jsem chtěl čtvrtý stroj, jedna z již existujících instalací musela být odebrána. Ano, tak to aspoň stálo v manuálu. Tuto informaci jsem bral jako fakt, protože ve firmě se tento software měl dávat pouze na dva stroje. Třetí instalace pořád zbývala. Ale vlastně než celý proces začal, zkusil jsem si první pokusnou instalaci na svůj stroj s tím, že ji později odeberu, pokud by bylo potřeba instalovat ještě někam jinam. Jen zmíním, že Pagemaker 5 se instaloval z disket 3,5" a deinstalace se rovněž prováděla z disket. Pa...

Kontextové menu v DOSu

Podívejme se do listopadu roku 1993, kdy jsem začal tvořit zajímavý prográmek, který řešil jednu pomocnou záležitost při práci se soubory. V té době jsem pracoval ve Volkov Commanderu. A při klepnutí na soubor, který se dal zpracovat několika způsoby mi právě tato možnost chyběla. Proto jsem se rozhodl napsat cosi, co by tenhle problém vyřešilo. Program měl být podobný tomu, co nabízely Norton Utility pod názvem BE.EXE, tedy Batch Enhancer . A tak jsem začal programovat. První verze vlastně pracovala pouze pomocí klávesnice, do druhé jsem zapojil i myš, což BE.EXE neměl.  Myš jsem přidal především z lenosti. Když jsem myší dvakrát klikl na daný soubor a menu se otevřelo, už jsem nechtěl ruku z myši sundávat a šmátrat po klávesnici. Ta myš se nastavila na slovo Volba, kterým se MENU2A ohlásil a čekal na vstup. Pak už stačil jen minimální pohyb nahoru. Vybrat volbu a stisknout levé tlačítko. Takhle si představuju user friendly aplikaci. Teď už budu popisovat j...