Closed try2bajed1 closed 5 years ago
конечно можно. Получить можно из таблицы, номер таблицы, поля получается из свойства.
ci->Set_ModelParamNumber(classic_interface::DPE_FFDVersionTableNumber);
checkResult(ci->ReadModelParamValue());
auto ffdVersionTable = ci->Get_ModelParamValue();
ci->Set_ModelParamNumber(classic_interface::DPE_FFDVersionFieldNumber);
checkResult(ci->ReadModelParamValue());
auto ffdVersionField = ci->Get_ModelParamValue();
0 - Формат ФД 1.0 2 - Формат ФД 1.05
Почитайте общее руководство, там есть втч об этом.
Set_ModelParamNumber(classic_interface.DevicePropertiesEnumeration.DPE_FFDVersionTableNumber.swigValue()) checkResult(ReadModelParamValue()) Get_ModelParamValue() Set_ModelParamNumber(classic_interface.DevicePropertiesEnumeration.DPE_FFDVersionFieldNumber.swigValue()) checkResult(ReadModelParamValue()) Log.w("value ${Get_ModelParamValue()}") Вот мой джава код у меня получается в логе значение 29. Я что то не так делаю?
Всё правильно. Вы получате номер таблицы, и поле таблицы(его выводите на печать). Теперь вам нужно прочитать содержимое этой таблицы методом. ReadTable
.
т.е вызов ReadTable() после всех манипуляций мне должен вернуть нужное значение? сейчас он мне отдает 93. А вроде как 0 или 2 должно быть...
если ошибок нет - ReadTable вернёт 0. А содержимое таблицы будет помещено в свойство ValueOfFieldString или ValueOfFieldInteger в зависимости от типа поля.
Не получаю я ноль для ффд. Не подскажете в чем ошибка?
PrintStringWithFont() ok
Set_ModelParamNumber(82
)
Set_ModelParamNumber() ok
ReadModelParamValue()
ReadModelParamValue() ok
Get_ModelParamValue()
Get_ModelParamValue() -> 10
Set_ModelParamNumber(83
)
Set_ModelParamNumber() ok
ReadModelParamValue()
ReadModelParamValue() ok
Get_ModelParamValue()
Get_ModelParamValue() -> 29
ReadTable()
-> 8F 08 00 12 00 2D 1E 00 00 00 00 D9 A9
<- 8F
<- 04 00 12 00 2D 5D 9C 05
command 2D return code: 93 execution took 7ms
Table is undefined
commands total: 18, succeed: 17, failed: 1, avg. exec time: 15ms
ReadTable() fail
Table is undefined
Вы запросили номер поля и номер таблицы. Но вы не поместили их в соответствующие свойства. TableNumber и FieldNumber. Перед вызовом ReadTable нужно назначить все свойства которые этот метод использует. См. документацию.
Не думал, что такая тривиальная задача растянется на 2 недели. Вот мой джава код: Set_ModelParamNumber(classic_interface.DevicePropertiesEnumeration.DPE_FFDVersionTableNumber.swigValue()) ReadModelParamValue() val tableNum = Get_ModelParamValue() Set_TableNumber(tableNum) Set_ModelParamNumber(classic_interface.DevicePropertiesEnumeration.DPE_FFDVersionFieldNumber.swigValue()) ReadModelParamValue() val fieldNum = Get_ModelParamValue() Set_FieldNumber(fieldNum) Get_ValueOfFieldInteger() Set_Password(30) w("value ${ReadTable()}")//вывожу в консоль результат
вот то что я получаю в логах. ошибка 51(неверные параметры для команды, видимо этот readTable требует других команд)
[T] Set_ModelParamNumber(82
)
[T] Set_ModelParamNumber() ok
[T] ReadModelParamValue()
[T] ReadModelParamValue() ok
[T] Get_ModelParamValue()
[T] Get_ModelParamValue() -> 10
[T] Set_TableNumber(10
)
[T] Set_TableNumber() ok
[T] Set_ModelParamNumber(83
)
[T] Set_ModelParamNumber() ok
[T] ReadModelParamValue()
[T] ReadModelParamValue() ok
[T] Get_ModelParamValue()
[T] Get_ModelParamValue() -> 29
[T] Set_FieldNumber(29
)
[T] Set_FieldNumber() ok
[T] Get_ValueOfFieldInteger()
[T] Get_ValueOfFieldInteger() -> 0
[T] Set_Password(30
)
[T] Set_Password() ok
[T] ReadTable()
[D] -> 8F 08 00 12 00 2D 1E 00 00 00 0A 93 08
[D] <- 8F
[D] <- 2F 00 12 00 2D 00 D1 CB D3 C6 C5 C1 CD C0 DF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 28 00 CB
[D] command 2D return code: 0 execution took 1ms
[D] commands total: 18, succeed: 18, failed: 0, avg. exec time: 14ms
[D] -> 8F 09 00 13 00 2E 1E 00 00 00 0A 1D 7C 3A
[D] <- 8F
[D] <- 30 00 13 00 2E 00 D4 CE D0 CC C0 D2 20 D4 C4 2C 20 30 20 2D 20 31 2E 30 2C 20 32 20 2D 20 31 2E 30 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 02 24 9F 83
[D] command 2E return code: 0 execution took 1ms
[D] commands total: 19, succeed: 19, failed: 0, avg. exec time: 13ms
[D] -> 8F 0B 00 14 00 1F 1E 00 00 00 0A 00 00 1D B1 2B
[D] <- 8F
[D] <- 04 00 14 00 1F 33 9A CC
[D] command 1F return code: 51 execution took 9ms
[E] Incorrect command parameters
[D] commands total: 20, succeed: 19, failed: 1, avg. exec time: 13ms
[D] ReadTable() fail
[E] Incorrect command parameters
[T] Disconnect()
[I] disconnect()
[I] close()
[T] Disconnect() ok
Вот я смотрю фак. Там только как в таблицу записать. https://github.com/shtrih-m/fr_drv_ng/wiki/%D0%A7%D0%B0%D1%81%D1%82%D0%BE-%D0%B7%D0%B0%D0%B4%D0%B0%D0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5-%D0%B2%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%8B-%D0%BF%D1%80%D0%BE-classic_fr_drv_ng#EditTable
Вот я смотрю метод ReadTable https://github.com/shtrih-m/fr_drv_ng/wiki/Methods#group___base_methods_1ga892e4751efdb0742f50ffa2482f60729
Там пишут что нужны Password - пароль системного администратора (задаю перед извлечение), TableNumber - номер таблицы (видимо мы его получаем), RowNumber - номер ряда (в драйвере нет метода Get_RawNumber), FieldNumber - номер поля (видимо мы его получаем).
Так как правильно обратиться к таблице? Дайте пожалуйста пример, на данный момент лишь происходят отсылки непонятно куда.
Всё хорошо, кроме того что не назначено свойство RowNumber - Ряд. Для таблиц, которые используются как ключ/значение(10 таблица это такой случай) оно должно равняться 1.
О алилуя, я получил ноль. Большое спасибо! Т.е ффд 1.0 используется. А есть значение для ффд 1.1 ? Или еще нет поддежки этой версии?
Странно. Там не должен быть 0. Само значение должно быть в свойстве ValueOfFieldInteger
. После ReadTable
нужно запросить содержимое ValueOfFieldInteger
.
1.1 еще неподдерживается, какое значение будет в поле с 1.1 пока сказать не могу.
а, вот как нужно. я просто думал что формат считываемого значения надо задавать до readTable() сейчас да, я получаю двойку. Тобишь на актуальной 1.05 сидим.Еще раз спасибо за помощь.
можно ли вытащить информацию из принтера по поводу формата фискльных документов?