Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
Добрый день,господа.У меня повилась проблема, которую я никак не могу решить. Прочитав кучу гайдов,так и не нашел верного решения.
Итак, есть процедура. Я пытаюсь в ней подкорректировать счетчик:добавить к цифрому значению,например,символы RLF.Получится так RLF111111. Цифровые значения беруться из поля sys_packcounter(int),далее они оседают в @SSCC.Это поле, в свою очередь,выводится на печать этикеток в Crystal Reports 9. Вся проблема в том,что если я просто добавляю символы 'RLF' в расчет счетчика,то выдается,(логично)ошибка о том, что нельзя плюсовать символы и числа.
Подскажите, будьте добры, каким образом,корректно,добавить символы в числовой счетчик?
SELECT @sscc = 'RLF' + ISNULL(sys_PackCounter,0) + 1 FROM lv_systemparameters WITH (XLOCK, rowlock) WHERE sys_ID = 1
UPDATE lv_systemparameters SET sys_PackCounter = @sscc WHERE sys_ID = 1




LTER PROCEDURE [dbo].[ANT_SP_PRINT_SHIPMENT_LABELS]
@userid INT,
@packtypeid INT,
@loccode VARCHAR(13)
AS
BEGIN
/*

Печать этикеток отгрузки:

• По списку заданий штучного отбора количество этикеток равно значению соответствующего участка отбора «Кол-во упаковок (ШО)»,
при этом этикетки имеют отличающиеся, уникальные SSCC коды.
• По списку коробочного отбора количество этикеток равно суммарному количеству коробов в списке заданий,
при этом этикетки имеют одинаковые SSCC коды.

*/

DECLARE @MaxPcsTasks INT -- Кол-во коробов для отбора шт.
DECLARE @BoxTasks INT -- Кол-во коробов (отбор коробов)
DECLARE @SSCC VARCHAR(255)
DECLARE @printer VARCHAR(255)
DECLARE @label VARCHAR(255)
DECLARE @fromlocid INT
DECLARE @TskAmount INT

SELECT @label = 'shiplbl_h.rpt', @printer = lpr_Printer FROM dbo.LV_LocPrinter with (nolock)
INNER JOIN dbo.LV_Location with (nolock) ON loc_ID = lpr_LocationID
WHERE loc_Code = @loccode

/* --- отбор шт --- */

SELECT top 1 @fromlocid = tsk_FromLocationID FROM dbo.LV_Task with (nolock)
INNER JOIN dbo.LV_ItemUnit with (nolock) ON itu_ID = tsk_ItemUnitID
WHERE tsk_TransactionTypeID = 3 AND tsk_StatusID IN (1, 2) AND itu_UnitID = 5 AND tsk_ExpUserID = (SELECT emp_ID FROM dbo.COM_Employee with (nolock) inner join LV_Users with (nolock) on usr_PersonID = emp_PersonID WHERE usr_ID = @userid)

IF ( @fromlocid IS NOT NULL)
SELECT @MaxPcsTasks = aba_PcsPalCount FROM ANT_BuildingAttributes with (nolock)
WHERE aba_buildingid = ( select loc_buildingid from lv_location where loc_id = @fromlocid )
ELSE
SET @MaxPcsTasks = 0

WHILE (isNULL(@MaxPcsTasks, 0) > 0)
BEGIN
SET @MaxPcsTasks = @MaxPcsTasks - 1
--EXEC dbo.sp_GenerateSSCC @packtypeid, 2, @SSCC OUTPUT
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
BEGIN TRANSACTION
SELECT @sscc = ISNULL(sys_PackCounter,0) + 1 FROM lv_systemparameters WITH (XLOCK, rowlock) WHERE sys_ID = 1
UPDATE lv_systemparameters SET sys_PackCounter = @sscc WHERE sys_ID = 1 --AND ( sys_PackCounter = (@sscc - 1) OR sys_PackCounter IS NULL )
COMMIT TRANSACTION
--PRINT @SSCC
insert dbo.ANT_PrinterTask
([ptt_SelectStatement],
[ptt_NumOfCopies],
[ptt_Printer]
, [ptt_RPTName])
values (N'SELECT ''' + @SSCC + ''' AS SSCC,
INTERNAL_SHIP_NUM, CLIENT_SHIP_NUM,
CLIENT, ADDRESS, PICK_DATE, PICKER,
INSTRUCTION_NUM FROM dbo.ANT_V_SHIPLBL
WHERE usr_ID = ' + CAST (@userid AS VARCHAR(32)),
1,
@printer,
@label)

--Для проверки очереди печати.
insert dbo.ANT_PrinterTask2
([ptt_SelectStatement],
[ptt_NumOfCopies],
[ptt_Printer]
, [ptt_RPTName]
, [ptt_DateTime])
values (N'SELECT ''LBL'' as LBL, ''' + @SSCC + ''' AS SSCC,
INTERNAL_SHIP_NUM, CLIENT_SHIP_NUM,
CLIENT, ADDRESS, PICK_DATE, PICKER,
INSTRUCTION_NUM FROM dbo.ANT_V_SHIPLBL
WHERE usr_ID = ' + CAST (@userid AS VARCHAR(32)),
1,
@printer,
@label,
getdate())

END


/* --- отбор коробов --- */

--Старый вариант
--SELECT @BoxTasks = SUM(tsk_Quantity) FROM dbo.LV_Task with (nolock)
-- INNER JOIN dbo.LV_ItemUnit with (nolock) ON itu_ID = tsk_ItemUnitID
--WHERE tsk_TransactionTypeID = 3 AND tsk_StatusID IN (1, 2) AND itu_UnitID in (6,31,32) AND tsk_ExpUserID = (SELECT emp_ID FROM dbo.COM_Employee inner join LV_Users on usr_PersonID = emp_PersonID WHERE usr_ID = @userid)


-- Т.к. в печать этикеток попадают все задания в статусах "В ожидании" и "В работе"
--закрепленные за пользователем. Ставим ограничение на задания, которые только "В работе" - 3.
SELECT
@BoxTasks = SUM(tsk_Quantity)
FROM
dbo.LV_Task with (nolock)
WHERE
tsk_TaskListID =
(SELECT tsk_TaskListID
from LV_Task WITH (NOLOCK)
INNER JOIN dbo.LV_ItemUnit with (nolock) ON itu_ID = tsk_ItemUnitID
where
tsk_TransactionTypeID = 3 AND
tsk_StatusID IN (2) AND
itu_UnitID in (6,31,32)
AND tsk_ExpUserID =
(SELECT emp_ID FROM dbo.COM_Employee
inner join LV_Users on usr_PersonID = emp_PersonID
WHERE usr_ID = @userid))
and tsk_StatusID IN (1, 2)


SELECT
@TskAmount = IsNull(COUNT(distinct tsk_TaskListID), 0)
FROM
dbo.LV_Task with (nolock)
WHERE
tsk_TaskListID =
(SELECT tsk_TaskListID
from LV_Task WITH (NOLOCK)
INNER JOIN dbo.LV_ItemUnit with (nolock) ON itu_ID = tsk_ItemUnitID
where
tsk_TransactionTypeID = 3 AND
tsk_StatusID IN (2) AND
itu_UnitID in (6,31,32)
AND tsk_ExpUserID =
(SELECT emp_ID FROM dbo.COM_Employee
inner join LV_Users on usr_PersonID = emp_PersonID
WHERE usr_ID = @userid))


IF (isNULL(@BoxTasks, 0) > 0)
BEGIN
SET @SSCC = ''
--EXEC dbo.sp_GenerateSSCC @packtypeid, 2, @SSCC OUTPUT
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
BEGIN TRANSACTION
SELECT @sscc = ISNULL(sys_PackCounter,0) + 1 FROM lv_systemparameters WITH (XLOCK, rowlock) WHERE sys_ID = 1
UPDATE lv_systemparameters SET sys_PackCounter = @sscc WHERE sys_ID = 1-- AND ( sys_PackCounter = (@sscc - 1) OR sys_PackCounter IS NULL )
COMMIT TRANSACTION

-- по одной этикетке

/*
WHILE (@BoxTasks > 0)
BEGIN
SET @BoxTasks = @BoxTasks - 1
--PRINT @SSCC
insert dbo.ANT_PrinterTask ([ptt_SelectStatement], [ptt_NumOfCopies], [ptt_Printer], [ptt_RPTName])
values (N'SELECT ''' + @SSCC + ''' AS SSCC, INTERNAL_SHIP_NUM, CLIENT_SHIP_NUM, CLIENT, ADDRESS, PICK_DATE, PICKER, INSTRUCTION_NUM FROM dbo.ANT_V_SHIPLBL WHERE usr_ID = ' + CAST (@userid AS VARCHAR(32)), 1, @printer, @label)
END
*/

-- все этикетки одной записью

insert dbo.ANT_PrinterTask
([ptt_SelectStatement],
[ptt_NumOfCopies],
[ptt_Printer],
[ptt_RPTName])
values (N'SELECT ''' + @SSCC + ''' AS SSCC, INTERNAL_SHIP_NUM,
CLIENT_SHIP_NUM,
CLIENT, ADDRESS,
PICK_DATE, PICKER,
INSTRUCTION_NUM
FROM dbo.ANT_V_SHIPLBL
WHERE
usr_ID = ' + CAST (@userid AS VARCHAR(32)),
@BoxTasks,
@printer,
@label)

--Для проверки очереди печати.
insert dbo.ANT_PrinterTask2
([ptt_SelectStatement],
[ptt_NumOfCopies],
[ptt_Printer],
[ptt_RPTName],
[ptt_DateTime],
[ptt_TaskAmount])
values (N'SELECT ''LBLALL'' as LBL, ''' + @SSCC + ''' AS SSCC, INTERNAL_SHIP_NUM,
CLIENT_SHIP_NUM,
CLIENT, ADDRESS,
PICK_DATE, PICKER,
INSTRUCTION_NUM
FROM dbo.ANT_V_SHIPLBL
WHERE
usr_ID = ' + CAST (@userid AS VARCHAR(32)),
@BoxTasks,
@printer,
@label,
getdate(),
@TskAmount)

END

END
9 ноя 15, 09:21    [18387323]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Максим Александровитч
Подскажите, будьте добры, каким образом,корректно,добавить символы в числовой счетчик?

Вам опять выдать ссылку на хелп с перечнем функций преобразования типов данных ?
9 ноя 15, 09:29    [18387361]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
У меня не получалось перевести символы в числа.Может я что-то делаю не так,но прошу тогда объяснить..
Проблема в том,что packounter-это числовое поле.а я хочу в него добавить символы. Справку по coverft и cast я читал
9 ноя 15, 09:36    [18387398]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Максим Александровитч
У меня не получалось перевести символы в числа.

И какое же число должно получиться из символов 'RLF' ?

Максим Александровитч
Проблема в том,что packounter-это числовое поле.а я хочу в него добавить символы. Справку по coverft и cast я читал

Вы там видели таблицу The following diagram shows legal cast operations. ?
Или вам как всегда нужно, чтобы кто-то срочно решили вашу проблему ?

ЗЫ
Следующий срок бана на изучение SQL будет 4 недели
9 ноя 15, 09:46    [18387446]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
Мне не нужно срочно,мне хоть как-нибудь. Как мне,в принципе,решить эту проблему?ЯСно,что перевести символы в числа нельзя.Если уж такая неприязнь к консультациям и к неопытным,хоть скажите,что читать-то..
9 ноя 15, 09:51    [18387460]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Максим Александровитч
Как мне,в принципе,решить эту проблему?ЯСно,что перевести символы в числа

Ну если нельяз символы перевести в число, то какой тогда вид преоборазования остается ?

Максим Александровитч
.Если уж такая неприязнь к консультациям и к неопытным,хоть скажите,что читать-то..

Вам лично надо читать начальные курсы о программировании вообще. Потому что принципы перобразования типов данных во всех языках одинаковые.
9 ноя 15, 09:54    [18387482]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
Не работает другой способ преобразования тоже..У меня вопрос:разве этот форум не для помощи новичкам? Может позволим посомтреть другим людям,возможно,кто-то работал в облости логистики и смог-таки забить символьно-численное значение в поле int,которое,в последствии,было переведено языком ZPL через CR9 в штрих код?
9 ноя 15, 10:04    [18387511]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
Много всяких ошибок. Хорошо,что это форум не правописания..
9 ноя 15, 10:04    [18387515]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Glory
Member

Откуда:
Сообщений: 104760
Максим Александровитч
Не работает другой способ преобразования тоже..

Разумеется. У вас вообще ничего не работает. Пока вам кто-нибудь не напишет работающий код.

Максим Александровитч
У меня вопрос:разве этот форум не для помощи новичкам?

Только помощь тут имеет другой смысл. Отличный от вашего "сделайте за меня".

Максим Александровитч
Может позволим посомтреть другим людям,возможно,кто-то работал в облости логистики и смог-таки забить символьно-численное значение в поле int,которое,в последствии,было переведено языком ZPL через CR9 в штрих код?

Причем тут штрих коды и логистика ?
Вы 2+2 не можете сделать, а пыжитесь представить свою "задачу" как интерсную всем.
Нельзя в поле int поместить символы. И никому еще это не удавалось.

Сообщение было отредактировано: 9 ноя 15, 10:14
9 ноя 15, 10:09    [18387524]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
Вы,конечно,правы.Спасибо.
9 ноя 15, 10:12    [18387537]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
zero_air
Member

Откуда:
Сообщений: 53
Максим Александровитч,

Можно тезисами что не так, и что нужно.
В одном месте у вас печать этикеток в Crystal Reports 9
В другом месте у вас ZPL

Про символы в поле INT вам уже написали.

Про счетчик и символ.
Если версия сервера не позволяет использовать сиквенсы, сделайте себе таблицу сиквенсов, с нужными вам префиксами.
И делайте с ней что хотите.
Если вам нужно на выходе RLF121231231 кто мешает сделать процедуру.

Примерно такую.

CREATE PROCEDURE [dbo].[X_GenerateLabel] 
@SSCC varchar(255) OUTPUT
AS 
begin
	declare @returnValue varchar(255)
	declare @SequenceNumber int



IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
           WHERE TABLE_NAME = N'X_SG_Sequense')
BEGIN
 --###############Создаем таблицу сиквенсов если ее нет##################### 
  CREATE TABLE [dbo].[X_SG_Sequense](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[SequenceValue] [int] NOT NULL,
	[Description] [varchar](150) COLLATE Cyrillic_General_CI_AS NULL,
	[TypeId] [int] NULL,
	[Preffix] [varchar](25) COLLATE Cyrillic_General_CI_AS NULL,
 CONSTRAINT [PK_X_SG_Sequense] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]


INSERT INTO X_SG_Sequense ([SequenceValue],[Description],[TypeId],[Preffix])
VALUES					  (1,'ForLabel',1,'RLF')

 --###############Создаем таблицу сиквенсов если ее нет#####################  
END

	begin transaction
	set nocount on

	select @SequenceNumber = SequenceValue from X_SG_Sequense where ID = 1
	update X_SG_Sequense set SequenceValue = @SequenceNumber+1 where ID = 1
	set @returnValue = 'RLF' + replicate('0', 10 - len(isnull(convert(varchar(10), @SequenceNumber), '1'))) + isnull(convert(varchar(10), @SequenceNumber), '1')
	select @SSCC = @returnValue

	commit transaction

	return 1
end
9 ноя 15, 10:33    [18387632]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31484
Максим Александровитч
Не работает другой способ преобразования тоже..У меня вопрос:разве этот форум не для помощи новичкам? Может позволим посомтреть другим людям,возможно,кто-то работал в облости логистики и смог-таки забить символьно-численное значение в поле int,которое,в последствии,было переведено языком ZPL через CR9 в штрих код?
Какой то поток сознания :-)

Вы, раз новичёк, делайте так, как делают новички - пишите программу на русском языке, в виде алгоритма. А потом уже её пишите на языке программирования.

Как это: "Не работает другой способ преобразования тоже"? Какой "другой способ"? Какая ещё "область логистики"??? Как это "смог-таки забить символьно-численное значение в поле int", молотком забил? Поле int - это 32 битное представление целого числа, как туда можно "забить строку"???

Я вот даже не понимаю, как вам можно помочь, и что вам нужно подсказать - с чего начать, с школьного курса двоичной математики, что ли? Вы даже вопросов нормальных не задаёте.
9 ноя 15, 10:36    [18387648]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
_djХомяГ
Guest
Схематично
1 ) Верните назад код
SELECT @sscc = ISNULL(sys_PackCounter,0) + 1 FROM lv_systemparameters WITH (XLOCK, rowlock) WHERE sys_ID = 1
UPDATE lv_systemparameters SET sys_PackCounter = @sscc WHERE sys_ID = 1 --AND ( sys_PackCounter = (@sscc - 1) OR sys_PackCounter IS NULL )

т к lv_systemparameters это таблица счетчик численных значений
2) Добавьте новую переменную
declare 
@sscc1    varchar(1000)
select @sscc1 ='RLD'+convert(varchar,@sscc)

3) Используйте далее новую переменную при выводе на печать
2zero_air мы не знаем версии сервера у автора
9 ноя 15, 10:47    [18387699]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7945
CONCAT('rfc', 123456)
SQL2012+
9 ноя 15, 14:20    [18389393]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
_djХомяГ
Схематично
1 ) Верните назад код
SELECT @sscc = ISNULL(sys_PackCounter,0) + 1 FROM lv_systemparameters WITH (XLOCK, rowlock) WHERE sys_ID = 1
UPDATE lv_systemparameters SET sys_PackCounter = @sscc WHERE sys_ID = 1 --AND ( sys_PackCounter = (@sscc - 1) OR sys_PackCounter IS NULL )

т к lv_systemparameters это таблица счетчик численных значений
2) Добавьте новую переменную
declare 
@sscc1    varchar(1000)
select @sscc1 ='RLD'+convert(varchar,@sscc)

3) Используйте далее новую переменную при выводе на печать
2zero_air мы не знаем версии сервера у автора


Спасибо большое за помощь,так примерно и сделал. Только еще в XML-форме отменил ограничение на 7 символов.В итоге получился нужный штрихкод,но появилась другая проблема:этот ШК не воспринимает ТСД..
10 ноя 15, 10:06    [18393383]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
Владислав Колосов
CONCAT('rfc', 123456)
SQL2012+

У меня 2008 sql
10 ноя 15, 10:07    [18393389]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
zero_air
Максим Александровитч,

Можно тезисами что не так, и что нужно.
В одном месте у вас печать этикеток в Crystal Reports 9
В другом месте у вас ZPL

Про символы в поле INT вам уже написали.

Про счетчик и символ.
Если версия сервера не позволяет использовать сиквенсы, сделайте себе таблицу сиквенсов, с нужными вам префиксами.
И делайте с ней что хотите.
Если вам нужно на выходе RLF121231231 кто мешает сделать процедуру.

Примерно такую.

CREATE PROCEDURE [dbo].[X_GenerateLabel] 
@SSCC varchar(255) OUTPUT
AS 
begin
	declare @returnValue varchar(255)
	declare @SequenceNumber int



IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES 
           WHERE TABLE_NAME = N'X_SG_Sequense')
BEGIN
 --###############Создаем таблицу сиквенсов если ее нет##################### 
  CREATE TABLE [dbo].[X_SG_Sequense](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[SequenceValue] [int] NOT NULL,
	[Description] [varchar](150) COLLATE Cyrillic_General_CI_AS NULL,
	[TypeId] [int] NULL,
	[Preffix] [varchar](25) COLLATE Cyrillic_General_CI_AS NULL,
 CONSTRAINT [PK_X_SG_Sequense] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]


INSERT INTO X_SG_Sequense ([SequenceValue],[Description],[TypeId],[Preffix])
VALUES					  (1,'ForLabel',1,'RLF')

 --###############Создаем таблицу сиквенсов если ее нет#####################  
END

	begin transaction
	set nocount on

	select @SequenceNumber = SequenceValue from X_SG_Sequense where ID = 1
	update X_SG_Sequense set SequenceValue = @SequenceNumber+1 where ID = 1
	set @returnValue = 'RLF' + replicate('0', 10 - len(isnull(convert(varchar(10), @SequenceNumber), '1'))) + isnull(convert(varchar(10), @SequenceNumber), '1')
	select @SSCC = @returnValue

	commit transaction

	return 1
end


Спасибо, вроде бы проблему решил(табл сиквенсов была),но ШК теперь не воспринимет ТСД. В ZPL коде count3 ставил нужные символы RLF BY2^FO30,50^BCN,150,Y,N,N^FD>:RLF%%SSCC_Ship%%^FS-это так же не решило проблему распознования ШК ТСД. Сделал через crystal report 9-получил искомый результат. Но ШК,так же не читается с ТСД.
10 ноя 15, 10:10    [18393409]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
[quot alexeyvg]
Максим Александровитч
Не работает другой способ преобразования тоже..У меня вопрос:разве этот форум не для помощи новичкам? Может позволим посомтреть другим людям,возможно,кто-то работал в облости логистики и смог-таки забить символьно-численное значение в поле int,которое,в последствии,было переведено языком ZPL через CR9 в штрих код?
Какой то поток сознания :-)

Да это разве сознание. Спасибо, в любом случае..
10 ноя 15, 10:12    [18393419]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
_djХомяГ
Guest
[quot Максим Александровитч Сделал через crystal report 9-получил искомый результат. Но ШК,так же не читается с ТСД.[/quot]
Ну тут уже извеняйте, вероятно нарушили правила построения определенного типа штрих кода
10 ноя 15, 10:28    [18393513]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
MangusJR
Member

Откуда:
Сообщений: 23
Максим Александровитч,

В каком конкретно формате вы хотите получить ШК?
Почему бы просто не воспользоваться готовым шрифтом для печати ШК? или использование ZPL так уж необходимо?
10 ноя 15, 10:33    [18393543]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
MangusJR
Максим Александровитч,

В каком конкретно формате вы хотите получить ШК?
Почему бы просто не воспользоваться готовым шрифтом для печати ШК? или использование ZPL так уж необходимо?


Что значит в каком формате?Я не совсем понимаю?ZPL неоходимо использовать, по утверждению разработчика,но их рекомендация по корректировке не дала результатов. В итоге,сам подправил процедуру и внес в SSCC символы RC.
10 ноя 15, 11:00    [18393708]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
_djХомяГ
[quot Максим Александровитч Сделал через crystal report 9-получил искомый результат. Но ШК,так же не читается с ТСД.

Ну тут уже извеняйте, вероятно нарушили правила построения определенного типа штрих кода[/quot]

Я добавляе символы перед SSCC - подумал,что из-за этого не распознается. Удалил - такой же эффект
10 ноя 15, 11:01    [18393712]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
MangusJR
Member

Откуда:
Сообщений: 23
Максим Александровитч,

Я не в курсе ваших требований, но...
Если вы используете CR9 для создания этикеток, то как вы там выводите свой ШК? Через текстовое поле?
Если мне надо ШК для внутреннего использования, и меня никто не ограничивает используемым форматом, то я пользуюсь шрифтом Free 3 of 9, самое простое решение не требует сложных преобразований - просто набираете необходимое значение и задаете шрифт, ну и добавляете символы * в начале и конце ШК. Например *CNT0000001* будет прочитано ТСД как CNT0000001 без звездочек.

Когда встала задача реализовать печать этикеток ITF14, то пришлось использовать другой шрифт и предварительно преобразовывать необходимый текст в набор символов специально для печати.

Судя по тому, что вы печатаете какую-то кастомную этикетку, то вам вполне может подойти мой первый способ, быстро и не требует всяких сложных заморочек.
10 ноя 15, 11:13    [18393783]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
zero_air
Member

Откуда:
Сообщений: 53
Максим Александровитч,

Тема вышла за рамки данного раздела форума..

автор
Но ШК,так же не читается с ТСД

Не читается как ? Сканер сообщает что неверный Штрих код, или не реагирует в принципе ?

Приведенный ниже ZPL код печатает, штрих код в формате Code_128
^XA
^BY4^FO60,100^BCN,210,N,N,N^FD%%SSCC_Ship%%^FS
^ASN,30,30^FO320,320^FB830,2,,С,^FD%%SSCC_Ship%%^FS
^XZ
Иными словами что бы там не вышло на "бумажке" сканер на 100% должен его считать.
Другой момент что этот штрих код в вашем случае может абсолютно ничего не значить...

По поводу Cristal Report
Вот тут можно так нарисовать "картинку" которую сканер не сможет прочитать.
P.S. Я надеюсь вы знаете что Штрих коды в кристале, генерятся через формулу.
В зависимости от версии...
к примеру в 11 версии так, "<BCodeInfo>Code128('{Ваше поле со значением}',10)</BCodeInfo>";
10 ноя 15, 11:19    [18393818]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
zero_air
Максим Александровитч,

Тема вышла за рамки данного раздела форума..

автор
Но ШК,так же не читается с ТСД

Не читается как ? Сканер сообщает что неверный Штрих код, или не реагирует в принципе ?

Приведенный ниже ZPL код печатает, штрих код в формате Code_128
^XA
^BY4^FO60,100^BCN,210,N,N,N^FD%%SSCC_Ship%%^FS
^ASN,30,30^FO320,320^FB830,2,,С,^FD%%SSCC_Ship%%^FS
^XZ
Иными словами что бы там не вышло на "бумажке" сканер на 100% должен его считать.
Другой момент что этот штрих код в вашем случае может абсолютно ничего не значить...

По поводу Cristal Report
Вот тут можно так нарисовать "картинку" которую сканер не сможет прочитать.
P.S. Я надеюсь вы знаете что Штрих коды в кристале, генерятся через формулу.
В зависимости от версии...
к примеру в 11 версии так, "<BCodeInfo>Code128('{Ваше поле со значением}',10)</BCodeInfo>";

Да,знаю, уменя 9-я версия. Вот код на SSCC для перевода его в ШК "<BCodeInfo>Code128b('{Table.SSCC}', 12 )</BCodeInfo>" все это в шрифте IDAtomationC128L
10 ноя 15, 11:49    [18393960]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
ТСД вообще не реагирует,1 раз выдал-таки какую-ть непонятную последовательность цифр
10 ноя 15, 11:50    [18393963]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
Итог:этикетка сканируется-ШД воспроизводится,но только 8 символов,т.е. R1111111,если на 1 символ более,то всё..Подскажите,где можно ограничение посмотреть?
10 ноя 15, 13:36    [18394674]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
zero_air
Member

Откуда:
Сообщений: 53
Максим Александровитч,

Здесь ограничений нет.

Это уже ваши бизнес процессы.
Возьмите профайлер, посмотрите что долетает до SQL во время скана штрих кода.
Если это кастом форма для RF то и там могли задать "короткое" поле, или переменную.
10 ноя 15, 16:20    [18395708]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в счетчик символьного значения  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 506
zero_air
Максим Александровитч,

Здесь ограничений нет.

Это уже ваши бизнес процессы.
Возьмите профайлер, посмотрите что долетает до SQL во время скана штрих кода.
Если это кастом форма для RF то и там могли задать "короткое" поле, или переменную.


Понял.Спасибо
11 ноя 15, 09:09    [18398255]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft SQL Server Ответить