DecodeBarcode - функция базы данных, используемая для определения артикула по штрихкоду. Она возвращает таблицу с одной записью, по структуре аналогичную таблице SCL_CODE
Пример A.1. Пример функции DecodeBarcode для случая весовых штрихкодов
Пусть применяемый штрих-код имеет длину 13 цифровых символов, из которых первые 6 обозначают артикул товара, следующие 4 - вес товара. Тогда необходимо изменить функцию следующим образом:
ALTER function [DecodeBarcode](@Barcode varchar(20))
returns @result
TABLE (
[ARTIC] [varchar] (20) NOT NULL ,
[ID_SCLAD] [int] NOT NULL ,
[PARTIA] [varchar] (20) NULL ,
[SROK] [datetime] NULL ,
[CODE] [int] NOT NULL ,
[BARCODE] [varchar] (20) NULL ,
[KOLC] [float] NOT NULL ,
[BAR_KIND] [int] NOT NULL
)
as
begin
--Объявляем переменные для артикула,
--количества и месяца производства.
declare @artic varchar(6),
@kolc int
--Вычисляем значения этих переменных
--из штрих-кода.
set @artic = left( @Barcode, 6)
set @kolc = substring(@Barcode, 7, 4)
insert @result
(
[ARTIC], [ID_SCLAD], [PARTIA], [SROK],
[CODE], [BARCODE], [KOLC], [BAR_KIND] )
--Возвращаем только 1 запись из возможных.
select top 1
[cod_artic] ,
[ID_SCLAD],
null PARTIA,
null [SROK],
1 CODE,
@Barcode,
@kolc,
-1 BAR_KIND
-- Выбор из scl_artc нужен для проверки
-- артикула в справочнике товаров
from scl_artc
where cod_artic = @artic
return
end
|
|
|
|
|
|
|
|
|
|