Добрый день
Приходится делать интеграцию с кассой от производителя Атол (приходится)) потому как они сворачивают поддержку "старого" драйвера, где всё работает как часики)) эххх).
Вопрос такой, я получаю массив в виде "PSafeArray" из драйвера ККТ Атол и этот массив нужно передать в этот же драйвер в виде OleVariant.
var
date : TDateTime;
SafeArrayCorrectionInfo: PSafeArray;
CorrectionInfo : Variant;
begin
date := StrToDate('02.01.2018');
FDriverATOL.setParam(1177, 'Согласованная коррекция');
FDriverATOL.setParam(1178, date);
FDriverATOL.setParam(1179, '<без номера>');
FDriverATOL.utilFormTlv;
SafeArrayCorrectionInfo := FDriverATOL.getParamByteArray(FDriverATOL.LIBFPTR_PARAM_TAG_VALUE);
// Могу сказать одно, нужно передать собранный Tlv одним параметром, видимо
// в драйвере предусмотрели функцию, которая это всё дело облегчает "FDriverATOL.getParamByteArray"
// т.е. 3 разных параметра собираем в один Tlv
// Возвращается в PSafeArray
// Далее необходимо собранный параметр передать в драйвер
FDriverATOL.setParam(1174, SafeArrayCorrectionInfo);
// Но тут проблема, в FDriverATOL.setParam передаются только как OleVariant.. не совпадение типов((
Получается мне необходимо PSafeArray как то преобразовать в Variant.
Такое возможно?
В тех. поддержке Атол похоже не могут ответить на данный вопрос (жду пол дня у моря погоды), возможно тут ответ найдётся?!
Заранее спасибо!