|
|
(не показаны 4 промежуточные версии 2 участников) |
Строка 1: |
Строка 1: |
| ==Классы== | | ==Классы== |
− | [[ТМС:Кассир:Классы:TFR |'''TFR''' - класс для работы с ККМ]] | + | [[ТМС:Кассир:Классы:TFR |'''TFR''' - класс для работы с ККМ]] |
− | [[ТМС:Кассир:Классы:ChequeList |'''ChequeList''' - список активных чеков]] | + | [[ТМС:Кассир:Классы:ChequeList |'''ChequeList''' - список активных чеков]] |
− | [[ТМС:Кассир:Классы:ScriptRes |'''ScriptRes''' - для вывода результата работы скрипта]] | + | [[ТМС:Кассир:Классы:ScriptRes |'''ScriptRes''' - для вывода результата работы скрипта]] |
− | [[ТМС:Кассир:Классы:Barcode |'''Barcode''' - для работы со ШК и диск. картами]] | + | [[ТМС:Кассир:Классы:Barcode |'''Barcode''' - для работы со ШК и диск. картами]] |
− | [[ТМС:Кассир:Классы:TErrFinder |'''TErrFinder''' - класс для поиска ошибок в кассовых документах]] | + | [[ТМС:Кассир:Классы:TErrFinder |'''TErrFinder''' - класс для поиска ошибок в кассовых документах]] |
− | | + | |
− | ==Объекты==
| + | |
− | [[ТМС:Кассир:Global |'''Global''' - объект-глобальное хранилище элементов]]
| + | |
− | [[ТМС:Кассир:MsgBox |Константы, использующиеся при вызове MsgBox]]
| + | |
| | | |
| ==Прочие константы, переменные и подпрограммы== | | ==Прочие константы, переменные и подпрограммы== |
| + | [[ТМС:Кассир:Global |'''Global''' - объект-глобальное хранилище элементов]] |
| + | [[ТМС:Кассир:Application |'''Application''']] |
| + | [[ТМС:Кассир:MsgBox |'''MsgBox''' - обертка над Application.MessageBox]] |
| + | [[ТМС:Кассир:FB |'''Работа с базой данных''']] |
| + | [[ТМС:Кассир:myFormatString |'''myFormatString''' - Функция форматирования строки]] |
| + | [[ТМС:Кассир:SetLine |'''SetLine''' - Функции для работы с дисплеем покупателя]] |
| + | [[ТМС:Кассир:GetWeight |'''GetWeight''' - Функции для работы с весами]] |
| + | [[ТМС:Кассир:Tag |'''Работа с HTML окнами''']] |
| + | [[ТМС:Кассир:BarcodeText |'''BarcodeText''' - Функция для чтения ШК]] |
| + | [[ТМС:Кассир:DoReport |'''DoReport''' - Функция для работы с отчетами]] |
| + | [[ТМС:Кассир:Cheque |'''Функции для работы с чеками''']] |
| + | [[ТМС:Кассир:ManualDiscount |'''ManualDiscount''' - вызов формы выбора скидки/суммовой скидки]] |
| + | [[ТМС:Кассир:PayByCard |'''PayByCard''' - оплата банковской картой]] |
| + | [[ТМС:Кассир:SendKey |'''SendKey''' - нажатие клавиши]] |
| + | [[ТМС:Кассир:IsRegistered |'''IsRegistered''' - проверка регистрации БД]] |
| | | |
− | Application - объект Application
| + | ==Примеры ТМС== |
− | | + | [[ТМС:Кассир:Чтение/запись настроек кассира |'''Чтение/запись настроек кассира''' - Посмотреть код]] |
− | ====Пример:====
| + | [[ТМС:Кассир:Поддержка постоянно открытого окна отложенных чеков |'''Поддержка постоянно открытого окна отложенных чеков''' - Посмотреть код]] |
− | Application.MessageBox('Текст', 'Заголовок', 0); | + | |
− | | + | |
− | CurrFDB - ссылка на текущую базу данных (FIBPlus)
| + | |
− | CurrFRT - ссылка на постоянную читающую транзакцию текущей базы (FIBPlus)
| + | |
− | CurrDB - ссылка на текущую базу данных (IBX)
| + | |
− | CurrRT - ссылка на постоянную читающую транзакцию текущей базы (IBX)
| + | |
− | Base - ссылка на текущий датасет базы (TDataset)
| + | |
− | | + | |
− | ====Пример:====
| + | |
− | uses zkassa, DB;
| + | |
− | begin
| + | |
− | TagSetContent(fmMain.ewbFooter, 'partid_val', IntToStr(Base.FieldByName('part_id').AsInteger));
| + | |
− | end;
| + | |
− | | + | |
− | UserID - ID текущего пользователя
| + | |
− | SessionID - ID текущей смены
| + | |
− | CreateFRT - функция создает читающую транзакцию (FIBPlus)
| + | |
− | CreateFWT - функция создает пишущую транзакцию (FIBPlus)
| + | |
− | CreateRT - функция создает читающую транзакцию (IBX)
| + | |
− | CreateWT - функция создает пишущую транзакцию (IBX)
| + | |
− | | + | |
− | ====Пример (FIBPlus):====
| + | |
− | uses zkassa, fibplus;
| + | |
− | var fit: TpFIBTransaction;
| + | |
− | begin
| + | |
− | fit := CreateFWT(CurrFDB);
| + | |
− | fit.StartTransaction;
| + | |
− | ...
| + | |
− | fit.Commit;
| + | |
− | fit.Free;
| + | |
− | end;
| + | |
− | | + | |
− | ====Пример (IBX):====
| + | |
− | uses zkassa;
| + | |
− | var it: TIBTransaction;
| + | |
− | begin
| + | |
− | it := CreateWT(CurrDB);
| + | |
− | it.StartTransaction;
| + | |
− | ...
| + | |
− | it.Commit;
| + | |
− | it.Free;
| + | |
− | end;
| + | |
− | | + | |
− | myFormatString - функция форматирования строки
| + | |
− | Параметры:
| + | |
− | sText - строка слева/центр
| + | |
− | sTextRight - строка справа
| + | |
− | sPattern - символ заполнения пространства м/у лев. и прав. строками
| + | |
− | iLen - длина выходной строки
| + | |
− | iFormatType - тип форматирования: 0 - по центру (только лев.стр.), 1 - по лев. и прав. краям
| + | |
− | bCutLeft - обрезать слева, если больше, чем требуемая длина (иначе справа)
| + | |
− | | + | |
− | ====Пример:====
| + | |
− | myFormatString('ДОБРО ПОЖАЛОВАТЬ', '', '-', 20, 0, True); //результат: '--ДОБРО ПОЖАЛОВАТЬ--'
| + | |
− | myFormatString('123', '456', '.', 20, 1, True); //результат: '123..............456'
| + | |
− | | + | |
− | | + | |
− | MsgBox - обертка над Application.MessageBox
| + | |
− | Пример: if MsgBox('Продолжить?', 'Расчет', MB_OKCANCEL + MB_ICONQUESTION) = ID_CANCEL then Exit; | + | |
− | | + | |
− | SetLine - вывод информации на дисплей покупателя. При вызове данного метода все "отложенные"
| + | |
− | выводы информации на дисплей удаляются
| + | |
− | Параметры: | + | |
− | iBaseID - ID предприятия, на чей дисплей выводить информацию (дисплей должен быть настроен)
| + | |
− | sLine1 - 1-я строка информации (если sLine1 = #9, информация в строку 1 дисплея не выводится)
| + | |
− | sLine2 - 2-я строка информации (если sLine2 = #9, информация в строку 2 дисплея не выводится)
| + | |
− | iTimeout - таймаут для создания "отложенного" вывода, после которого снова вызывается функция SetLine
| + | |
− | с новыми значениями строк (например, для очистки табло). Если iTimeout = 0, повторного
| + | |
− | вызова не происходит
| + | |
− | sLine21 - 1-я строка информации при повторном вызове
| + | |
− | sLine22 - 2-я строка информации при повторном вызове
| + | |
− | Пример: SetLine(0, 'Привет,', 'мир!', 5000, '', ''); //выводит сообщение, через 5 секунд очищает табло
| + | |
− | SetLine(0, '', ''); //очищает табло
| + | |
− | | + | |
− | SetLineDelayed - "отложенный" вывод информации на дисплей покупателя
| + | |
− | iBaseID - ID предприятия, на чей дисплей выводить информацию
| + | |
− | sLine1 - 1-я строка информации (если sLine1 = #9, информация в строку 1 дисплея не выводится)
| + | |
− | sLine2 - 2-я строка информации (если sLine2 = #9, информация в строку 2 дисплея не выводится)
| + | |
− | iTimeout - таймаут вывода информации на дисплей покупателя
| + | |
− | | + | |
− | KillAllTimers - удалить все "отложенные" выводы на дисплей покупателя
| + | |
− | | + | |
− | GetWeight - получить вес товара (при наличии весов)
| + | |
− | iPartID - ID товара
| + | |
− | Пример: MsgBox(Format('Вес товара = %.3f', [GetWeight(iPartID)]), 'Вес товара', 0);
| + | |
− | | + | |
− | TagGetContent - получить содержимое тега по ID
| + | |
− | wb - контрол WebBrowser (инфо о чеке - fmMain.ewbInfo, подстрочник - fmMain.ewbFooter)
| + | |
− | sTagID - ID тега
| + | |
− | Пример: MsgBox(TagGetContent(fmMain.ewbInfo, 'fr_total'), 'Содержимое fr_total', 0); //получить значение блока FR_TOTAL
| + | |
− | | + | |
− | TagSetContent - установить содержимое тега по ID
| + | |
− | wb - контрол WebBrowser (инфо о чеке - fmMain.ewbInfo, подстрочник - fmMain.ewbFooter)
| + | |
− | sTagID - ID тега
| + | |
− | sContent - новое содержимое тега
| + | |
− | Пример: TagSetContent(fmMain.ewbInfo, 'fr_total', 'Чеков: ' + IntToStr(FR_CountCheques)); //установить значение блока FR_TOTAL
| + | |
− | | + | |
− | TagGetAttribute - получить содержимое аттрибута тега по ID
| + | |
− | wb - контрол WebBrowser (инфо о чеке - fmMain.ewbInfo, подстрочник - fmMain.ewbFooter)
| + | |
− | sTagID - ID тега
| + | |
− | sAttr - имя аттрибута
| + | |
− | Пример: MsgBox(TagGetAttribute(fmMain.ewbInfo, '_pict', 'src'), 'Адрес картинки тега IMG', 0); //получить значение аттрибута SRC
| + | |
− | | + | |
− | TagSetAttribute - установить содержимое аттрибута тега по ID
| + | |
− | wb - контрол WebBrowser (инфо о чеке - fmMain.ewbInfo, подстрочник - fmMain.ewbFooter)
| + | |
− | sTagID - ID тега
| + | |
− | sAttr - имя аттрибута
| + | |
− | sContent - новое содержимое аттрибута
| + | |
− | Пример: TagSetAttribute(fmMain.ewbInfo, '_pict', 'src', 'c:\picts\pict_123.bmp'); //установить значение аттрибута SRC
| + | |
− | | + | |
− | !!! ------------------- !!!
| + | |
− | ПРИМЕЧАНИЕ: в функциях TagSetContent, TagSetAttribute можно использовать макроподстановки вида ::<макроимя>[:<формат>], где:
| + | |
− | макроимя - может быть именем любого поля текущего SQL-запроса остатков, например SNAME, PRICE и т.д. (регистр не важен)
| + | |
− | формат - форматная строка, аналог параметра Format функции Format в Delphi (без лидирующего символа %)
| + | |
− |
| + | |
− | Пример: возьмем пример из описания функции TagSetAttribute (см. чуть выше):
| + | |
− | | + | |
− | TagSetAttribute(fmMain.ewbInfo, '_pict', 'src', 'c:\picts\pict_123.bmp');
| + | |
− | | + | |
− | Если в папке 'c:\picts\' содержатся файлы с изображениями товаров, и имена файлов картинок содержат PART_ID товара, т.е. имя
| + | |
− | файла имеет вид 'pict_<PART_ID>.bmp', то данный пример можно переписать с использованием макроподстановок следующим образом:
| + | |
− | | + | |
− | TagSetAttribute(fmMain.ewbInfo, '_pict', 'src', 'c:\picts\pict_::PART_ID.bmp');
| + | |
− | | + | |
− | PS: Макроподстановки также можно использовать в значениях блоков в HTML-дизайнере (дерево блоков справа),
| + | |
− | либо напрямую в тесте HTML-скрипта
| + | |
− | !!! ------------------- !!!
| + | |
− | | + | |
− | TagVisible - установить видимость блока контрола WebBrowser
| + | |
− | wb - контрол WebBrowser
| + | |
− | sTagID - ID блока, у которого меняется видимость
| + | |
− | bVisible - признак видимости
| + | |
− | Пример: TagVisible(fmMain.ewbInfo, 'fr_model', False); //скрыть блок FR_MODEL (информация о модели ККМ)
| + | |
− | | + | |
− | SetDocsAgent - установить контрагента активной очереди чеков
| + | |
− | iAgentID - ID агента активной очереди чеков
| + | |
− | | + | |
− | BarcodeText - свойство для чтения, возвращающее значение введенного штрихкода
| + | |
− | ПОМЕЧЕНО К УДАЛЕНИЮ, РЕКОМЕНДУЕТСЯ ВМЕСТО ЭТОГО ИСПОЛЬЗОВАТЬ КЛАСС Barcode
| + | |
− | Пример: ShowMessage('Введен штрихкод: ' + BarcodeText);
| + | |
− | | + | |
− | DoReport - работа с отчетами (просмотр/редактирование/печать)
| + | |
− | iReportID - ID отчета
| + | |
− | sParam - доп.параметры отчета (макроподстановка)
| + | |
− | ReportMode - тип вывода отчета: rmView - просмотр, rmDesign - редактирование, rmPrint - печать
| + | |
− | sPrinter - имя принтера для печати ('' - принтер по умолчанию)
| + | |
− | Пример: DoReport(12, 'compname=NICKY', rmPrint, '\\buhi\HP LaserJet5'); | + | |
− | | + | |
− | ManualDiscount - вызов формы выбора скидки/суммовой скидки
| + | |
− | IsRegistered - св-во, указывающее на наличие регистрации базы автоматизации
| + | |
− | | + | |
− | SendKey - посылает нажатие клавиши
| + | |
− | iKeyCode - код клавиши
| + | |
− | bCtrl - состояние клавиши Ctrl (True - нажата)
| + | |
− | bAlt - аналогично Alt
| + | |
− | bShift - аналогично Shift
| + | |
− | Пример: SendKey(VK_F5, False, True, False); //посылает нажатие сочетания Alt-F5
| + | |
− | | + | |
− | PayByCard - оплата банковской картой, возвращаемое значение: 0-ошибка, 1-успешно
| + | |
− | fSumm - сумма оплаты
| + | |
− | Пример: PayByCard(10.50); //провести списание по карте суммы 10.50
| + | |
− | | + | |
− | GetTrans - получить транзакцию для работы в ее рамках (нельзя стартовать, закрывать и откатывать такую транзакцию!)
| + | |
− | ВНИМАНИЕ! Транзакции типа TpFIBTransaction, т.е. из состава компонентов FibPlus, а не IBX! Для работы
| + | |
− | требуется подключить модуть FIBPlus
| + | |
− | iTransType - тип запрашиваемой транзакции
| + | |
− | Поддерживаемые типы транзакций:
| + | |
− | 0 (TRANS_CLOSECHEQUE) - транзакция при закрытии чека
| + | |
− | | + | |
− | Пример (после печати чека):
| + | |
− | uses zkassa, fibplus, classes, chequelist;
| + | |
− | var fiq: tpfibquery;
| + | |
− | begin
| + | |
− | fiq := tpfibquery.create(nil);
| + | |
− | fiq.Transaction := GetTrans(0);
| + | |
− | fiq.SQL.Text := 'update docs set device_num = ''трали-вали'' where id = ' + IntToStr(chequelist.Active.ID);
| + | |
− | fiq.ExecQuery;
| + | |
− | fiq.Free;
| + | |
− | end;
| + | |
− | | + | |
− | OpenDefByID - открыть отложенный чек по ID документа
| + | |
− | iDocID - ID документа
| + | |
− | | + | |
− | Add2Cheque - добавить позицию в чек по PartID
| + | |
− | iPartID - ID позиции
| + | |
− | fQuant - добавляемое количество
| + | |
− | | + | |
− | Пример:
| + | |
− | uses zkassa;
| + | |
− | var i: integer;
| + | |
− | begin
| + | |
− | for i := 0 to 10 do
| + | |
− | try
| + | |
− | Add2Cheque(127 + i, i + 1);
| + | |
− | except
| + | |
− | end;
| + | |
− | end;
| + | |