Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
|
13:11:2003, 14:21
|
|
MANTICora Software Группа: Lotus team Сообщений: 826 Регистрация: 8:08:2003 Из: Минск, Беларусь Пользователь №: 4 Репутация: 1
|
Тема для постинга мелких вопросов - ответов для разрботчиков приложений и баз Lotus Notes. Если Ваш вопрос влечет долгое обсуждение, то желательно создать отдельную тему.
|
|
Сообщение
#1
|
|
![]() |
|
|
13:05:2004, 11:13
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
Ах, что я такое говорю. Если по убыванию сортировать, то первый документ как раз будет с самым большим индексом. С этим все понятно. Буду дальше разбираться.
|
|
Сообщение
#151
|
|
|
|
13:05:2004, 12:12
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
1)Как сказать, что newdoc – это тот документ, который только что создан (current)? или counter подразумевает, что пренадлежит к current?
2)Он мне выдает ошибку Varient does not contain an object если в списке нет ни одного документа, почему? 3)counter = doc.counter(0) +1 получаю Type mismatch. Что значит "0"? 4) Как присвоить полю типа Number полученое значение counter (Integer type)? Какую именно и где использовать формулу? Пытался и Field и SetField, но не получаеться (может не правильно пользую?). Буду очень благодарен! |
|
Сообщение
#152
|
|
|
Гость_Guest_*
|
14:05:2004, 04:13
|
|
Инопланетный гость |
Veselinka А еще есть способы подсчета и присвоения номера?
|
|
Сообщение
#153
|
|
|
|
14:05:2004, 06:47
|
|
Lotus team Группа: Lotus team Сообщений: 142 Регистрация: 3:03:2004 Из: Новосибирск Пользователь №: 303 Репутация: 0
|
Gogan.exe - похоже что ты путаешь скрипт и формулы.
То что я писала - писала на скрипте. Я не буду здесь читать курс по синтаксису скрипта - кроме того это есть в ]]>http://documentflow.softaria.com/docs/lotus.doc]]> посмотри как получить текущий документ на события формы или на кнопке если у тебя код на кнопке исполняется. Guest - приведенный способ подсчета - один из оптимальных, однако надо понимать, что в распределенной среде он может давать сбои, так как на разных серверах может одновременно возникнуть документ с одним и тем же номером. В распределенной системе для решения задач нумерации часто используется либо сложная система построения номера , где номер зависит от места создания документа, либо номера присваиваются документам по расписанию самой системой во время минимальной активности пользователей - где-то ночью на центральном сервере, чтобы все не попавшие еще на центральный сервер документы - просто не были пронумерованы. В нотесах нет секвенций как в РДБ, к сожалению и транзакций тоже нет, поэтому нельзя гарантировать 100% уникальность нумерации, а лишь минимальную веротяность ситуации в которой могут возникнуть дубликаты. Хотя ждите R7, подкладывайте DB2 и наслаждайтесь всеми прелестями RDBMS |
|
Сообщение
#154
|
|
|
|
14:05:2004, 07:43
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
Тот док, на который ты мне ссылку дала у меня есть.
Сейчас я все подряд путаю. Мне дали пример БД с работающим каунтером, но там вообще не разобраться ни в чем! Вот что я накидал в Form ->Field (Номер Документа) ->Initialize : Sub Initialize Dim session As New NotesSession Dim db As NotesDatabase Dim view As NotesView Dim doc As NotesDocument Dim counter As Integer Set db = session.CurrentDatabase Set view = db.GetView("СписокДокументов") Set doc = view.GetFirstDocument If Isnull(doc) Then counter = 1 Else counter = 2 End If counter = 3 End Sub Правильно ли это? Каунтер =3 – это для проверки просто ну и 2 – тоже для провсерки… короче сейчас этот скрипт просто должен присвоить значение каунтеру. Как теперь сделать так, чтобы при открытии документа, в поле Номер Документа указывалось значение, хранимое в counter? Где именно и что именно нужно написать? Туда ли я поместил этот скрипт? |
|
Сообщение
#155
|
|
|
|
14:05:2004, 09:16
|
|
Lotus team Группа: Lotus team Сообщений: 142 Регистрация: 3:03:2004 Из: Новосибирск Пользователь №: 303 Репутация: 0
|
Запись в поле делается при открытии документа или при сохранении - правильнее делать при сохранении, чтобы уменьшить тот интервал, в который кто-то еще может создать документ и ему посчитается тот же номер.
Поэтому рассмотрим событие QuerySave формы Сразу говорю - объекты в скирипте проверяются на IS nothing а не на Null, не внимательно значит читал документ, раз такие ошибки делаешь (см страницу 66) Dim db As NotesDatabase Dim view As NotesView Dim doc As NotesDocument Dim counter As Integer Set db = source.document.parentDatabase Set view = db.GetView("СписокДокументов") Set doc = view.GetFirstDocument If doc is nothing Then counter = 1 Else counter=doc.counter(0)+1 End If source.document.counter=counter В данном куске кода предполагается, что номер хранится в поле counter Если повесить на открытии документа, то подойдет событие открытия формы PostOpen, только надо будет UIDocument рефрешить - call source.refresh, ну и считать надо каунтер 1 раз - когда документ новый - source.isnewdoc, не пересчитывать каждый раз при открытии. |
|
Сообщение
#156
|
|
|
|
14:05:2004, 11:00
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
Про null я прочитал в F1. Может, я просто не так понял. Хотя в предложенном варианте я видел, что стоит Nothing. :
“Return value Document The specified document. If the specified document is not in the collection, returns null. “ Так что извини. С остальным сейчас буду разбираться. Только вот уже сейчас не ясно, как сделать так, чтобы значение counter отображалось в поле (Field) НомерЗаказа? Я пытался сделать через @SetField() Но опять же не понял куда и как это вписывать. Спасибо. |
|
Сообщение
#157
|
|
|
|
14:05:2004, 11:22
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
Уа, товарищи! Считает. По всей видимости он и раньше считал, но только теперь я понял как провеить - создал столбец во View. Красиво так считает. Теперьвот как это значение присвоить полю?
|
|
Сообщение
#158
|
|
|
|
14:05:2004, 11:44
|
|
Lotus team Группа: Lotus team Сообщений: 142 Регистрация: 3:03:2004 Из: Новосибирск Пользователь №: 303 Репутация: 0
|
call doc.replaceitemvalue("имя поля",значение или переменная со значением)
|
|
Сообщение
#159
|
|
|
|
14:05:2004, 12:26
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
Чего-то не работает. Остаеться прежним.
|
|
Сообщение
#160
|
|
|
|
14:05:2004, 19:55
|
|
Lotus master Группа: Lotus team Сообщений: 354 Регистрация: 10:04:2004 Пользователь №: 398 Репутация: 5
|
Привет! Довно на форум не заходил, ивините, народ...
Veselinka, все что ты написала выше про порядкоый номер через представления, я уже писал, по-моему, раза 3 тут на форуме и мне в конец заколебало отвечать на одно и тоже (уже недели три прошло вроде, когда вопрос появился... хотя все еще вопрос актуален! НАРОД Какое хочу сделать замечание - 90% вопросов крайне неинтересны и все как-то по мелочам... Создается впечатление, что малюпасенькая загвоздка толкает человека спрашивать что-то на форуме и ждать, пока ответят... Мне было бы, честно говоря, влом и самому интереснее было бы разобраться... Например, "Что значит dim в начале многих строчек в коде Лотуса" - ну это вообще... Или "FIELD Fieldname:=Fieldmame; Где должна стоять эта строка, почему она необходима, что в ней есть что, и зачем она вообще нужна?" Про редактирование отдельных частей документа я уже 2 раза тоже отвечал... Ссылки на документы в письме работают только в почтовом клиенте Lotus, в других они не работают - это очевидно... КАК ПРИСВОИТЬ ЗНАЧЕНИЕ (числовое) ПОЛЮ Я ЧУТЬ ЛИ НЕ ЦЕЛУЮ СТАТЬЮ ПОСВЯТИЛ! |
|
Сообщение
#161
|
|
|
|
14:05:2004, 20:05
|
|
Lotus master Группа: Lotus team Сообщений: 354 Регистрация: 10:04:2004 Пользователь №: 398 Репутация: 5
|
Gogan.exe
Мой тебе совет - потрать неделю (7 дней) своего драгоценного времени и разберись, как написана бд какая-нибудь другими разработчиками (можешь использовать шаблон) также научись работать с дебугером - крайне полезная штука почитай книги + хелп - последовательно только, пройдись по все классам, ксати в хелпе есть масса реально работающих примеров после этого у тебя отпадут десятки тысяч вопросов, ты будешь програмировать быстрее, качественнее, будешь получать кайф и сохранишь при этом миллиарды нервных клеток.... не обижайся, пожалуйста, но твои вопросы действительно несколько примитивны... я рад помочь, но с организацией семинара по основам программирования в domino вряд ли получится.... |
|
Сообщение
#162
|
|
|
|
17:05:2004, 06:10
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
Я понимаю твое возмущение, и я бы и сам на твоем месте был бы возмущен (мне подобные вопросы по с++ постоянно задают). Но послушай, что я тебе скажу: Тебе сложно ответить на мелкие вопросы? Хелп я читаю стабильно, есть книжка, и БД я создавал уже. А как я пойму шаблон, если мне не понятно было что такое ДИМ? Ну а то что вопросы мелкие… ты на тему этой ветки смотрел?
В общем, так, поверьте, я не халявничаю. Появившийся вопрос я тут же задаю здесь и параллельно начинаю искать в книге, хелпе… Если здесь ответ появиться – прекрасно, тогда следующий чайник вроде меня не будет так сильно напрягаться в поисках решения. Если какие-то темы обсуждались, и тем более, если написана была статейка – дай ссылку и я буду благодарен! |
|
Сообщение
#163
|
|
|
|
17:05:2004, 09:23
|
|
Новенький Группа: Новенький Сообщений: 42 Регистрация: 14:04:2004 Пользователь №: 416 Репутация: 0
|
norСогласен, вот например, в б.д. копался, а там свойство parentdatabase, полез в хэлп узнать для чего оно там и как функцианирует, взял пример, ага ничего, из названия то понял а для чего оно нет. В этом примере написано что будет показано одно и то же название потому что типа одна б.д. Короче в итоге я так и не понял его назначения, а у кого спросить? С уважением Я.
|
|
Сообщение
#164
|
|
|
|
17:05:2004, 09:47
|
|
Новенький Группа: Новенький Сообщений: 42 Регистрация: 14:04:2004 Пользователь №: 416 Репутация: 0
|
norпрошу прощения, в хэлпе написано что метод нью для нотесдатабэйз не создает новую б.д., в этом была моя ошибка, извиняюсь. Но насчет основного наезда по моему ты все равно не прав, задавать ведь можно любые вопросы, другое дело будешь ТЫ на них отвечать или нет лично твое.
|
|
Сообщение
#165
|
|
|
|
17:05:2004, 10:56
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
У нас в средней школе, в кабинете по химии (кажется) было написано «Единственный глупый вопрос – это не заданный вопрос». Вот так вот!
|
|
Сообщение
#166
|
|
|
|
17:05:2004, 12:06
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
Ну, так что, поможет мне кто-нибудь с передачей значения из переменной в поле?
|
|
Сообщение
#167
|
|
|
|
17:05:2004, 13:33
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
Все... с этим я разобрался! Нужно было @all написать... откуда мне было знать! Но теперь я знаю. Спасибо всем... завтра задам новые глупые вопросы.
|
|
Сообщение
#168
|
|
|
|
18:05:2004, 06:09
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
У меня совсем засорился список полей (Field). Прежде чем начать создавать базу, я просмотрел много хелпов и где-то натыкался на то, как этот список почистить, но теперь не помню, где это видел. Если кто-нибудь знает – напомните, где это можно найти?
|
|
Сообщение
#169
|
|
|
|
18:05:2004, 09:23
|
|
MANTICora Software Группа: Lotus team Сообщений: 826 Регистрация: 8:08:2003 Из: Минск, Беларусь Пользователь №: 4 Репутация: 1
|
Сделать compact базе с установленной опцией "Document table bitmap optimization" на базе и если это поля не задействовано ни в одном документе - оно удаляется...
|
|
Сообщение
#170
|
|
|
|
18:05:2004, 10:47
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
Хм... странно, но они не пропали
|
|
Сообщение
#171
|
|
|
|
18:05:2004, 12:19
|
|
MANTICora Software Группа: Lotus team Сообщений: 826 Регистрация: 8:08:2003 Из: Минск, Беларусь Пользователь №: 4 Репутация: 1
|
Gogan.exe
Ищи, затырки бывают, профайлы не использушь, форму в доке не хранишь. Можешь разнообразить написать скрипт который обходит базу ищет конкретный field и удаляет его... |
|
Сообщение
#172
|
|
|
|
19:05:2004, 05:14
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|
Что значит «форму в доке не хранишь»? Где же она может сохраняться?
|
|
Сообщение
#173
|
|
|
|
20:05:2004, 12:59
|
|
Продвинутый Группа: Новенький Сообщений: 162 Регистрация: 23:04:2004 Из: Ульяновск НГ Пользователь №: 445 Репутация: 0
|