Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по нумерации документов   Найти похожие ветки 

 
Koala ©   (2004-09-03 13:49) [0]

Есть справочник номеров документов которые получают из типографии
дата, №_начальный, №_конечный, Отметка_О_Списании
Есть журнал документов уже отпечатанных
ID, дата, №_Док, ... данные
Как лучше организовать номерацию документов...
может кто сталкивался с этим и может подсказать наилучший алгоритм...
Вопрос сформулировал может не сильно понятно, тогда перефразирую...
За ранее благодарен


 
Карелин Артем ©   (2004-09-03 14:40) [1]

>>Как лучше организовать номерацию документов...
Номер=номер+1????????????
Наверно нет.
Перефразируй лучше что надо канкретно надо..


 
Koala ©   (2004-09-03 14:57) [2]


> Номер=номер+1????????????

это правильно...
но для начала нужно вызвать список из справочника доступных номеров т.е. не списанных, затем в журнале найти последний используемый номер, а потом вставлять Inc(Номер). и следить за тем, когда Номер достигнет №_Конечный установить флаг в справочнике что пачка списана и взять нумерацию следующе пачки...


 
Drakosha   (2004-09-03 15:03) [3]

в Oracle есть sequence
наверняка и в других есть что то подобное.
Нахудой конец тригер завести.


 
Koala ©   (2004-09-03 15:32) [4]

Проблема в следующем, ряд документов формируется во временной таблице, одним пользователем локально, т.е. доступ к формированию первой партии документов (путевые листы для легкового автомобиля) на следующий день есть только у одного пользователя (диспетчера). Он формирует список, затем пока распределятся коммандировки, пересадка водителя с одной машины на другую, вобщем пока эта утряска пройдет часам к 16-17 тогда запускается печать путевых и маршрутных листов. так что тригер тв этом случае не поможет, а вот дальше... при работе с этими документами на счет тригера надо подумать
> Drakosha   > Нахудой конец тригер завести.(03.09.04 15:03)
спасибо за совет....
Использую Firebird 1.5 с sequence не сталкивался


 
Sergey13 ©   (2004-09-03 15:35) [5]

2[2] Koala ©   (03.09.04 14:57)
Может стОит сделать ссылку на пачку для документа? Проще будет контролировать. А так max+1, наверное больше никак.
А номера в пачках разрываются? Типа в первой 100-200 следующая 300-400?


 
Sergey_Masloff   (2004-09-03 15:45) [6]

Sergey13 ©   (03.09.04 15:35) [5]
>Типа в первой 100-200 следующая 300-400?

Это фигня. Вот когда мы бланки ОСАГО получаем - там нумерация не по порядку. Ну типа бланки защищенные если сбой станка то с таким номером больше не печатается а в пачку на его место подкладывается рандомный ;-) (ну типа строгий учет - должно быть тысяча в пачке так и будет).
 Но и это фигня - уже есть дубликаты то есть напечатали реально с нарушением primary key. Классно, да?
 Вот это я назяваю Ж а там если пачки с разрывами - так это даже не проблема ;-)


 
Koala ©   (2004-09-03 15:47) [7]


> [5] Sergey13 ©   (03.09.04 15:35)
> А номера в пачках разрываются?

Пачки получаем из типографии, т.е. нумерация напр. 20250-20500, 3000-14000 только серии разные но меня серии как таковое не интересует..., а вот талоны заказчика, те вообще идут как бланки строгой отчетности (с водяными знаками и др. защитой) за них еще и отчитыватся надо в конце месяца, вот тут серия как раз нужна, но это уже следующий этап....

> Может стОит сделать ссылку на пачку для документа?

не понял, поясни пож...


 
Sergey13 ©   (2004-09-03 15:50) [8]

2[6] Sergey_Masloff   (03.09.04 15:45)
Просто у разных людей и Ж разные. 8-)


 
Koala ©   (2004-09-03 15:54) [9]


> [6] Sergey_Masloff   (03.09.04 15:45)


> а там если пачки с разрывами - так это даже не проблема
> ;-)

Подскажи как ты реализовывал нумерацию...
если не трудно...


 
Koala ©   (2004-09-03 16:01) [10]


>
> [3] Drakosha   (03.09.04 15:03)
> Нахудой конец тригер завести.

не подскажешь как его сделать????


 
Sergey13 ©   (2004-09-03 16:01) [11]

2[7] Koala ©   (03.09.04 15:47)
>не понял, поясни пож...

>Есть журнал документов уже отпечатанных
>ID, дата, №_Док, ... данные
Сюда добавить ID_пачки, что бы можно было определить допустимый диапазон адресов


 
Sergey13 ©   (2004-09-03 16:02) [12]

Ты бы хоть БД сказал какая.


 
Sergey_Masloff   (2004-09-03 16:03) [13]

Вообще так просто не расскажешь.
Есть сущность пачка есть сущность документ (один-ко-многим)
У пачки есть куратор у документа есть куратор и статус - создан системой, выдан, испорчен и так далее. Куратор отвечает за пачку - то есть получив заводит ее - первый номер и число бланков. Программа генерирует N=число бланков записей. Куратор пачки раздает бланки другим кураторам (они могут раздавать дальше так что нужна история на каком этапе кто отвечал за бланк).
 В программе оператор же работает с бумажным бланком - берет его вводит первые цифры и выбирает из списка допкстим. И все. Если на бумажках уже есть номера то нумеровать их из программы неразумно.

А так писать долго - это на главу книги потянет


 
Koala ©   (2004-09-03 16:07) [14]


>  [11] Sergey13 ©   (03.09.04 16:01)
> Сюда добавить ID_пачки, что бы можно было определить допустимый
> диапазон адресов

но для чего??? если №_Док уже стоит в для чего диапазон то...?????


 
Sergey13 ©   (2004-09-03 16:08) [15]

2[14] Koala ©   (03.09.04 16:07)
А чего тогда вообще нумеровать то надо если все номера есть? 8-)


 
Koala ©   (2004-09-03 16:19) [16]


> [13] Sergey_Masloff   (03.09.04 16:03)


> Программа генерирует N=число бланков записей.

т.е. программа вставляет в таблицу N-ое кол-во строк содержащих только номер документа, а оператор уже выбирая из списка нужный номер дополняет его нужными данными (я правильно понял???)

>
>  [15] Sergey13 ©   (03.09.04 16:08)
> А чего тогда вообще нумеровать то надо если все номера есть?
> 8-)

мне нужен первый этап сама нумерация, а когда № уже вставлен то зачем проверять диапазон
или я не правильно вас понял....


 
Sergey_Masloff   (2004-09-03 16:31) [17]

Koala ©   (03.09.04 16:19) [16]
>т.е. программа вставляет в таблицу N-ое кол-во строк содержащих >только номер документа,
Ну почему только номер. Всю информацию которую она может узнать без оператора. Если это билет то фамилию пассажира она конечно не вставит. А вот дату регистрации билета на складе, дату передачи кассиру, всякую аналитику - пожалуйста.


 
Koala ©   (2004-09-03 16:48) [18]


> [17] Sergey_Masloff   (03.09.04 16:31)
> дату регистрации билета на складе, дату передачи кассиру,
> всякую аналитику - пожалуйста

но мне эта инфа не нужна, и она нигде не используется, тут сам смысл: при формировании путевых листов программа должна проанализировать какие пачки есть в справочнике создать список и указать диспетчеру, что вставьте путевые листы с № ... по № ...


 
Sergey13 ©   (2004-09-03 17:03) [19]

2[18] Koala ©   (03.09.04 16:48)
> при формировании путевых листов программа должна проанализировать какие пачки есть в справочнике создать список и указать диспетчеру, что вставьте путевые листы с № ... по № ...
А не проще при вводе новой пачки автоматом нагенерить нужные документы с номерами?


 
Koala ©   (2004-09-03 18:28) [20]


> [19] Sergey13 ©   (03.09.04 17:03)
> А не проще при вводе новой пачки автоматом нагенерить нужные
> документы с номерами?

этот метод не совсем подходит...



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.032 c
6-1090728007
DelphiN!
2004-07-25 08:00
2004.10.03
Ссылка на объект для скачивания


3-1094467355
Heretic
2004-09-06 14:42
2004.10.03
Четырех-кратная связь таблиц. Проблема вывода табличных частей.


4-1093253144
Hyboid
2004-08-23 13:25
2004.10.03
Иконки


4-1092979626
RagE
2004-08-20 09:27
2004.10.03
Оконная процедура и класс


8-1088850562
Dominus
2004-07-03 14:29
2004.10.03
Redo в Memo





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский