• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Создать базу данных сотрудников

  • Автор темы Guest
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

Guest

Я новичек в Lotus'е.
Нужно разработать простую базу данных сотрудников, которые принадлежат к определенной компании и к пределенному офису этой компании.
Пользователю предоставляется возможность выполнять набор простых манипуляций с базой.
Пожалуйста, кто имеет опыт, подскажите какими объектами пользоваться при разработке?..
 
M

morpheus

Для: Халев
2 формы - работники и организации, парочка видов ( зависит от того что хотять видет )
 
G

Guest

Для: Халев
2 формы - работники и организации, парочка видов ( зависит от того что хотять видет )

Немного уточню. Работник должен два параметра - компания и офис. Поэтому я решил сделать 3 формы:
1) Companies - с полями CompanyName, CompanyID.
2) Offices - с полями OfficeName, OfficeID, CompanyID.
3) Employees - с полями EmployeeName, CompanyID, OfficeID.
Т. е. как делается в реляционных базах.
Дальше, я так понимаю, необходимо создать виды. Подскажите, пожалуйста, от чего нужно отталкиваться при этом и как можно добавлять данные в поля форм. Например, необходимо будет иметь возможность изменять имя работника и его принадлежность к компании, офису.

Заранее благодарен за ответ!..
 
M

morpheus

Для: Халев
Можно и три, но надо ли?

Поля ID тут ( в ЛОтусе ) имеют немного другой смысл.

Вам надо абстрагироватсья от СУБД.
Для начала: таблица приблизительно это документ.
Вид - это не результат отбора командой селект, а всего лишь фильтр который накладываеться на все документы таблицы и отображает только те которые под этот фильтр подходят


ну а дальше зависит от архитектуры
 
G

Guest

Для: Халев
Вид - это не результат отбора командой селект, а всего лишь фильтр который накладываеться на все документы таблицы и отображает только те которые под этот фильтр подходят
ну а дальше зависит от архитектуры

Хорошо, но (извините за безграмотность) объясните на пальцах что в Designer'е нужно нажать, чтобы кроме описания полей там появились какие-то данные?
 
M

major


- Это интерактивный обучающий кутс от IBM. На русском языке.
Не панацея, но основные вопросы снимет (куда нажать, что такое View, как сделать выборку, как сохранить док...)
 
K

Kron

Вопрос, а какие цели приследуются при создании данной базы??? <_<
 
G

Guest

<!--QuoteBegin-Kron+25:09:2007, 10:18 -->
<span class="vbquote">(Kron @ 25:09:2007, 10:18 )</span><!--QuoteEBegin-->Вопрос, а какие цели приследуются при создании данной базы??? dry.gif
[snapback]79450" rel="nofollow" target="_blank[/snapback]​
[/quote]
Ну я думаю цель тут одна - начальство трбует ,значит надо сделать <_<
 
G

Guest


- Это интерактивный обучающий кутс от IBM. На русском языке.
Не панацея, но основные вопросы снимет (куда нажать, что такое View, как сделать выборку, как сохранить док...)

Спасибо за ссылку, гляну.
 
G

Guest

Просмотрел я этот IBM-ский курс - довольно неплохой для начинающего.
Однако все-таки для решения у меня маловато опыта.
Если я создал 2 формы: компании с офисами и работники (с указанием индентификатора компании и идентификатора офиса), то как мне сделать, чтобы при создании документов "Работник" в поле "Компания", который будет типа combobox (или может быть сделать его RadioButton) дать возможность пользователю выбрать одну из компаний (имена которых выбрать из соответствующих документов), а затем записать в поле индекс выборанной компании (для последующего отображения во View "Сотрудники")?
Буду благодарен даже за наводку на то как это можно сделать в Lotus'е
 
O

Omh

Для: Халев
для "чтобы при создании документов "Работник" в поле "Компания", который будет типа combobox" cмотри @DbColumn
 
G

Guest

DbColumn требует view. А можно перебрать документы, созданные по форме "Компании", без использования view? Ну и получить набор значений для combobox/radiobutton/dialog list (пока не знаю что лучше)..
 
M

morpheus

Для: Халев
а я бы зделал пиклистом

зделать просто db.serch по форме - и всё.
 
O

Omh

Код:
Dim CompDc As NotesDocumentCollection
Set CompDc = Db.Search({Form = "Company"}, Nothing, 0)


if CompDc.Count > 0 then
Dim i As Integer
Redim Companies(CompDc.Count - 1) As String

Dim CompDoc as NotesDocument
Set CompDoc = CompDc.GetFirstDocument
While Not CompDoc Is Nothing
Companies(i) = CompDoc.CompanyName(0)
i = i + 1
Set CompDoc = CompDc.GetNextDocument(CompDoc)
Wend
end if

Потом уже преобразуешь array (unique, sorting и т.д.) и пишешь, куда надо.
Примерно так.
 
G

Guest

Код:
Dim CompDc As NotesDocumentCollection
Set CompDc = Db.Search({Form = "Company"}, Nothing, 0)
if CompDc.Count > 0 then
Dim i As Integer
Redim Companies(CompDc.Count - 1) As String

Dim CompDoc as NotesDocument
Set CompDoc = CompDc.GetFirstDocument
While Not CompDoc Is Nothing
Companies(i) = CompDoc.CompanyName(0)
i = i + 1
Set CompDoc = CompDc.GetNextDocument(CompDoc)
Wend
end if

ok. Вставил этот код в combobox, в событие Initialize. При старте ругнулось 'Variant does not contain an object', тогда добавил еще:

Dim s As New NotesSession
Dim db As NotesDatabase

Set db = s.CurrentDatabase

Перестало ругаться, но список combobox'а пустой. Чего ему еще нужно подкрутить?..
 
M

morpheus

Для: Халев
так... во первых этот код как для начала надо ставить в кнопку рядом с полем "Компания"

и в конце кода , перед end if добавить что поле "Компания" = Companies
 
O

Omh

Для: Халев
Ну я же не буду за тебя программить.
Наше дело наставить на путь истинный.
А дальше сам <_<
 
G

Guest

Для: Халев
так... во первых этот код как для начала надо ставить в кнопку рядом с полем "Компания"

и в конце кода , перед end if добавить что поле "Компания" = Companies

Опишу немного подробней что хочу:
Cоздавать документы с помощью формы, которая у меня называется Employee (работник) и имеет поля EmployeeName (имя работника), Company и Office. С именем работника все ясно - оно просто вбивается. Что касается Company и Office у меня созданы документы другой формы - Companies, имеющей поля CompanyName и Offices.
Остановимся для начала на компаниях (поле Company для формы Employee). Здесь я хочу, чтобы при открытии формы Emplyee на создание документа можно было открыть combobox, который перед этим запонялся бы существующими именами компаний.

ставить в кнопку рядом с полем "Компания"

- в обработчик какого события нужно вставить код?

Я новичек в Lotus'е, поэтому как затем хранить выбранное занчение тоже не до конца понимаю - как индекс выбора или как символьную строку с именем компании?..
 
M

morpheus

<!--QuoteBegin-Халев+27:09:2007, 11:45 -->
<span class="vbquote">(Халев @ 27:09:2007, 11:45 )</span><!--QuoteEBegin-->Я новичек в Lotus'е, поэтому как затем хранить выбранное занчение тоже не до конца понимаю - как индекс выбора или как символьную строку с именем компании?..
[snapback]79767" rel="nofollow" target="_blank[/snapback]​
[/quote]
сматря для чего, если в дальнейшем чтото надо меять опираясь на компанию храните заодно и айдиху, но то что Вам надо хранить символьное зачение єто 100%
потому что это НЕ РЕЛЯЦИОНКА, и не стоит при открытии документа одновлять запись имени конторы по её ID как это делалось бы в стандартной СУБД
 
G

Guest

сматря для чего, если в дальнейшем чтото надо меять опираясь на компанию храните заодно и айдиху, но то что Вам надо хранить символьное зачение єто 100%
потому что это НЕ РЕЛЯЦИОНКА, и не стоит при открытии документа одновлять запись имени конторы по её ID как это делалось бы в стандартной СУБД

Т. е., если я правильно понимаю, в моем случае имеется ввиду айдиха - можно использовать UNID или UniversalID документа, из которого взято CompanyName?
И еще: символьное значение можно ли забить затем в это же поле, в котором combobox? Если не трудно киньте в меня строчкой кода, please..
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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