Взять кассу

Сканеры, кассы, ККТ и т.д.
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5494
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Взять кассу

Сообщение Игорь Столяров »

harry писал(а): 02 Сентябрь 2021, 19:04 мы не передаем свойству значение типа "Строка"
Абсурд. Если мы передаём данные по значению, то они определяются содержимым.
Если передать на печать строку '020' то и будет напечатано '020':

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

       MyFRS.Object{'StringForPrinting'} = '020'
       MyFRS.Object{'PrintString'}
«V» значит Вендетта !
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5494
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Взять кассу

Сообщение Игорь Столяров »

Вообще, если говорить об OLE - то Ваш пример в Excel будет работать не всегда.
Если ячейка имеет формат "По значению" - то '020' , будет трансформировано в число 20.
Для того, что бы заставить записать именно строку - её нужно передать с апострофом «‘»:

1.png

Попробуйте передать аналогично строку с апострофом и нулём в драйвер Штрих-М ....
«V» значит Вендетта !
harry
Новичок
Сообщения: 16
Зарегистрирован: 24 Февраль 2015, 14:16

Взять кассу

Сообщение harry »

Вообще, если говорить об OLE - то Ваш пример в Excel будет работать не всегда.
Если ячейка имеет формат "По значению" - то '020' , будет трансформировано в число 20.
Для того, что бы заставить записать именно строку - её нужно передать с апострофом «‘»:

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

Loc:STMP = '`020'
CassObject{'TagValueStr'} = Loc:STMP
Так не проходит. программа закрывается по ошибке. Апостроф в таком контексте , похоже, ссылку определяет
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5494
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Взять кассу

Сообщение Игорь Столяров »

Ну нет же ... :( Проверить вот надо такое Вам:

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

  CassObject{'TagValueStr'} = '''020'
«V» значит Вендетта !
harry
Новичок
Сообщения: 16
Зарегистрирован: 24 Февраль 2015, 14:16

Взять кассу

Сообщение harry »

И так не идет.

[03.09.2021 15:13:11.845] [00013684] [DEBUG] TDrvFR Set_TagValueStr: '020
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 5494
Зарегистрирован: 07 Июль 2005, 9:19
Откуда: г. Ростов-на-ДоМу

Взять кассу

Сообщение Игорь Столяров »

Т.е. символ не обрабатывается, но и строка в число не преобразуется (интересно в каком месте).
Я бы попробовал варианты:

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

  CassObject{'TagValueStr'} = '"020"'   ! т.е. передать строку в двойных кавычках
  CassObject{'TagValueStr'} = ' 020 '   ! Добавить пробелы в надежде, что это отключит преобразование 
  CassObject{'TagValueStr'} = '020' & Chr(0)  ! Строка с завершающим нулём
«V» значит Вендетта !
harry
Новичок
Сообщения: 16
Зарегистрирован: 24 Февраль 2015, 14:16

Взять кассу

Сообщение harry »

Спасибо! Все варианты пробовали и не помогают.
В итоге, проблему помог решить пример из документации с использованием другого типа данных TagType = 9

Может, пригодится )
Вложения
image_2021_09_03T12_03_46_203Z.png
Ответить