Как открыть День в Фискальном Принтере от OPOS

Как открыть День в Фискальном Принтере от OPOS?

Мой код не работает...

device = new OPOSFiscalPrinterClass();

device.Open("FiscPrinter");  //Opened succes
device.ClaimDevice(1000);    //Claimed success
device.DeviceEnabled = true; //Enabled success

if (device.DayOpened)
{
   device.PrintZReport();
}

device.FiscalReceiptType = (int)OPOSFiscalPrinterConstants.FPTR_RT_SALES;

device.BeginFiscalReceipt(true); //After that: ResultCode=114, ResultCodeExtended=221, PrinterState=2, DayOpened=false

device.PrintRecItem("Milk", 25.00M, 10000, 0, 25.00M, "");  
device.EndFiscalReceipt(false); //After that: Receipt cannot be closed, ResultCode=114, ResultCodeExtended=207

device.Release();
device.Close();

Попытка с документацией UnifiedPOS. Что не так?

3 ответа

Решение

Окей, фискальный принтер должен иметь оператора / пользователя, после чего вы можете использовать, например, BeginFiscalReceipt.

Чтобы завершить квитанцию, вам нужна команда промежуточных итогов и команда оплаты до окончания квитанции. например.

device.PrintRecSubtotal(25.00M);
device.PrintRecCash(25.00M);

ResultCodeExtended 207 = OPOS_EFPTR_WRONG_STATE: фискальный принтер в данный момент не находится в состоянии фискальной квитанции. Вы должны сделать промежуточный итог как

  device.PrintRecSubTotal(25.00M);
  device.PrintRecTotal(25.00M, 25.00M, 'P'); //Total = 25.00M, Payment = 25.00M

Ваш код также можно сделать, как показано ниже

 device.FiscalReceiptType = (int)OPOSFiscalPrinterConstants.FPTR_RT_SALES

или же

 device.FiscalReceiptType = 4; // FPTR_RT_SALES -> 4
Другие вопросы по тегам