Генерация Code 128b
Добрый день.
Необходимо сформировать штрих-код Code 128B в FR 4.1 вида (2508058565L110-006-002P201402S443.43) для квитанций за месяц.
Есть следущие идентификаторы:
ИНН - 2105085815 (формат число, значение является статичным т.е. не меняется и вводится вручную)
Перед лицевым счётом нужен знак (L - латинская заглавная буква)
Лицевой счёт - 110-006-002 (формат текст, передаётся из таблицы *.DBF в виде подключаемой реальной переменной frDSet."nls", для каждой квитанции свой уникальный)
Перед периодом нужен знак (P - латинская заглавная буква)
Период - 201402 (формат целое число, виртуальная переменная @period@, для каждой квитанции своя уникальная)
Перед суммой нужен знак (S - латинская заглавная буква)
Сумма - 443.43 (формат число с дробной частью, передаётся из таблицы *.DBF в виде подключаемой реальной переменной frDSet."sal_mes", для каждой квитанции свой уникальный)
При использовании объекта "Штрихкод" прописываем в expression строку вида '2508058565LfrDSet."nls"P@period@SfrDSet."sal_mes"' получаем:
При этом отдельно блоки он понимает:
'2508058565L'
frDSet."nls"
@period@
frDSet."sal_mes" аналогично лицевому счёту.
Не могу сообразить как объединить так, чтобы он понимал все переменные и при этом формировал один общий штрих-код
Необходимо сформировать штрих-код Code 128B в FR 4.1 вида (2508058565L110-006-002P201402S443.43) для квитанций за месяц.
Есть следущие идентификаторы:
ИНН - 2105085815 (формат число, значение является статичным т.е. не меняется и вводится вручную)
Перед лицевым счётом нужен знак (L - латинская заглавная буква)
Лицевой счёт - 110-006-002 (формат текст, передаётся из таблицы *.DBF в виде подключаемой реальной переменной frDSet."nls", для каждой квитанции свой уникальный)
Перед периодом нужен знак (P - латинская заглавная буква)
Период - 201402 (формат целое число, виртуальная переменная @period@, для каждой квитанции своя уникальная)
Перед суммой нужен знак (S - латинская заглавная буква)
Сумма - 443.43 (формат число с дробной частью, передаётся из таблицы *.DBF в виде подключаемой реальной переменной frDSet."sal_mes", для каждой квитанции свой уникальный)
При использовании объекта "Штрихкод" прописываем в expression строку вида '2508058565LfrDSet."nls"P@period@SfrDSet."sal_mes"' получаем:
При этом отдельно блоки он понимает:
'2508058565L'
frDSet."nls"
@period@
frDSet."sal_mes" аналогично лицевому счёту.
Не могу сообразить как объединить так, чтобы он понимал все переменные и при этом формировал один общий штрих-код
Комментарии
Попробуйте:
'2508058565L'+<frDSet."nls">+'P'+@period@+'S'+<frDSet."sal_mes">
Что сделать c @period@ я к сожалению не знаю...
Если бы это была переменная отчета, то <period>. т.е. '2508058565L'+<frDSet."nls">+'P'+<period>+'S'+<frDSet."sal_mes">
На вариант '2508058565L'+<frDSet."nls">+'P'+@period@+'S'+<frDSet."sal_mes"> выдаёт ошибку синтаксиса как я понял:
На вариант '2508058565L'+<frDSet."nls">+'P'+<period>+'S'+<frDSet."sal_mes"> выдаёт ошибку:
Попробовал исправить 1 вариант с ошибкой синтаксиса, попрежнему не видит переменные, символы <> можно опусть получится тоже что на скрине только без них.
'2508058565'+'L'+'<frDSet."nls">'+'P'+'@period@'+'S'+'<frDSet."sal_mes">' выдаёт штрих-код вида:
А если исключить period? или привести его к переменной отчета?
то выдаёт ошибку:
'2508058565L'+<frDSet."nls">+'S'+<frDSet."sal_mes">
Получаем следущее:
Не совсем понял что значит привести к переменной отчёта (они все переменные отчёта просто разные по типу и способу подключения), подозреваю что вы имели ввиду, что проблема с переменной @period@. Попробовал сократить вырожение до вида '2508058565'+'L'+<frDSet."nls">
Получилось, однако, следущее:
Продолжаю дальше добовлять переменные '2508058565'+'L'+<frDSet."nls">+'S' работает проблем нет, а вот добавление второй подключаемой переменной '2508058565'+'L'+<frDSet."nls">+'S'+<frDSet."sal_mes"> приводит к ошибке:
Как я понял жалуется на дублирование значений.
Нет, жалуется на приведение типов, .
в frDSet."sal_mes" число, попробуйте floattostr(<frDSet."sal_mes">).
Получили следущее '2508058565'+'L'+<frDSet."nls">+'S'+floattostr(<frDSet."sal_mes">) действительно помогло и это радует - благодарю.
Вопрос - откуда вы взяли floattostr(), при поиске на эту тему вобще ничего похожего не встречал. И ещё при попытке привести к типу string (если я правильно понял) переменную frDSet."nls" выдаёт ошибку:
Cначало думал что тип переменных должен совподать, а выходит наоборот, если так то не подскажете к каким типам можно ещё привести (ради эксперемента floatTo***):
Теперь осталось разобраться с периодом, переменая имеет вид @period@ и при вставке в объект "Штрихкод" отображается правильно
но если попробовать привести к типу string, строка вида:
'2508058565'+'L'+<frDSet."nls">+'P'+floattostr(@period@)+'S'+floattostr(<frDSet."sal_mes">) выдаёт ошибку:
'2508058565'+'L'+<frDSet."nls">+'P'+floattostr(<frDSet."periods">)+'S'+floattostr(<frDSet."sal_mes">)
2508058565L110-006-002P201402S443.43
Благодарю за помощ.