cro-logo      
Добро пожаловать, Гость. Пожалуйста, выберите Вход

 
 
  ГлавнаяСправкаПоискВход  
 
Страниц: 1 2 3 
Послать Тему Печать
Сквозная нумерация в БД (Прочитано 7 370 раз)
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 055
Санкт-Петербург
Re: Сквозная нумерация в БД
Ответ #15 - 09.07.2021 :: 23:08:41
 
Так соответствовала задумке работа формулы в Excel или нет?
Цитата:
Зная, что каждому порядковому номеру соответствует  та или иная должность оператор просто вводит её номер и при помощи поиска на вводе создаёт связь лица с данной должностью.
... для действующих должностей производить пересчет. Например было 1,2,3,4,5,6,7,8,9,10, а с появлением ликвидированых должностей стало 1,2,3А,3,4,5,6А,7А,6,7,8

А теперь подумаем. Вводил, вводил оператор номер 4, ликвидировалась должность 3, стала 3А,  4 стала 3, а 4 совсем другая. Оператор опять вводит 4, но это уже другая должность. Всех надо переучивать. Непонятно, где логика?
Проще оставлять не пересчитывая, просто добавлять буквенный код, или, как уже ранее говорилось, перемещать этот код в поле истории, и оставлять порядковый номер пустой. Он не отберется.
Наверх
 
 
IP записан
 
graffserg
Профи
****
Вне Форума



Сообщений: 134
Re: Сквозная нумерация в БД
Ответ #16 - 09.07.2021 :: 23:47:16
 
Уважаемый Zuluss, на примере БД "должность" :
1. формула из Excel соответствует предьявляемым требованиям и задумке. На данном этапе она проходит тестирование, но в общем то, что необходимо (с доработками).
Суть такова, что изначально все данные вносятся, а потом по мере необходимости редактируются оператором. Всё в Excel. Далее все это распечатывается и согласовывается.
Оператор на всех этапах знает порядковый номер, не зависимо от того добавлялась должность или "ликвидировалась".
2. Логика в том, что оператор на всех этапах знает порядковый номер, так как он в процессе ввода у него перед глазами.
Вот мне и пришло в голову, а что если формула будет делать пересчет порядковых номеров по условию и ликвидированным номерам будет добавлять индекс, а действующие будут идти в нарастающей порядке (о чем я писал выше).
3. Возможно есть ещё способ о котором я не знаю.
Подскажите пожалуйста, возможно ли это реализовать в cronos?
Спасибо.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 055
Санкт-Петербург
Re: Сквозная нумерация в БД
Ответ #17 - 10.07.2021 :: 13:01:24
 
Реализовать можно многое. Вопрос в целесообразности.
Формула в структуре для формирования как в варианте с Excel (пересчет всех номеров)
Код:
@SNS:=FIND("ОТ ШТ01"); @D:=1; @A:=1;
@CNT:=VALCOUNT(@SNS); @I:=1
WHILE(@I<=@CNT) DO
[if (@SNS(@I)#@SYSNOMER) then	(if (ШТ51{@SNS(@I)}#"") then [ШТ10{@SNS(@I)}:=@A<<"A"; @A:=@A+1] else [ШТ10{@SNS(@I)}:=@D; @D:=@D+1])
	else [ if (ШТ51#"") then [ШТ10:=@A<<"A"; @A:=@A+1] else [ШТ10:=@D; @D:=@D+1]];
	@I:=@I+1] 



Вариант с проставлением дополнительной литеры без изменения нумерации
Код:
@SNS:=FIND("ОТ ШТ01"); @CNT:=VALCOUNT(@SNS);
if (ШТ51#"" & ШТ10#"" & CHECKSYMBOL(ШТ10,"A")=0) then (ШТ10:=ШТ10<<"A");
if (ШТ10="" & ШТ51="") then (ШТ10:=@CNT+1) 


Предварительно требует формирования имеющихся номеров с помощью формулы в выходной форме
Код:
@@CNT:=@@CNT+1
if ШТ51 then [ШТ10:=@@CNT<<"A"] else [ШТ10:=@@CNT] 



В формулах ШТ соответствует ДЛ, ШТ51 - дата ликвидации.
Наверх
 
 
IP записан
 
graffserg
Профи
****
Вне Форума



Сообщений: 134
Re: Сквозная нумерация в БД
Ответ #18 - 10.07.2021 :: 16:27:13
 
Спасибо большое.
Буду тестить.
Чуть позже отпишусь.
Наверх
 
 
IP записан
 
graffserg
Профи
****
Вне Форума



Сообщений: 134
Re: Сквозная нумерация в БД
Ответ #19 - 12.07.2021 :: 01:07:02
 
Уважаемый Zuluss!
Все работает, первая формула подходит по всем параметрам.
Единственное, после тестирования хочу спросить - насколько я понял, порядковый номер должности берется согласно системного номера, так вот:

1. Возможно ли подправить код так, чтобы порядковый номер "ликвидированной" должности оставался прежним, только с индексом. Например, была должность за порядковым номером 10, ее "ликвидировали" и порядковый номер стал 10А. В данном варианте "ликвидированный" порядковый номер всегда начинается с 1А и дальше по возрастанию.

2. Например, необходимо новую должность вставить где ни будь в середине или в начале, в общем в любом месте списка, то она, должность, постоянно попадает в конец этого списка, даже если при создании новой записи ввести необходимый номер.
Вот представим, в списке есть 100 должностей с 1 по 100 порядковый номер. Мне как оператору, необходимо внести новую должность с порядковым номером 88. При создании новой должности в поле "код" я ввожу порядковый номер 88, а в поле "Название" - название должности. Соответственно, список будет уже состоять из 101 должности с "вставленным" в нужном месте порядковым номером 88. Таким образом формула пересчет номеров должна произвести уже от номера 88.
Возможно ли реализовать на практике два данных вопроса?
Спасибо.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 055
Санкт-Петербург
Re: Сквозная нумерация в БД
Ответ #20 - 12.07.2021 :: 08:56:30
 
Цитата:
... насколько я понял, порядковый номер должности берется согласно системного номера...

Ни в одном из вариантов системный номер в нумерации не применяется. Везде линейный список по порядку.
Для того,  чтобы реализовать привычный порядок следования должностей, лучше ввести поле "Порядковый номер" и корректировать их после вставки, а при работе с формой ввода их сортировать программно.
Наверх
 
 
IP записан
 
graffserg
Профи
****
Вне Форума



Сообщений: 134
Re: Сквозная нумерация в БД
Ответ #21 - 12.07.2021 :: 09:30:25
 
Цитата:
Ни в одном из вариантов системный номер в нумерации не применяется. Везде линейный список по порядку.
Для того,  чтобы реализовать привычный порядок следования должностей, лучше ввести поле "Порядковый номер" и корректировать их после вставки, а при работе с формой ввода их сортировать программно. 

Ок. Допустим, в базу вводим дополнительное поле "Код должности", а корректировку после вставки нужно будет проводить руками?
А можно ли саму формулу доработать согласно поста выше? Сама формула подходит, а вот если бы её немного доработать вообще идеально.
Спасибо
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 055
Санкт-Петербург
Re: Сквозная нумерация в БД
Ответ #22 - 12.07.2021 :: 10:13:07
 
Сортировка связанных баз по умолчанию идет в порядке системных номеров. По другому не получится.
Предположим такую ситуацию.
СисНомер, Номер п/п (Код), Наименование
101, 21, Начальник отдела
120, 22, Главный специалист
130, 23, специалист

Нам нужно вставить заместителя начальника
Добавляем
140, __, Заместитель начальника
и
141,__ , старший специалист
Как в формуле узнать, куда мы хотим что-то вставить Улыбка?
Наверх
 
 
IP записан
 
graffserg
Профи
****
Вне Форума



Сообщений: 134
Re: Сквозная нумерация в БД
Ответ #23 - 12.07.2021 :: 11:33:39
 
Уважаемый Zuluss:
1. оператор на всех этапах знает порядковый номер, так как он в процессе ввода у него перед глазами. Соответственно, при вводе новой должности уже известен этот самый порядковый номер.

2. Должно получиться примерно так
СисНомер, Номер п/п (Код), Наименование
101.                21.                         Начальник отдела
140.                22.                         Заместитель начальника
120.                23. (был 22.)       Главный специалист
141.                24.                         Старший специалист
130.                25 (был23.)         Специалист

Задумка в том, чтобы при вводе новой должности оператор мог указывать её порядковый номер, не зависимо от того где она, должность, будет вставляется в начале или в середине, а формула автоматически будет производить пересчет от нового порядкового номера.

В Excel это сделать намного проще - вставил строку в любом месте списка, а потом протянул формулу на вставленную строку.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 055
Санкт-Петербург
Re: Сквозная нумерация в БД
Ответ #24 - 12.07.2021 :: 12:07:33
 
Дело в том, что номера уже стоят. Если мы хотим вставить, нужно сначала откорректировать  все последующие номера. Т.е. при вводе проверить существует ли уже указанный номер (код) и предложить произвести пересчет последующих номеров.
Наверх
 
 
IP записан
 
graffserg
Профи
****
Вне Форума



Сообщений: 134
Re: Сквозная нумерация в БД
Ответ #25 - 12.07.2021 :: 12:14:25
 
Этот момент я понимаю, почему и спросил Вас, возможно ли это реализовать с использованием формул, если да, то если не сложно и если Вам будет интересно помогите.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 055
Санкт-Петербург
Re: Сквозная нумерация в БД
Ответ #26 - 12.07.2021 :: 12:51:44
 
Я считаю (почти уверен) это неправильным направлением, поэтому неинтересно.
Наверх
 
 
IP записан
 
graffserg
Профи
****
Вне Форума



Сообщений: 134
Re: Сквозная нумерация в БД
Ответ #27 - 12.07.2021 :: 13:03:51
 
Ок. Тогда хочу спросить, есть ли другие варианты реализации данного вопроса? И какое, по Вашему мнению направление будет более правильным?
Спасибо.
Наверх
 
 
IP записан
 
Zuluss
Бета-тестер
Вне Форума


Старинный пользователь
Кронос

Сообщений: 3 055
Санкт-Петербург
Re: Сквозная нумерация в БД
Ответ #28 - 12.07.2021 :: 13:22:18
 
Эти варианты были расписаны неоднократно ранее в переписке с Вами на форуме. И структура, и порядок работы, и алгоритмы, и примерные формулы.
Улыбка Смайлик кликабельный.
Наверх
 
 
IP записан
 
graffserg
Профи
****
Вне Форума



Сообщений: 134
Re: Сквозная нумерация в БД
Ответ #29 - 12.07.2021 :: 14:44:54
 
Ок. Уважаемый Zuluss, если можно, пожалуйста подскажите:
Цитата:
1. Возможно ли подправить код так, чтобы порядковый номер "ликвидированной" должности оставался прежним, только с индексом. Например, была должность за порядковым номером 10, ее "ликвидировали" и порядковый номер стал 10А. В данном варианте "ликвидированный" порядковый номер всегда начинается с 1А и дальше по возрастанию.

Спасибо
Наверх
 
 
IP записан
 
Страниц: 1 2 3 
Послать Тему Печать