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

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

Guest

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

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

Заранее благодарен за ответ!..
 
Для: Халев
Можно и три, но надо ли?

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

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


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

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

- Это интерактивный обучающий кутс от IBM. На русском языке.
Не панацея, но основные вопросы снимет (куда нажать, что такое View, как сделать выборку, как сохранить док...)
 
Вопрос, а какие цели приследуются при создании данной базы??? <_<
 
<!--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]
Ну я думаю цель тут одна - начальство трбует ,значит надо сделать <_<
 

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

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

зделать просто db.serch по форме - и всё.
 
Код:
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 и т.д.) и пишешь, куда надо.
Примерно так.
 
Код:
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'а пустой. Чего ему еще нужно подкрутить?..
 
Для: Халев
так... во первых этот код как для начала надо ставить в кнопку рядом с полем "Компания"

и в конце кода , перед end if добавить что поле "Компания" = Companies
 
Для: Халев
Ну я же не буду за тебя программить.
Наше дело наставить на путь истинный.
А дальше сам <_<
 
Для: Халев
так... во первых этот код как для начала надо ставить в кнопку рядом с полем "Компания"

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

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

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

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

Я новичек в Lotus'е, поэтому как затем хранить выбранное занчение тоже не до конца понимаю - как индекс выбора или как символьную строку с именем компании?..
 
<!--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 как это делалось бы в стандартной СУБД
 
сматря для чего, если в дальнейшем чтото надо меять опираясь на компанию храните заодно и айдиху, но то что Вам надо хранить символьное зачение єто 100%
потому что это НЕ РЕЛЯЦИОНКА, и не стоит при открытии документа одновлять запись имени конторы по её ID как это делалось бы в стандартной СУБД

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

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