Если можно скиньте пример.

Раздел для обсуждения программного обеспечения КБ по ККМ Меркурий.
Ответить
Аватара пользователя
ma1oyby
Сообщения: 2
Зарегистрирован: 23 сен 2014, 16:39

Если можно скиньте пример.

Сообщение ma1oyby »

Доброго времени суток. Приобрел фискальный регистратор "Гепард-НТС МФУ" в белорусси. Вот хочу написать небольшую програмку под него ( в универе учил Delphi), можно скинуть примерчик как с ним работать. Я установил ваш драйвер и подключился к нему с помощью FR Tools, хочу завтавить его печатать чеки, но пока не получается. Если возможно скиньте пример как к нему подключиться и заставить печатать чеки. Заранее благодарю.
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Если можно скиньте пример.

Сообщение slan »

К cожалению Delphi не знаю, могу накидать на Builder C++
Аватара пользователя
ma1oyby
Сообщения: 2
Зарегистрирован: 23 сен 2014, 16:39

Re: Если можно скиньте пример.

Сообщение ma1oyby »

slan писал(а):К cожалению Delphi не знаю, могу накидать на Builder C++
Если не сложно скиньте пример как подключиться и как распечатать ценник на этом устройстве на майл ma1oyby@yahoo.com
Аватара пользователя
slan
Сообщения: 1157
Зарегистрирован: 18 фев 2011, 11:36
Откуда: Курск

Re: Если можно скиньте пример.

Сообщение slan »

Зачем же на почту, Вы же обратились на форум, сюда и напишу. Да и возможно другим участникам форума будет интересно

Код: Выделить всё

Variant MSK;
MSK = CreateOleObject(L"MercuryCom.FPDrv1C2");

SAFEARRAY *pArray = 0;
pArray = SafeArrayCreateVector(VT_VARIANT, 0, 6);
Variant *pData = 0;
SafeArrayAccessData(pArray, (void**)&pData);
pData[0] = 4;		                   //порт
pData[1] = 57600;                       //скорость
pData[2] = WideString(L"0000");  //пароль
pData[3] = 1;                              //секция для наличных
pData[4] = true;                          //печатать ли налоги
pData[5] = 11;                            //протокол
SafeArrayUnaccessData(pArray);

VARIANT_BOOL result;                                                    
WideString devID = "", err_descr = "";
long idErr;
result = MSK.OleFunction(L"Подключить", pArray, &devID);
if(result != VARIANT_TRUE){
   idErr = MSK.OleFunction(L"ПолучитьОшибку", &err_descr);
}

WideString wpass = L"9999";
MSK.OlePropertySet(L"ПарольКассира", wpass.c_bstr());   //устанавливаем пароль кассира, он предварительно должен быть запрограммирован в ФР (через FRTools либо метод УстановитьПароль)

MSK.OlePropertySet(L"КодТовара", 10);     //устанавливаем код товара
WideString wsize = L"шт";
MSK.OlePropertySet(L"ЕдиницаИзмерения", wsize.c_bstr());   //устанавливаем единицу измерения

long checkNum, shiftNum;
result = MSK.OleFunction(L"ОткрытьЧек", devID.c_bstr(),
                    VARIANT_TRUE,                      //чек фискальный
                    VARIANT_FALSE,                    //не возврат
		    VARIANT_FALSE,                    //не аннулирование 
                    &checkNum, &shiftNum);
if(result != VARIANT_TRUE){
   idErr = MSK.OleFunction(L"ПолучитьОшибку", &err_descr);
}
else{
    WideString wname= L"Стульчик раскладной";
    result = MSK.OleFunction(L"НапечататьФискСтроку", devID.c_bstr(),
                        wname.c_bstr(),               //наименование товара
                        1,                                    //количество
                        10,                                  //цена  
                        10,                                  //сумма 
                        1,                                    //отдел
                        0);                                  //налог
    result = MSK.OleFunction(L"ЗакрытьЧек", devID.c_bstr(),
                        10,                                  //наличные 
                        0,                                      
                        0);
    if(result != VARIANT_TRUE){
        idErr = MSK.OleFunction(L"ПолучитьОшибку", &err_descr);
    }
}
Ответить