Vario doplňky

Úvod

Na rozdíl od "menu" doplňků se Vario doplňky zavádějí při spuštění Varia. Vario při tom předá doplňku odkaz na objekt VarioEvents. Doplněk potom může reagovat na události, které na tomto objektu vznikají při běhu Varia. Díky tomu mohou vývojáři vytvářet aplikace, které reagují na změny za běhu Varia bez toho, že by je uživatel musel vyvolat příkazem menu nebo klávesovou zkratkou.

Vytvoření aplikace doplňku

 

  • Vytvořit databázi *.mda (zkopírujte vzorový soubor MujVarioAddIn.mda)

Poznámka: veškeré odkazy na název v tomto dokumentu MujVarioAddIn.mda a Můj Vario Add-in nahraďte názvem vašeho doplňku.

Systémová tabulka UsysRegInfo.

 

  • Tato tabulka je povinná, obsahuje data pro zaregistrování doplňku.
  • Hotovou tabulku naleznete ve vzorovém doplňku MujVarioAddIn.mda.

Pozor: Tabulka je systémová. Pro její zobrazení musíte zvolit v nastavení možností Accessu volbu Zobrazit skryté a systémové objekty.

Struktura tabulky UsysRegInfo

Subkey

Type ValName Value
HKEY_CURRENT_ACCESS_PROFILE\Vario Add-Ins\Můj Vario Add-in 1 Library |ACCDIR\MujVarioAddIn.mda

 

  • Do sloupce subkey zadáte název, který udává název doplňku po instalaci a cestu v registru, kde Můj Vario Add-in je název klíče registru.
  • Databáze aplikace musí mít extenzi .mda.

Doplněk musí obsahovat modul (standardní moudul kódu) s funkcí LoadEvents, která má jeden povinný parametr typu VarioEvents. Název funkce je povinný. Tuto funkci volá Vario při spuštění (pro všechny Vario doplňky nainstalované na počítači). Jejím voláním se zavede doplněk a předá se mu odkaz na objekt VarioEvents. Doplněk potom musí obsahovat nějaký objekt jenž bude zpracovávat jednu nebo více událostí, které vznikají na objektu VarioEvents za běhu Varia.

Function LoadEvents(VarioEvents As VarioEvents) As Boolean
    Set T = New TestClass
    T.Init VarioEvents
End Function

Princip: Doplněk obsahuje třídu TestClass. Při spuštění funkce LoadEvent se vytvoří nová instance této třídy a přiřadí se objektu T, který je deklarován na úrovni modulu doplňku. Třídě TestClass se předá odkaz na objekt VarioEvents. TestClass obsahuje kód, který zpracovává události vznikající na objektu VarioEvents.

Kód třídy TestClass může vypadat například takto:

Dim WithEvents Vario As VarioEvents
Sub Init(VarioEvents As VarioEvents)
    Set Vario = VarioEvents
End Sub
Private Sub Vario_PoAktivaciAgendy(Agenda As String)
    'Zpracování události PoAktivaciAgendy - například přidání vlastní položky do menu
End Sub

Kód naleznete v příkladu MujVarioAddIn.mda.

Nainstalování doplňku

 

  • Příkazem menu Nástroje/ Doplňky/ Správce doplňků otevřete Správce doplňků.
  • Tlačítkem Nainstalovat doplněk provedete instalaci.
  • Zavřete Správce doplňků.
  • Musíte restartovat Vario - doplněk se zavede při spuštění.

Programování kódu doplňku

Pro vývoj platí stejné zásady jako pro tvorbu "menu" doplňků. Aby jste mohli zpracovávat události musíte mít odkaz na knihovnu Vario.mda (Vario 11, vydání 20040105 a novější), která obsahuje deklaraci třídy VarioEvents.

 

Přehled událostí

Událost Popis
PriStartuVaria() Volá se jednou, při spuštění Varia. Ještě před otevřením výchozí agendy. Pozor: v tomto okamžiku ještě nejsou aktivní všechny objekty.
PriUkonceniVaria() Volá se jednou při ukončení Varia. Pozor při této události nelze volat funkce Varia, protože objekty již nemusí být platné.
PoStartuModulu(Modul As String) Po přechodu do jiného modulu.
PriUkonceniModulu(Modul As String) Při zavření modulu při přechodu do jiného modulu nebo ukončení Varia.
PriOtevreniAgendy(Agenda As String) Při otevření tabulky agendy.
PoAktivaciAgendy(Agenda As String) Po otevření tabulky agendy nebo po přechodu mezi otevřenými agendami (po nastavení třetího menu).
PoDeaktivaciAgendy(Agenda As String) Po opuštění tabulky agendy (po deaktivaci třetího menu).
PoAktualizaciPrimarnihoKlice(Agenda As String, PuvodniPrimarniKlic As String, NovyPrimarniKlic As String) Pokud uživatel přepíše identifikátor záznamu v detailu záznamu. Vhodné například pro synchronizaci záznamů ve vlastních datech.
PoZalozeniZaznamu(Agenda As String, Kniha As String, PrimarniKlic As String) Po založení záznamu do knihy, před jeho otevřením v detailu.
PoUpravachZaznamu(Agenda As String, Kniha As String, PrimarniKlic As String) Při zavírání detailu záznamu pokud byl upraven.
PriOtevreniZaznamu(Agenda As String, Kniha As String, PrimarniKlic As String) Při otevření záznamu v detailu.
PoOdstraneniZaznamu(Agenda As String, Kniha As String, PrimarniKlic As String) Při zavření detailu záznamu, pokud byl záznam odstraněn.
PoVlozeniFirmyDoDokladu(FormularDoklad As Form) Po vložení firmy do detailu dokladu.
PoZmeneStavuDokladu(FormularDoklad As Form) Po aktualizaci pole Stav v detailu dokladu (karta Obecné).
PoVlozeniProduktuDoDokladu(FormularPolozkaDokladu As Form) Po vložení produktu do položky dokladu. Nevyvolá se vložením prostřednictvím okna Produkt a sklad.
PoVlozeniSkladuDoDokladu(FormularPolozkaDokladu As Form) Po výběru skladu v položce dokladu. Nevyvolá se prostřednictvím okna Produkt a sklad.
PoUpravachPolozkyDokladu(FormularPolozkaDokladu As Form) Po uložení úprav položky doklad v detailu dokladu.
PriVlozeniKoduProdejny(FormularProdejna As Form, Kod As String) Při při sejmutí čár. kódu (nebo zadání kód u z klávesnice) do Prodejny.
PriVlozeniProduktuProdejny(FormularProdejna As Form, Polozka As Object) Při vložení produtku z katalogu Varia do Prodejny.
PriVlozeniFirmyProdejny(FormularProdejna As Form, Firma As String) Poté co je sejmut kód firmy, před tím než se zobrazí se firma v informačním okně.

 

Přehled nových událostí

V objektu VarioEvents přibyly nové události:

PredVracenimProduktu(CisloDokladu As String, PolozkaDokladu As Integer, Produkt As String, Sklad As String, Cancel As Boolean)

PoVraceniProduktu(CisloSkladovehoDokladu As String, PolozkaSkladovehoDokladu As Integer, Produkt As String, Sklad As String)

PredUhradouDokladu(CisloDokladuUhrady As String, PolozkaDokladuUhrady As Integer, CisloHrazenehoDokladu As String, Cancel As Boolean)

PoUhradeDokladu(CisloDokladuUhrady As String, PolozkaDokladuUhrady As Integer, CisloHrazenehoDokladu As String)

PredVracenimUhradyDokladu(CisloDokladuUhrady As String, PolozkaDokladuUhrady As Integer, CisloHrazenehoDokladu As String, Cancel As Boolean)

PoVraceniUhradyDokladu(CisloDokladuUhrady As String, PolozkaDokladuUhrady As Integer, CisloHrazenehoDokladu As String)

 

 

Obecná událost 

[od vydání 20080812]
V objektu VarioEvents je nová událost ObecnaUdalost. Událost má tři parametry Nazev, Data, Cancel.
Nazev - [string] identifikuje událost
Data - [variant] předává data
Cancel - [boolean] ukončuje funci ve které je událost vyvolána

.ObecnaUdalost "SkladovyDokladKFakture", Data, Cancel

SkladovyDokladKFakture - Událost je vyvolána z funkce toSkladovyDokladKFakture po výběru dokladů.
Data - array(0) - kolekce dokladu
Cancel ruší vystavení skladového dokladu

.ObecnaUdalost "FakturovatZakazky", Data, Cancel

FakturovatZakazky - Událost je vyvolána z funkce toFakturovatZakazky po výběru zakázek.
Data - array(0) - kolekce zakázek
Cancel ruší vystavení fakturace zakazek