• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Много вопросов..

  • Автор темы Grrr
  • Дата начала
G

Grrr

Всем привет! Сразу оговорюсь, Лотусом занимаюсь всего неделю, но требований уже очень много, итак.. Вопросы:
1. Как из представления при проставлении или изменении значения какого либо поля в форме документа - убрать документ из представления, перенеся его в другое.

2. Есть форма фирмы и есть форма сотрудника данной фирмы, связь между ними осуществляется через поле названия фирмы:

2.1. Должен формироваться некий документ заявки от фирмы, с учетом сотрудника соотстветственно от которого он поступил, как лучше создавать данный документ? Как я вижу: из представления, содержащего фирмы, идёт выбор одной из них, далее встроенное в форму фирмы представление с отображением сотрудников. Сама же заяка формируется тут же из формы фирмы путём тыкания на кнопку "создать заявку", вопрос
2.2. При сохранении заявки, должно идти некое сравнение полей с полями на форме фирмы и форме сотрудника, если в форме заявки появились некие изменения, то он их должен вносить в эти формы соответственно. Как я понимаю нужно вешать скрипт на postsave? Примерчик найденный на форуме:

Sub Postsave(Source As Notesuidocument)
...
Set doc = source.Document
Set view = s.CurrentDatabase.GetView("(Фирмы)")
Set firm = view.GetDocumentByKey(doc.FirmName)
If Not firm Is Nothing Then
firm.FirmName = doc.FirmName
firm.FirmAddress = doc.Address
firm.FirmPhone = doc.Phone
Call firm.Save(True,False,True)
Else
Messagebox("Не найден документ фирмы.")
End If
End Sub
Как прервать запись если документ фирмы не найден?

2.3. Ещё вопрос - как из формы фирмы создавая новый документ, наследовать поля определённого сотрудника? Ведь встроенное представление никак не связано с формой? Или я не прав? Повторюсь - заявка создается из формы фирмы с встроенным представлением сотрудника, как при выделенном сотруднике в встр.представлении перенести его поля в новую форму заявки?
 
M

morpheus

1. докумнты не переосяться в представления
Докуметы светяться в представлении тока в зависимости от формылы отбора данного представления. Это как бы фильтр который накладываеться на все документы базы!

по остальным не понял.. а точнее лень читать
 
G

Grrr

Ну т.е. надо менять условия выборки документов в представлении, с этим ясно. Пока писал появился ещё вопрос: можно ли поставить на столбец условие создания формы заявки определённой ролью, т.е. что то вроде @If(form="lala" & @contains(@userroles;"[admin]"));"2";"5") (как то так?). Смысл: в представлении проставить 4-5 столбцов и в зависимости от созданного тем или иным отделом заявки и ставить там иконку
 
M

morpheus

Если надо что бы иконки в столбце вычисляь - то да можно
 
G

Grrr

А возможны какие либо косяки с репликацией или проблемы производительности?
 
M

morpheus

<!--QuoteBegin-Grrr+16:11:2007, 13:42 -->
<span class="vbquote">(Grrr @ 16:11:2007, 13:42 )</span><!--QuoteEBegin-->А возможны какие либо косяки с репликацией или проблемы производительности?
[snapback]86085" rel="nofollow" target="_blank[/snapback]​
[/quote]
вапрос не корректен, точнне ... с кривыми руками проблемы всегда будут
 
G

Grrr

Ну тогда так. Возможно ли задать выборку в представлении по определённой форме, НО с условием - создание в течении последних 10 дней ? Если не трудно примерчик
 
M

morpheus

<!--QuoteBegin-Grrr+16:11:2007, 13:53 -->
<span class="vbquote">(Grrr @ 16:11:2007, 13:53 )</span><!--QuoteEBegin-->НО с условием - создание в течении последних 10 дней ?
[snapback]86090" rel="nofollow" target="_blank[/snapback]​
[/quote]
Это очень интересный вапрос.
1. МОЖНО , но не желательно сравнивать дату создаия с текущей в самой формуле отбора вида
2. очным агентом прозодиться по всем ддокументам, и сравнивать и дату создания , если что ставить какоенибуть поле = "1", в формуле отбора ставить : выбирать все доки у которых поле = "1"
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
<!--QuoteBegin-Morpheus+16:11:2007, 15:03 -->
<span class="vbquote">(Morpheus @ 16:11:2007, 15:03 )</span><!--QuoteEBegin-->очным агентом прозодиться по всем ддокументам, и сравнивать и дату создания , если что ставить какоенибуть поле = "1", в формуле отбора ставить : выбирать все доки у которых поле = "1"
[snapback]86091" rel="nofollow" target="_blank[/snapback]​
[/quote]
Лучше менять формулу отбора каждую ночь, чем лопатить все документы. Да к тому же вносить в них изменения.
Как альтернатива - папки.
 
M

morpheus

<!--QuoteBegin-Medevic+16:11:2007, 14:18 -->
<span class="vbquote">(Medevic @ 16:11:2007, 14:18 )</span><!--QuoteEBegin-->учше менять формулу отбора каждую ноч
[snapback]86092" rel="nofollow" target="_blank[/snapback]​
[/quote]
Тоже вариант
 
G

Grrr

<!--QuoteBegin-Medevic+16:11:2007, 14:18 -->
<span class="vbquote">(Medevic @ 16:11:2007, 14:18 )</span><!--QuoteEBegin-->Лучше менять формулу отбора каждую ночь, чем лопатить все документы. Да к тому же вносить в них изменения.
Как альтернатива - папки.
[snapback]86092" rel="nofollow" target="_blank[/snapback]​
[/quote]

А как именно менять? Подскажите если не затруднит. Да и смысл был ещё в том чтобы работать с документами таким образом: если заявки созданы в течении 10 дней отображать их в виде1, если срок 10ти дней уже истёк отобразить их в друг виде2 (не хотелось бы работать с папками).

По первому сообщению вопросы остались..
 
M

morpheus

В хэлпе смотрите в сторону

NotesView.SelectionFormula

2. This view action sets the selection formula for the current view.
Код:
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim uiview As NotesUIView
Dim view As NotesView
Dim formula As String
formula = "SELECT (@Modified > [" & (Date - 7) & "])"
Set uiview = ws.CurrentView
Set view = uiview.View
view.SelectionFormula = formula
End Sub
 
G

Grrr

Большое спасибо!
Ещё вопрос про поля авторов, правильно ли я понял:
1. Поле автор(название поля: Author, тип: Authors, Computed when composed) должно быть заведено на всех важных документах, которые должны иметь доступ удалять только их авторы.
2. Поле автора действует для тех пользователей из acl, у которых права являются, либо Authors, либо уровнями ниже?
3. Поля Readers отвечают за "видимость" документов в представлениях?
4. Что такое поля типа Readers?
 
M

morpheus

1. Важно чтобы тип был автора, имя не имеет значения. Вычисляться должнор быть в автора, или того кто нужно.
2. Распространяетсья ТОЛЬКО на пользователей с уровнем доступа - Автор
3. За видимость документов как таковых вообще. Например перейти по ссылке в документ в котором Вы не указаны в поле ридерс - не получиться
4. ПОля которыевлияют на ДОСТУП к документу ЛЮБЫХ пользователей... могут содержать пользователей. группы, роли. даже менеджер базы не увидит документ если его нет в поле ридер.

 
S

Sandr

Внесу небольшое замечание...
Судя по вопросам, автор темыимеет хороший опыт работы с реалиционными БД... Так вот, забудте все, что вы знаете о любых видах БД, прежде чем приступаете к работе с лотусом.. только мешать будет... :)
 
Мы в соцсетях:

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