Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Většina aplikací typu point-of-sale bude používat pokladní zásuvku pro finanční transakce. Vývojáři objektů služby mohou použít třídu CashDrawerBaseMicrosoft Point of Service pro .NET (POS pro .NET) k snadné implementaci objektu služby CashDrawer Kompatibilní bod služby (UnifiedPOS).
Možnosti
Všechny objekty služby CashDrawer musí podporovat minimálně schopnost otevřít zásuvku. To se provádí implementací abstraktní metody CashDrawerBase.OpenDrawerImpl ve třídě Service Object.
Objekt služby může být také schopen určit, zda je zásuvka hotovosti otevřená nebo ne. Pokud objekt služby tuto funkci má, měl by nastavit CapStatus vlastnost true. Pokud capStatus je true, aplikace mohou zkoumat stav zařízení pomocí DrawerOpened vlastnost. Pokud capStatus není nastavena, bude ZásuvkaOpened vždy nastavena na false a všechny pokusy o jeho nastavení na true vygenerují výjimku.
Pokud je hodnota CapStatus nastavena na hodnotu true, objekt služby musí aktualizovat Vlastnost DrawerOpened . Měli byste to provést v implementaci objektu služby OpenDrawerImpl metoda. Vlákno na pozadí monitorované stav zařízení může také nastavit Vlastnost DrawerOpened .
Události CashDrawer
Pokud Service Object má nastaven CapStatus vlastnost true, CashDrawerBasic.DrawerOpened odešle StatusUpdateEvent do aplikace.
V závislosti na zařízení pokladny a implementaci objektu služby může objekt služby potřebovat samostatné vlákno pro monitorování stavu hardwaru a asynchronní hlášení všech změn. To by bylo nutné například v případě, že operátor ručně otevře zásuvku hotovosti a aplikace musí být oznámena.
Objekt služby CashDrawer může také odeslat DirectIOEvent aplikaci. DirectIOEvent se používá k odesílání dat do aplikace, která je specifická pro implementaci Service Object, a proto může být nekompatibilní s některými aplikacemi. Další informace najdete v tématu Vstup a události zařízení.
Sdílení zařízení
Hotovostní zásuvka je sdíletelné zařízení. Více aplikací bude moct otevřít, povolit a přistupovat ke všem jeho vlastnostem a metodám. Jakmile však aplikace deklaruje zařízení, pouze tato aplikace může volat CashDrawerBase.OpenDrawer nebo CashDrawerBase.WaitForDrawerClose. PosException s ErrorCode.Claimed bude vyvolán, pokud se jiné aplikace pokusí volat tyto metody.
Pokud zařízení otevřelo a povolilo více aplikací, obdrží každá aplikace všechny události odeslané objektem služby.
Kód nezbytný pro podporu této funkce je implementován v POS pro .NET CashDrawerBase třídy.
Více zásobníků hotovosti
K počítači je možné připojit více než jednu zásuvku hotovosti a použít stejný hardwarový port. V takových situacích může objekt služby CashDrawer vědět, ke které pokladně zásuvka není výslovně připojena. Pokud objekt služby může rozlišit, ke kterému zařízení pokladny je připojeno, měl by nastavit CapStatusMultiDrawerDetect vlastnost true. Hodnota této vlastnosti ovlivní chování DrawerOpened vlastnost a WaitForDrawerClose metoda.
Pokud je CapStatusMultiDrawerDetect nastavena na false, pak hodnota DrawerOpened true označuje, že alespoň jedna zásuvka je otevřená. Aplikace nemůže určit, zda je otevřená nějaká zásuvka.
Pokud capStatusMultiDrawerDetect je nastavena na false, metoda WaitForDrawerClose čeká na všechny otevřené zásuvky hotovosti, které mají být uzavřeny před návratem do aplikace.