Нумерация документов

Тема в разделе "Lotus - Программирование", создана пользователем makaset, 18 сен 2007.

  1. makaset

    makaset Well-Known Member

    Регистрация:
    14 мар 2007
    Сообщения:
    126
    Симпатии:
    0
    Привет Всем. как можно организовать нумерацию документов. мне надо при регистрации документа пронумеровать ее. типа счетчика.
     
  2. Ronchik

    Ronchik Гость

    Для: makaset
    самое хорошее что видел и делал это отдельную базу для регистрации различных документов
     
  3. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: makaset
    Лучше никак.
     
  4. Гость

    Можно счетчик разместить на форме и через профайл туда загонять значения, если не охота создавать новую базу... Но лучше послушаться предыдущих 2-х советов
     
  5. Yakov

    Yakov Гость

    Для: makaset
    Делаю так.
    Создаю документ-счетчик (ни в коем случае не профильный документ!) с полем, хранящим последний использованный номер.
    Для присвоения номера документу нахожу счетчик, блокирую его, инкрементирую поле с номером, сохраняю счетчик, разблокирываю его, записываю в целевой документ полученный из счетчика номер.
     
  6. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-Ерюков Алексей+18:09:2007, 09:31 -->
    <span class="vbquote">(Ерюков Алексей @ 18:09:2007, 09:31 )</span><!--QuoteEBegin-->Можно счетчик разместить на форме и через профайл туда загонять значения
    [snapback]78563" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    угу... именнно так не надо делать
     
  7. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-Yakov+18:09:2007, 10:36 -->
    <span class="vbquote">(Yakov @ 18:09:2007, 10:36 )</span><!--QuoteEBegin-->Создаю документ-счетчик (ни в коем случае не профильный документ!) с полем, хранящим последний использованный номер.
    Для присвоения номера документу нахожу счетчик, блокирую его, инкрементирую поле с номером, сохраняю счетчик, разблокирываю его, записываю в целевой документ полученный из счетчика номер.
    [snapback]78566" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Аналогично.
    Хотя лучше никак не делать. :)
     
  8. allex

    allex Гость

    Где гарантия что не потребуется создать документ противоречющий нумерации...
    И тут начнется "веселье новогоднее" :)
     
  9. makaset

    makaset Well-Known Member

    Регистрация:
    14 мар 2007
    Сообщения:
    126
    Симпатии:
    0
    может сделать так включить еще одну форму "Nomer". с полем номер. при сохранени документа он обращаетсяв форму "Nomer". делает поле номер+1.
    но мне при сохранени документа как мне добраться до формы номер. елси можно пример кода. за ранее благодарен.
     
  10. Azrael

    Azrael Гость

    Код (Text):
    stView := "(ordernumeration-global)";
    listN := @DbLookup("":"NoCache";"":"";stView;@Text(@Year(@Now));2;[FailSilent]);
    N := @Elements(listN)+1;
    Appendix := @Text(@Now;"S1");
    Appendix := @Middle(Appendix;0;2) + @Middle(Appendix;3;2);
    @SetField("номер";@Text(@Repeat("0";4-@Length(@Text(N)))) + @Text(N) + "-"+Appendix)
    Примерно так: нумерация внутри года + число, полученное из текущего времени, но лучше никак :)
     
  11. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: Azrael
    Загнётся на больших объемах. ;)
    Плюс на разных репликах получим одинаковые номера.
     
  12. Azrael

    Azrael Гость

    Для: Medevic
    Зависит от задачи + оптимизация, в моем случае в колонке в виде - число, колонка сортируется по убыванию, далее, вместо N := @Elements(listN)+1; - берем первый элемент из вида, итого получаем безпроблемную работу для документа в виде до ~16к документов, да и далее т.к. берем 1-ое значение, работать нормально должно. Потом: какова вероятность того, что 2 юзера создадут 2 документа одновременно с точностью до секунды? Ну будут документы с номерами 0057-1306 и 0057-1402, номера то уникальные все равно, тут, конечено, не идет речь о мега-корпорациях, когда базой пользуются тысячи человек.
     
  13. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    <!--QuoteBegin-Azrael+18:09:2007, 11:07 -->
    <span class="vbquote">(Azrael @ 18:09:2007, 11:07 )</span><!--QuoteEBegin-->Потом: какова вероятность того, что 2 юзера создадут 2 документа одновременно с точностью до секунды?
    [snapback]78582" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    Очень велика, если регистрацией занимаеться отдельный секритариат , с всего лишь 4мя операторами. поверте опыту

    <!--QuoteBegin-Azrael+18:09:2007, 11:07 -->
    <span class="vbquote">(Azrael @ 18:09:2007, 11:07 )</span><!--QuoteEBegin-->номера то уникальные все равно, тут, конечено, не идет речь о мега-корпорациях, когда базой пользуются тысячи человек.
    [snapback]78582" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    кто сказал?
     
  14. Ronchik

    Ronchik Гость

    <!--QuoteBegin-makaset+18:09:2007, 10:00 -->
    <span class="vbquote">(makaset @ 18:09:2007, 10:00 )</span><!--QuoteEBegin-->может сделать так включить еще одну форму "Nomer". с полем номер. при сохранени документа он обращаетсяв форму "Nomer". делает поле номер+1.
    но мне при сохранени документа как мне добраться до формы номер. елси можно пример кода. за ранее благодарен.
    [snapback]78575" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    такого делать нельзя т.к. регистрацией может заниматься несколько юзеров.....не будет обновляться форма Nomer на клиенте
     
  15. Azrael

    Azrael Гость

    <!--QuoteBegin-Morpheus+18:09:2007, 13:10 -->
    <span class="vbquote">(Morpheus @ 18:09:2007, 13:10 )</span><!--QuoteEBegin-->Очень велика, если регистрацией занимаеться отдельный секритариат , с всего лишь 4мя операторами. поверте опыту
    [snapback]78583" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    прямо секунда в секунду? ужас. Тогда можно в номер еще буквы добавить из инициалов пользователя (учесть случай с одинаковыми), либо присвоить пользователям код.
     
  16. Ronchik

    Ronchik Гость

    <!--QuoteBegin-Azrael+18:09:2007, 11:38 -->
    <span class="vbquote">(Azrael @ 18:09:2007, 11:38 )</span><!--QuoteEBegin-->прямо секунда в секунду? ужас. Тогда можно в номер еще буквы добавить из инициалов пользователя (учесть случай с одинаковыми), либо присвоить пользователям код.
    [snapback]78592" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    такое не прокатывало ...пробовал
     
  17. Azrael

    Azrael Гость

    <!--QuoteBegin-Ronchik+18:09:2007, 13:45 -->
    <span class="vbquote">(Ronchik @ 18:09:2007, 13:45 )</span><!--QuoteEBegin-->такое не прокатывало ...пробовал
    [snapback]78597" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    почему, если не секрет? или просто формат номера типа 0057(просто числа, по возрастающей, могут повторяться в разных репликах) - 001 (код сотрудника) - 1358(текущее время), или 0057-АлС-1359, где АлИ - условные инициалы в случае повторения (у др. пользователя, например, АнИ)
     
  18. Ronchik

    Ronchik Гость

    <!--QuoteBegin-Ronchik+18:09:2007, 11:45 -->
    <span class="vbquote">(Ronchik @ 18:09:2007, 11:45 )</span><!--QuoteEBegin-->почему, если не секрет?
    [snapback]78597" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    1 регистрацией занималось одновременно несколько юзеров
    2 Номер должен был быть единый и не зависить от каких либо других факторов
    3. Регистрация проходила автоматически при создании нового документа

    При всем при этом пробовал различные схемы проставления номера.....и реально более менее нормално работают только 2 варианта
    1 В скрипте создать док сномером потом открывать на редактирование
    2 Использовать отдельную БД для регистрации где различные добавления типа <!--QuoteBegin-Azrael+18:09:2007, 11:54 -->
    <span class="vbquote">(Azrael @ 18:09:2007, 11:54 )</span><!--QuoteEBegin-->001 (код сотрудника)
    [snapback]78603" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    можно настраивать
     
  19. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Вариант нумерации ночью агентом не подходит ?
     
  20. makaset

    makaset Well-Known Member

    Регистрация:
    14 мар 2007
    Сообщения:
    126
    Симпатии:
    0
    не не подохдить. в моем случае. Ргистрацию будет делать один человек. и еще база не секм не реплицируется. поэтому я хотчу сделать номер = номер+1.
    но никак не могу добравться до фромы номер. обьясните пожалуиста. как добравтся до поле из другого формы.
     
Загрузка...

Поделиться этой страницей