Порядковый номер

  • Автор темы Erick
  • Дата начала
D

DNT

<!--QuoteBegin-Erick+1:03:2006, 15:22 -->
<span class="vbquote">(Erick @ 1:03:2006, 15:22 )</span><!--QuoteEBegin-->Для: Medevic Нет, если № считывать по последнему документу в представлении. А вот если использовать дополнительный документ со счётчиком, то да.
[snapback]31296" rel="nofollow" target="_blank[/snapback]​
[/quote]

С последним документом совсем всё плохо. Представь: если два человека открывают новую форму - какой номер документа будет??? Правильно - одинаковый. не подходит.
 
D

DNT

<!--QuoteBegin-Medevic+1:03:2006, 14:56 -->
<span class="vbquote">(Medevic @ 1:03:2006, 14:56 )</span><!--QuoteEBegin-->Обычный документ. Просто создай по отдельной форме. Создай представление с выбором по этой форме. Из него потом будешь документ выбирать.
Обычные документы не кешируются.
[snapback]31289" rel="nofollow" target="_blank[/snapback]​
[/quote]

Так я же говорю - у меня документ ОБЫЧНЫЙ
 
E

Erick

Для: DNT Точно, решил свою проблему.:eek:

А как сделать, чтобы формат номера при выводе на поле был такой: 001, 002, и т.д., а не 1, 2, ...?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-DNT+1:03:2006, 15:21 -->
<span class="vbquote">(DNT @ 1:03:2006, 15:21 )</span><!--QuoteEBegin-->Да, с этим лажа. просто не знаю как бороться. Как то сдесь поднимал эту тему, ждал реальных примеров, проблема номарации, то не редкая, - не дождался и сделал как сделал. Работает. Пользователи знают об этом баге. Смирились. Если предложите вариант решения получше - скажу спасибо!
[snapback]31294" rel="nofollow" target="_blank[/snapback]​
[/quote]
Самый простой вариант делать это в PostSave. Сложность в том, что свойство IsNewDoc там уже равно False. Выход - делаем свою глобальную переменную (объявляем в Declarations формы). Пусть будет myIsNewDoc типа Boolean.
В QueryOpen документа пишем:
Код:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
myIsNewDoc = Isnewdoc
End Sub
В PostSave пишем:
Код:
Sub Postsave(Source As Notesuidocument)
If myIsNewDoc Then
'увеличиваем счетчик и присваиваем номер
Call Source.Document.Save(True, True, True)
myIsNewDoc = False
End If
End Sub
Минус в том, что пользователь не может знать номер, какой будет у документа пока не сохранить его. Можно сделать вычисляемое поле, где показывать предполагаемый номер.
И избавься от профильных документов, пока проблемы не появились.
Если серверов много, то все будет гораздо сложнее.
 
D

DNT

to Medevic

Я делал уже и таким образом, забраковали: необходимо видеть номер сразу при создании нового документа. По другому никак. Конечно, если бы устраивал вариант "взятия номера" при сохранении, то проблем не было бы - используя последний документ в представлении.

По поводу профильного документа: я устал повторять :eek: - я использую ОБЫЧНЫЙ документ :) .
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-Erick+1:03:2006, 15:32 -->
<span class="vbquote">(Erick @ 1:03:2006, 15:32 )</span><!--QuoteEBegin-->А как сделать, чтобы формат номера при выводе на поле был такой: 001, 002, и т.д., а не 1, 2, ...?
[snapback]31302" rel="nofollow" target="_blank[/snapback]​
[/quote]
Создай текстовое вычисляемое поле со значением
Код:
@Right("000" + @Text(Number); 3).
Где Number - поле с номером.
 
E

Erick

Так а почему вы не хотите брать значение счётчика из view.GetLastDocument, проблема вродеж сразу отпадает?! Раз документ не сохраняется, то и счётчик не увеличивается!

Помогите, плиз, с этим:
А как сделать, чтобы формат номера при выводе на поле был такой: 001, 002, и т.д., а не 1, 2, ...?
Очень надо! :eek:
 
D

DNT

<!--QuoteBegin-Erick+1:03:2006, 15:32 -->
<span class="vbquote">(Erick @ 1:03:2006, 15:32 )</span><!--QuoteEBegin-->Для: DNT Точно, решил свою проблему.:eek:

А как сделать, чтобы формат номера при выводе на поле был такой: 001, 002, и т.д., а не 1, 2, ...?
[snapback]31302" rel="nofollow" target="_blank[/snapback]​
[/quote]

Конвертируй число в стринг и добавляй к нему нули. Только количество прибавляемых нулей будет зависеть от количества символов в номере.
 
D

DNT

<!--QuoteBegin-Erick+1:03:2006, 15:49 -->
<span class="vbquote">(Erick @ 1:03:2006, 15:49 )</span><!--QuoteEBegin-->Так а почему вы не хотите брать значение счётчика из view.GetLastDocument, проблема вродеж сразу отпадает?! Раз документ не сохраняется, то и счётчик не увеличивается![/quote]

Смотри пост №21
 
E

Erick

Для: Medevic Не работает. Выводит всё также. :eek:
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-DNT+1:03:2006, 15:47 -->
<span class="vbquote">(DNT @ 1:03:2006, 15:47 )</span><!--QuoteEBegin-->Я делал уже и таким образом, забраковали: необходимо видеть номер сразу при создании нового документа. По другому никак. Конечно, если бы устраивал вариант "взятия номера" при сохранении, то проблем не было бы - используя последний документ в представлении.
[snapback]31305" rel="nofollow" target="_blank[/snapback]​
[/quote]
А как ты себе это представляешь ?
Пусть у нас есть 2 пользователя. Один тормоз, другой газ.
Тормоз создал документ и пишет в нем. Медленно. Ему дали номер 105.
Тут газ тоже создал документ. Ему дали номер 106. Он его заполнил, сохранил и ушел курить.
А тормоз все пишет и пишет. Потом думает, что за фигню я пишу и не сохраняет документ. В результате у тебя в базе нет документа с номером 105.
Тоже косяк.

<!--QuoteBegin-DNT+1:03:2006, 15:47 -->
<span class="vbquote">(DNT @ 1:03:2006, 15:47 )</span><!--QuoteEBegin-->По поводу профильного документа: я устал повторять ohmy.gif - я использую ОБЫЧНЫЙ документ
[snapback]31305" rel="nofollow" target="_blank[/snapback]​
[/quote]
:eek:
 
E

Erick

Для: DNT А как конвертировать? Какой функцией?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-Erick+1:03:2006, 15:52 -->
<span class="vbquote">(Erick @ 1:03:2006, 15:52 )</span><!--QuoteEBegin-->Для: Medevic Не работает. Выводит всё также. sad.gif
[snapback]31310" rel="nofollow" target="_blank[/snapback]​
[/quote]
Где не работает ? В представлении ? Тогда в колонке пропиши эту формулу.
 
D

DNT

<!--QuoteBegin-Medevic+1:03:2006, 15:52 -->
<span class="vbquote">(Medevic @ 1:03:2006, 15:52 )</span><!--QuoteEBegin-->А как ты себе это представляешь ?
Пусть у нас есть 2 пользователя. Один тормоз, другой газ.
Тормоз создал документ и пишет в нем. Медленно. Ему дали номер 105.
Тут газ тоже создал документ. Ему дали номер 106. Он его заполнил, сохранил и ушел курить.
А тормоз все пишет и пишет. Потом думает, что за фигню я пишу и не сохраняет документ. В результате у тебя в базе нет документа с номером 105.
Тоже косяк.
:eek:
[snapback]31311" rel="nofollow" target="_blank[/snapback]​
[/quote]

Да... Хороший примерчик... Главное за жизнь :) :D :D .

Так что? Меня раскритиковали! А свой вариант выхода из тупика?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-DNT+1:03:2006, 15:57 -->
<span class="vbquote">(DNT @ 1:03:2006, 15:57 )</span><!--QuoteEBegin-->Так что? Меня раскритиковали! А свой вариант выхода из тупика?
[snapback]31314" rel="nofollow" target="_blank[/snapback]​
[/quote]
А я уже написал. У меня пользователям не надо знать номер заранее. :eek:
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
6
<!--QuoteBegin-Erick+1:03:2006, 15:58 -->
<span class="vbquote">(Erick @ 1:03:2006, 15:58 )</span><!--QuoteEBegin-->Для: Medevic Нет, в поле на форме.
[snapback]31315" rel="nofollow" target="_blank[/snapback]​
[/quote]
Т.е. ты создал вычисляемое поле, поместил в него формулу @Right("000" + @Text(Number); 3) и не работает ? Нажми f9.
 
D

DNT

<!--QuoteBegin-Medevic+1:03:2006, 15:59 -->
<span class="vbquote">(Medevic @ 1:03:2006, 15:59 )</span><!--QuoteEBegin-->А я уже написал. У меня пользователям не надо знать номер заранее. :)
[snapback]31316" rel="nofollow" target="_blank[/snapback]​
[/quote]

Ну вот. Договорились. Кстати вопрос не в тему (просто там не отвечают :eek: ):

пишу: Call rtitem.AppendDocLink ( doc, "Документ")
ответ: Вы не имеете права выполнять эту операцию ohmy.gif
вопрос: куда смотреть?
 
E

Erick

<!--QuoteBegin-Medevic+1:03:2006, 16:01 -->
<span class="vbquote">(Medevic @ 1:03:2006, 16:01 )</span><!--QuoteEBegin-->@Right("000" + @Text(Number); 3)
[snapback]31317" rel="nofollow" target="_blank[/snapback]​
[/quote]

Странно, вреде должно работать, но не хочет.
:eek:
 
D

DNT

<!--QuoteBegin-Erick+1:03:2006, 16:09 -->
<span class="vbquote">(Erick @ 1:03:2006, 16:09 )</span><!--QuoteEBegin-->Странно, вреде должно работать, но не хочет.
:eek:
[snapback]31320" rel="nofollow" target="_blank[/snapback]​
[/quote]

А что у тебя "Number"?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!