Ошибка в Tbarcode компоненте, код Ean13
В дизайнере ставлю в отчет штрихкод, связываю с полем таблицы и ставлю тип кода EAN13. Появляется ошибка преобразования строки в число.
В дизйнере не выполняется вычисление выражений и соответственно передается не значение кода а само выражение.
Пришлось добавить несколько строк в код. Теперь мой TBarcode.Code_EAN13 выглядит так
Возможно похожая ошибка и в других типах кодов.
В дизйнере не выполняется вычисление выражений и соответственно передается не значение кода а само выражение.
Пришлось добавить несколько строк в код. Теперь мой TBarcode.Code_EAN13 выглядит так
function TBarcode.Code_EAN13:string;
var
i, j, LK: integer;
tmp : String;
begin
// ADDED BY ZENYK
// Проверяется возможность преобразования и в случае неудачи код ставится '0000000000000'.
try
StrToFloat(FText);
except
FText:='0000000000000';
end;
// ADDED BY ZENYK
if FCheckSum then
begin
tmp := '0000000000000'+FText;
tmp := getEAN(copy(tmp,length(tmp)-11,12)+'0');
end
else
tmp := Ftext;
LK := StrToInt(tmp[1]);
tmp := copy(tmp,2,12);
result := '505'; // Startcode
for i:=1 to 6 do
begin
case tabelle_ParityEAN13[LK,i] of
'A' : for j:= 1 to 4 do
result := result + tabelle_EAN_A[tmp[i], j] ;
'B' : for j:= 1 to 4 do
result := result + tabelle_EAN_B[tmp[i], j] ;
'C' : for j:= 1 to 4 do
result := result + tabelle_EAN_C[tmp[i], j] ;
end;
end;
result := result + '05050'; // Trennzeichen
for i:=7 to 12 do
for j:= 1 to 4 do
begin
result := result + tabelle_EAN_C[tmp[i], j] ;
end;
result := result + '505'; // Stopcode
end;
Возможно похожая ошибка и в других типах кодов.