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

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

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

morpheus

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

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

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

morpheus

скриптописец
07.08.2006
3 915
1
#4
Для: Халев
Можно и три, но надо ли?

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

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


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

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

Kron

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

Гость
#8
<!--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]
Ну я думаю цель тут одна - начальство трбует ,значит надо сделать <_<
 

Гость
#9

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

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#11
Для: Халев
для "чтобы при создании документов "Работник" в поле "Компания", который будет типа combobox" cмотри @DbColumn
 

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

morpheus

скриптописец
07.08.2006
3 915
1
#13
Для: Халев
а я бы зделал пиклистом

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

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#14
Код:
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 и т.д.) и пишешь, куда надо.
Примерно так.
 

Гость
#15
Код:
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'а пустой. Чего ему еще нужно подкрутить?..
 

morpheus

скриптописец
07.08.2006
3 915
1
#16
Для: Халев
так... во первых этот код как для начала надо ставить в кнопку рядом с полем "Компания"

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

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#17
Для: Халев
Ну я же не буду за тебя программить.
Наше дело наставить на путь истинный.
А дальше сам <_<
 

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

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

ставить в кнопку рядом с полем "Компания"
- в обработчик какого события нужно вставить код?

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

morpheus

скриптописец
07.08.2006
3 915
1
#19
<!--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 как это делалось бы в стандартной СУБД
 

Гость
#20
сматря для чего, если в дальнейшем чтото надо меять опираясь на компанию храните заодно и айдиху, но то что Вам надо хранить символьное зачение єто 100%
потому что это НЕ РЕЛЯЦИОНКА, и не стоит при открытии документа одновлять запись имени конторы по её ID как это делалось бы в стандартной СУБД
Т. е., если я правильно понимаю, в моем случае имеется ввиду айдиха - можно использовать UNID или UniversalID документа, из которого взято CompanyName?
И еще: символьное значение можно ли забить затем в это же поле, в котором combobox? Если не трудно киньте в меня строчкой кода, please..
 
Статус
Закрыто для дальнейших ответов.