Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/64: Рейтинг темы: голосов - 64, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 08.04.2005
Сообщений: 114
1

Интересная Задача

04.02.2013, 12:29. Показов 11731. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Есть интересная задача (сразу скажу что есть и 2 вариант, но хотелось бы понять почему не работает так как задумал)
Непосредственно описание задачи.
1. Есть БД персонал, там есть штатное расписание конторы (директор, бухгалтер, экономист и т.п. список должностей). Была поставлена задача создать телефонный справочник. Я решил сделать его на базе штатного расписания (автообновлением будет заниматься кадровики - уволили когото или взяли - сразу новая фамилия напротив старого телефона). Я посчитал это разумным.
2. Доступ в БД Персонал регламентирован, абы кто там шляться не может. Я создаю новую БД Тел справочник, в аутлайн пихаю вьюху из БД Персонал, все работает.
3. Хочу чтобы при 2клике на доке штатного расписания в БД Тел.справочник не открывался сам док штатного расписания (там много секретной инфо типа оклада и все такое. Приватность вобщем) а выскакивал маленький dialogbox на котором будут прописаны ФИО чела, его все телефоны и место где он сидит (инфа хранится в доке штатного расписания).
4. Для этого я пишу в queryopendocument вьюхи скрипт, для получения дока с инфой пишу

Set col = db.UnprocessedDocuments
Set doc = col.GetFirstDocument

т.е. док с инфой на котором стоит курсор. Как оказалось, дебагер выдает что col.count=0 что весьма удивительно, т.к. минимум 1 док в любой вьюхе выбран по дефолту, если там уже ляпали мышью хоть раз. Когда то же самое написано на кнопку а не на ляпанье мышью по доку - все работает как надо. Какие еще есть варианты передать в queryopendocument что док на котором курсор - он выбранный? в голову больше ничего не лезет. Вобщем, ай нид хэлп
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2013, 12:29
Ответы с готовыми решениями:

Интересная Задача Часть 2
Всем привет. Вот часть 2 Интересной задачи (краткое описание 1 части - . Руководству желательно в...

Интересная ситуёвина
Есть документ в БД1. У него есть итем, который хранит реальный (не текстовый) UNID левого документа...

Интересная вьюшка
Есть доки с полем X. В этом поле храниться идентификатор(не Lotusнный UNID). Но система глючит и...

Интересная тема про Lotus и Sametime
кто-нибудь пробовал замутить такое: Чтобы по нажатию кнопку в лотусе в документе, например,...

13
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
04.02.2013, 12:38 2
Queryopendocument(Source As Notesuiview, ...
Source.CaretNoteID - это NoteId
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
04.02.2013, 12:39 3
а объект базы не меняется в этих случаях?
А вообще - как по мне - метод не самый хороший.
Диалог оно конечно хорошо, но Alt+Enter еще никто не отменял.
Я бы делал (собственно так и делаю) отдельную синхронизацию ключевой информации.
Ну или же секъюрная инфа в защищенном респонсе
0
0 / 0 / 0
Регистрация: 08.04.2005
Сообщений: 114
04.02.2013, 12:44 4
OKEN вот спасибо!


NickProstoNick оно конечно да, никто не отменял, но данные и так не закрыты а тут у нас про такой просмотр кроме меня ну точно никто не знает
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
04.02.2013, 12:46 5
Цитата Сообщение от beloff
NickProstoNick оно конечно да, никто не отменял, но данные и так не закрыты а тут у нас про такой просмотр кроме меня ну точно никто не знает
Ой не зарекайся
0
0 / 0 / 0
Регистрация: 16.07.2007
Сообщений: 849
04.02.2013, 12:51 6
Сбоянил)
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
04.02.2013, 13:48 7
LotusScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Function SelectedDocsUI() As NotesDocumentCollection
On Error Goto ErrH
Dim uiview As NotesUIView
Dim doc As NotesDocument, NDC As NotesDocumentCollection, db As NotesDatabase
Dim wks As New NotesUIWorkspace, gses As New NotesSession
 
Set db = gses.CurrentDatabase
Set uiview=wks.CurrentView
If Not uiview Is Nothyng Then
Set NDC=uiview.Documents
Set doc=NDC.GetFirstDocument
If doc Is Nothyng Then
Set NDC= db.CreateDocumentCollection
Set doc=db.GetDocumentByID(uiview.CaretNoteID)
If doc Is Nothyng Then Exit Function
Call NDC.AddDocument(doc)
Set doc=NDC.GetFirstDocument
End If
Else
Set NDC= db.CreateDocumentCollection
Set doc=gses.DocumentContext
If Not doc Is Nothyng Then Call NDC.AddDocument(doc)
End If
Set SelectedDocsUI=NDC
Quit:
Exit Function
ErrH:
RaiseError
Resume Quit
End Function
0
0 / 0 / 0
Регистрация: 23.08.2007
Сообщений: 364
04.02.2013, 13:55 8
Цитата Сообщение от NickProstoNick
а объект базы не меняется в этих случаях?
А вообще - как по мне - метод не самый хороший.
Диалог оно конечно хорошо, но Alt+Enter еще никто не отменял.
Я бы делал (собственно так и делаю) отдельную синхронизацию ключевой информации.
Ну или же секъюрная инфа в защищенном респонсе
либо база со скрытым дизайном, где не доступны список полей через Alt+Enter
0
0 / 0 / 0
Регистрация: 08.04.2005
Сообщений: 114
04.02.2013, 16:01 9
либо база со скрытым дизайном, где не доступны список полей через Alt+Enter

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

Всем принявшим участие спасибо, особенно OKEN, все сделал, все работает
0
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
05.02.2013, 15:07 10
beloff
>Какие еще есть варианты передать в queryopendocument что док на котором курсор - он выбранный?

Семён Семёныч!!!
Пропертя

Код
NotesUIView.Documents
отдаст тебе коллекцию документов у которых стоит галочка, либо (если галочек нет вообще) коллекцию из одного документа на котором стоит курсор.
И усэ!
0
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
05.02.2013, 15:20 11
>либо (если галочек нет вообще) коллекцию из одного документа на котором стоит курсор.
really? в 7ке не работало.
0
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 2,124
05.02.2013, 15:45 12
в 7ке не работало
Работало, во view actions и в событиях view, вот только надо было идти одним из 2-х путей:
1. Делать для всей вьюхе глобальный UIView объект, определялся на PO вьюхи.
2. В каждой кнопке делать ws.CurrentView
Иногда слетал фокус если представление встроенное, от разметки формы зависит.
UPD: LN 7.0.2 тогда использовал
0
0 / 0 / 0
Регистрация: 08.04.2005
Сообщений: 114
05.02.2013, 16:06 13
Omh вариант который предложил OKEN лучше. Мне нужно чтобы вместо открытия (2 клика по доку) одного дока вылазил диалогбокс с данными из этого же дока, а коллекции для этого, по моему разумению, не слишком подходят
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
05.02.2013, 16:31 14
Цитата Сообщение от Omh
beloff
>Какие еще есть варианты передать в queryopendocument что док на котором курсор - он выбранный?

Семён Семёныч!!!
Пропертя

Код
NotesUIView.Documents
отдаст тебе коллекцию документов у которых стоит галочка, либо (если галочек нет вообще) коллекцию из одного документа на котором стоит курсор.
И усэ!
код кот. я запостил, работает и изнутря дока (дает коллекцию с открытым доком) и из вьюшки и по выделенным и по курсору
0
05.02.2013, 16:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2013, 16:31
Помогаю со студенческими работами здесь

Интересная задача
A = 9; B = -17; C = 13; D = -39; ЕСЛИ (B > D) ТОГДА C=(D+B)*5; ЕСЛИ (D > C) ТОГДА A=(A mod B)...

Интересная задача
for(j ; j < array.length; j++){ for(i = 0;i < array.length; i++){ ...

интересная задача
Лукавить не буду. Это задание мне пришло как предложение фриланса, но я отказалась т.к. не уложусь...

Интересная задача
Здравствуйте! Никак не пойму, каким методом решается следующая задача. Если кто сталкивался с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru