Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Код формирования EAN-13 есть у кого? / 12 сообщений из 12, страница 1 из 1
10.06.2010, 17:53
    #36681336
DarkCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
Нужен TSQL код, который сможет выполнить преобразование: 123456789012 -> 1CDOFQR*ijabci+

Процедура стандартная, может есть у кого?
...
Рейтинг: 0 / 0
10.06.2010, 18:05
    #36681363
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
DarkCatНужен TSQL код, который сможет выполнить преобразование: 123456789012 -> 1CDOFQR*ijabci+

Процедура стандартная, может есть у кого?Процедура, которая алгоритм преобразования угадывает, что ли?
...
Рейтинг: 0 / 0
10.06.2010, 18:22
    #36681386
DarkCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
Гавриленко Сергей АлексеевичDarkCatНужен TSQL код, который сможет выполнить преобразование: 123456789012 -> 1CDOFQR*ijabci+

Процедура стандартная, может есть у кого?Процедура, которая алгоритм преобразования угадывает, что ли?
Нужна процедура которая берет 12 чисел, добавляет к ним контрольный разряд, и преобразует всё это в 15-значную последовательность символов, которую если изобразить шрифтом EAN13 то получится баркод для его последующего распечатывания..
...
Рейтинг: 0 / 0
10.06.2010, 23:18
    #36681729
BorodaSoft
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
DarkCat,

Смотрите тут и тут
...
Рейтинг: 0 / 0
11.06.2010, 10:36
    #36682126
DarkCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
BorodaSoftDarkCat,

Смотрите тут и тут
спасибо, похоже то что нужно
...
Рейтинг: 0 / 0
15.06.2010, 16:11
    #36688079
DarkCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
если вдруг кому интересно, вот перевод в TSQL

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
create PROCEDURE BARTOTXT ( @chaine varchar( 13 ))
as

declare @i integer
declare @first integer
declare @checksum integer
declare @CodeBarre varchar ( 25 ) 
declare @tableA integer

begin

set @CodeBarre = ''
set @checksum =  0 

set @i =  2 
while (@i< 13 ) 
begin
  set @checksum = @checksum + CAST(substring(@chaine,@i, 1 ) AS int)
  set @i = @i +  2 
end
set @checksum = @checksum* 3 ;

set @i =  1 
while (@i< 13 ) 
begin
  set @checksum = @checksum + CAST(substring(@chaine,@i, 1 ) AS int)
  set @i = @i +  2 
end

set @chaine = substring(@chaine, 1 , 12 ) + CAST(( 10  - @checksum %  10 ) %  10  as varchar( 1 ))

set @CodeBarre = SubString(@chaine, 1 , 1 ) + CHAR( 65  + CAST(SubString(@chaine, 2 , 1 ) as int));

set @first = CAST(SubString(@chaine, 1 , 1 ) as int)

set @i =  3 
while (@i<= 7 ) 
begin
   set  @tableA =  0 ;

   if (@i =  3  and @first >=  0  and @first <=  3 ) set @tableA =  1 ;
   if (@i =  4  and (@first= 0  or @first= 4  or @first= 7  or @first= 8 )) set @tableA =  1 ;
   if (@i =  5  and (@first= 0  or @first= 1  or @first= 4  or @first= 5  or @first= 9 )) set @tableA =  1 ;
   if (@i =  6  and (@first= 0  or @first= 2  or @first= 5  or @first= 6  or @first= 7 )) set @tableA =  1 ;
   if (@i =  7  and (@first= 0  or @first= 3  or @first= 6  or @first= 8  or @first= 9 )) set @tableA =  1 ;

   if @tableA =  1 
      set @CodeBarre = @CodeBarre + char( 65  + CAST(SubString(@chaine,@i, 1 ) as int));
   else
      set @CodeBarre = @CodeBarre + char( 75  + CAST(SubString(@chaine,@i, 1 ) as int));

   set @i = @i +  1 
end

set @CodeBarre = @CodeBarre + '*'

set @i =  8 
while (@i<= 13 ) 
begin
   set @CodeBarre = @CodeBarre + char( 97  + CAST(SubString(@chaine,@i, 1 ) as int));
   set @i = @i +  1 
end

set @CodeBarre = @CodeBarre + '+'

select @chaine as code, @CodeBarre as ean13txt

end

шрифт во вложении
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
05.12.2012, 11:51
    #38065845
alik-os
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
Спасибо, помогло!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
01.10.2019, 20:45
    #39870251
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
DarkCat
if @tableA = 1
set @CodeBarre = @CodeBarre + char(65 + CAST(SubString(@chaine,@i,1) as int));
else
set @CodeBarre = @CodeBarre + char(75 + CAST(SubString(@chaine,@i,1) as int));

set @i = @i + 1
end



А где тут закрывается условие IF?
...
Рейтинг: 0 / 0
01.10.2019, 21:03
    #39870255
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
оно тут нигде не закрывается. читайте синтаксис IF
...
Рейтинг: 0 / 0
01.10.2019, 21:48
    #39870262
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
Вообще-то, перед ELSE точка с запятой стоять не может.
...
Рейтинг: 0 / 0
02.10.2019, 09:52
    #39870368
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
iapВообще-то, перед ELSE точка с запятой стоять не может.
С каких это пор?

Код: sql
1.
2.
3.
DECLARE @t int;
IF 1 > 0 SET @t = 0; ELSE SET @t = 1;
PRINT @t;



Lepsikоно тут нигде не закрывается. читайте синтаксис IF
Я бы поправил, что оно нигде явно не закрывается.
Неявно else работает строго на один стейтмент после него, после чего закрывается.
Если нужно несколько стейтментов по условию - их нужно явно обернуть в begin ... end
...
Рейтинг: 0 / 0
02.10.2019, 13:41
    #39870535
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Код формирования EAN-13 есть у кого?
MinamotoС каких это пор?
С пор, когда некоторые особо выдающиеся некрофилы стали путать T-SQL и Pascal.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Код формирования EAN-13 есть у кого? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]