0
ivanich1789
11.04.15
✎
16:49
|
Всем привет. Рабочая среда кассира реализована в excel\access. Появилась необходимость прикрутить фискальный принтер.
Драйвер становиться.
Объект создается.
Set FP = CreateObject("OLE_MiniFP6.FP6")
Простые методы(вроде дневного отчета) не предусматривающие возврат значений параметрами работают.
FP.DayReport_ (Ncom)
Затык с методами которые возвращают значения. Например
GetStrCheck_(Ncom, StrType: Integer; var Str: WideString; var Dh,Dw: WordBool): WordBool;
Из мануала к фискалу:
"Согласно концепции OLE-технологии, выходные данные методов объекта могут быть сформированы в выходных параметрах, передаваемых по ссылке, но не по значению. Некоторые системы ( 1С: «Предприятие») не поддерживают это требование (доступ к OLE-данным по ссылке). Поэтому методы сервера OLE_MiniFP6, в которых формируются выходные параметры, параллельно формируют одноименные свойства, доступ к которым из прикладной среды обеспечивается по значению. Для таких прикладных систем рекомендуется применять следующий подход:
1) Выполнение метода. 2) Обработка свойств (сформированных методом), а не выходных параметров."
Однако VBA матюкает оба способа (Все переменные ес-но определены)
-----------------------
FP.GetStrCheck_(Ncom, 0, Str, Dh, Dw) //Syntax Error
-----------------------
if FP.GetStrCheck_(Ncom, 0, Str, Dh, Dw) = true then... //Type mismatch (Error 13)
В чем затык? Как правильно к такому объекту обратиться? Спасибо
|
|
1
ivanich1789
11.04.15
✎
17:00
|
Sub FP6INIT()
Dim FP As Object
Dim Ncom, StrType As Long
Dim Dh, Dw As Variant
Dim Str As String
Ncom = 1
StrType = 0
Set FP = CreateObject("OLE_MiniFP6.FP6")
If FP.GetStrCheck_(Ncom, StrType, Str, Dh, Dw) = True Then
UserForm1.Label8.Caption = Str
End If
Set FP = Nothing
End Sub
---------
Type mismatch (Error 13)
|
|