© Tillypad, 2004-2024
© Tillypad, 2004-2024
В печатных представлениях форматов печати программных модулей можно выводить штрихкоды или QR-коды.
Печать QR-кодов возможна только в матричных отчетах.
Для вывода штрихкода или QR-кода нужно сформировать Esc-последовательность и передать ее элементу (). Этот элемент можно выбрать на левой панели дизайнера FastReport.
Прежде всего, нужно создать функцию ConvertChar
для конвертирования символов. Эта функция участвует в формировании последовательности символов, передаваемых элементу элементу .
function ConvertChar(value: String):String; var hi, lo: Integer; begin hi := Ord(value) div 16; lo := Ord(value) mod 16; Result := '#' + IIF(hi < 10, '0', '') + IntToStr(hi) + '#' + IIF(lo < 10, '0', '') + IntToStr(lo); end;
Поместите на макет печатного представления элемент
().Перейдите на вкладку «Code» дизайнера FastReport.
Создайте обработчик события, например, OnBeforePrint
.
procedure MasterData1OnBeforePrint(Sender: TfrxComponent); begin var str1, str2: String; int1: Integer; begin // Формируем кодированное значение str2:='Data=1234567890' + #13#10 + 'Type=CODE128'+ #13#10 + 'Width=2'+ #13#10 + 'Height=162'+ #13#10 + 'TextPosition=Below'; // Преобразуем полученное значение в последовательность символов для Esc-команды for int1 := 1 to Length(str2) do begin str1 := str1 + ConvertChar(str2[int1]); end; // Выводим QR-код с помощью Esc-команды CMDBarCodePrint.Command := '#127#01' + str1; end;
где:
'Data=1234567890' + #13#10
– кодируемое значение.
'Type=CODE128'+ #13#10
– тип штрихкода. Допустимые значения: UPC-A
, UPC-E
, EAN13
, EAN8
, CODE39
, ITF
, CODABAR
, CODE93
, CODE128
.
'Width=2'+ #13#10
– ширина штрихкода. Может принимать значения от 2
до 6
. Значение по умолчанию
.2
'Height=162'+ #13#10
– высота штрихкода. Может принимать значения от 1
до 255
. Значение по умолчанию 162
.
'TextPosition=Below'
– позиция для вывода цифрового кода у штрихкода.
Допустимые значения:
Off
– не выводить код,
Above
– вывести код сверху,
Below
– вывести код снизу,
Both
– вывести код сверху и снизу.
Поместите на макет печатного представления элемент
().Перейдите на вкладку «Code» дизайнера FastReport.
Создайте обработчик события, например, OnBeforePrint
.
procedure MasterData1OnBeforePrint(Sender: TfrxComponent); begin var str1, str2: String; int1: Integer; begin // Формируем кодированное значение str2 := 'Data = ''' + <Header."TicketURL"> + '''' + #13#10 + 'ModuleSize=4' + #13#10 + 'ErrorLevel=1'; // Преобразуем полученное значение в последовательность символов для Esc-команды for int1 := 1 to Length(str2) do begin str1 := str1 + ConvertChar(str2[int1]); end; // Выводим QR-код с помощью Esc-команды CMDBarCodePrint.Command := '#127#01' + str1; end;
где:
'Data = ''' + <Header."TicketURL"> + '''' + #13#10
– кодируемое значение. В данном случае, получаемое из поля TicketURL потока Header.
'ModuleSize=4' + #13#10
– размер блока QR-кода в точках. Может принимать значения от 4 до 16.
'ErrorLevel=1'
– уровень коррекции ошибок. Может принимать значения от 0 до 3.