Форум программистов CODEBY.NET Хостинг в Беларуси — Active Technologies

Разработка бизнес сайтов

Нужны клиенты? Тогда сюда быстрее...
X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )




> Россыпь мелких вопросов для разработчиков, Вопросы не требующие отдельнх обсуждений
Vagor.ini
Вставить ник
сообщение 13:11:2003, 14:21
Цитата Ответить 


MANTICora Software
*****

Группа: Lotus team
Сообщений: 826
Регистрация: 8:08:2003
Из: Минск, Беларусь
Пользователь №: 4
Специализация: Lotus Domino & Notes, Delphi



Репутация: - 1 +


Тема для постинга мелких вопросов - ответов для разрботчиков приложений и баз Lotus Notes. Если Ваш вопрос влечет долгое обсуждение, то желательно создать отдельную тему.
Подняться вверх 
 
Сообщение #1
9 страниц V  < 1 2 3 4 > »   
Новая тема 
Ответов (30 - 59)
Arly
Вставить ник
сообщение 5:03:2004, 04:14
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 16
Регистрация: 2:03:2004
Пользователь №: 299



Репутация: - 0 +


Vagor.ini Да неважно, мне бы понять в общем так сказать смысле. Ну хотя бы для какой нибудь простенькой б.д.
я у Дебби Линд читал, там вроде описан почтовый агент, принимающий почту, но не все так просто в этой жизни, в смысле отдельные моменты так и не дошли до меня, так например If note. Form ( 0 ) = "REQ" Then, до моей дырявой головы не доходит REQ это форма или поле и как его помечать, но это лишь один из многих моментов которые тревожат душу , но не доходят до мозгов. Спасибо
Подняться вверх 
 
Сообщение #31
nor
Вставить ник
сообщение 10:04:2004, 20:05
Цитата Ответить 


Lotus master
***

Группа: Модеры
Сообщений: 344
Регистрация: 10:04:2004
Пользователь №: 398
Специализация: Lotus Notes/Domino developer, IBA JV, Minsk, RB



Репутация: - 5 +


Уважаемый, Arly. Вот пример крайне простого агента, который производит поиск документов по заданным критериям и найденные документы отображает в папке. В работе агента, я думаю, не составит труда разобраться.

(Declaration)
Dim session As NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim profile As NotesDocument
Dim collection As NotesDocumentCollection
Dim view As NotesView
Dim entry_collection As NotesViewEntryCollection

(Initialize)
Set session = New NotesSession

Set db = session.CurrentDatabase

Set doc = session.DocumentContext

Set view = db.GetView("($profile)")
Set profile = view.GetFirstDocument

Call Search(doc)

Sub Search(doc As NotesDocument)
Dim search_str As String
Dim searchConsultantType As Variant
Dim list_members As String
Dim coord_place As NotesDocument

Select Case doc.category(0)
Case "0"
search_str = "Form = ""consultrequest"""
If doc.request_contact_person(0) <> "" Then search_str = search_str + " & " + "contact_person = """ + Trim$(doc.request_contact_person(0)) + """"
If doc.request_consultant_name(0) <> "" Then search_str = search_str + " & " + "consultant_name = """ + Trim$(doc.request_consultant_name(0)) + """"
If doc.request_status(0) <> "Выбрать..." Then
search_str = search_str + " & " + "doc_status = """ + Trim$(doc.request_status(0)) + """"
Else
search_str = search_str + "& @Contains(doc_status; ""1"" : ""2"" : ""3"" : ""4"" : ""5"" : ""8"" : ""9"")"
End If
If doc.request_urgency(0) <> "Выбрать..." Then search_str = search_str + " & " + "consult_urgency = """ + Trim$(doc.request_urgency(0)) + """"
If doc.request_target(0) <> "Выбрать..." Then search_str = search_str + " & " + "consult_target = """ + Trim$(doc.request_target(0)) + """"
If doc.request_consult_type(0) <> "Выбрать..." Then search_str = search_str + " & " + "consult_type = """ + Trim$(doc.request_consult_type(0)) + """"
If doc.request_date_start(0) <> "" Then search_str = search_str + " & " + "@Created >= @TextToTime(""" + Cstr(doc.request_date_start(0)) + """)"
If doc.request_date_end(0) <> "" Then search_str = search_str + " & " + "@Created <= @TextToTime(""" + Cstr(doc.request_date_end(0)) + """)"
Case "1"
search_str = "Form = ""consultrequest_author"""
If doc.author_LastNameRus(0) <> "" Then search_str = search_str + " & " + "userLastNameRus = """ + Trim$(doc.author_LastNameRus(0)) + """"
If doc.author_FirstNameRus(0) <> "" Then search_str = search_str + " & " + "userFirstNameRus = """ + Trim$(doc.author_FirstNameRus(0)) + """"
If doc.author_MiddleNameRus(0) <> "" Then search_str = search_str + " & " + "userMiddleNameRus = """ + Trim$(doc.author_MiddleNameRus(0)) + """"
If doc.author_company(0) <> "" Then search_str = search_str + " & " + "organization = """ + Trim$(doc.author_company(0)) + """"
If doc.author_email(0) <> "" Then search_str = search_str + " & " + "email = """ + Trim$(doc.author_email(0)) + """"
Case "2"
search_str = "Form = ""consultant"""
If doc.consultant_LastNameRus(0) <> "" Then search_str = search_str + " & " + "userLastNameRus = """ + Trim$(doc.consultant_LastNameRus(0)) + """"
If doc.consultant_FirstNameRus(0) <> "" Then search_str = search_str + " & " + "userFirstNameRus = """ + Trim$(doc.consultant_FirstNameRus(0)) + """"
If doc.consultant_MiddleNameRus(0) <> "" Then search_str = search_str + " & " + "userMiddleNameRus = """ + Trim$(doc.consultant_MiddleNameRus(0)) + """"
If doc.consultant_medicine_place(0) <> "" Then search_str = search_str + " & " + "medicine_place = """ + Trim$(doc.consultant_medicine_place(0)) + """"
If doc.consultant_email(0) <> "" Then search_str = search_str + " & " + "email = """ + Trim$(doc.consultant_email(0)) + """"
If doc.consultant_type(0) <> "Выбрать..." Then search_str = search_str + " & " + "@Contains(consult_type; """ + doc.consultant_type(0) + """)"
End Select

Set collection = db.Search(search_str, Nothing, 0)
Set view = db.GetView("SearchResults")
Set entry_collection = view.AllEntries
Call entry_collection.RemoveAllFromFolder("SearchResults")
If collection.Count <> 0 Then
Call collection.PutAllInFolder("SearchResults")
Call view.Refresh
End If

Set coord_place = New NotesDocument(dB)
coord_place.Form = "coordinator_place"
coord_place.menu = "SearchResults"
coord_place.title = ":: Результаты поиска документов"
coord_place.is_folder = 1
Call coord_place.ComputeWithForm(False, False)
Call coord_place.Save(True, True)
Print "[" + profile.db_directory(0) + "/" + db.FileName + "/0/" + coord_place.UniversalID + "?OpenDocument]"

End Sub
Подняться вверх 
 
Сообщение #32
Гость_Guest_*
сообщение 12:04:2004, 02:23
Цитата Ответить 





Инопланетный гость






nor Спасибо, буду разбирать.
Подняться вверх 
 
Сообщение #33
Veselinka
Вставить ник
сообщение 12:04:2004, 12:07
Цитата Ответить 


Lotus team
**

Группа: Lotus team
Сообщений: 142
Регистрация: 3:03:2004
Из: Новосибирск
Пользователь №: 303
Специализация: Внедрение корпоративных информационных систем



Репутация: - 0 +


Есть предложение, при написании сэмпловых скриптов в формуе - выделять самую суть, которая решает поставленный вопрос, а то каждый раз... куча нагромождения... так и хочется упомянуть шутку из Титаника "о страсти некоторых мужчин к большим размерам". tongue.gif Чем лаконичнее изложено решение проблемы - с минимум посторонних, не относящихся к делу подробностей, тем как правило понятнее бывает тому, до кого это решение пытаются донести.
Подняться вверх 
 
Сообщение #34
nor
Вставить ник
сообщение 12:04:2004, 17:52
Цитата Ответить 


Lotus master
***

Группа: Модеры
Сообщений: 344
Регистрация: 10:04:2004
Пользователь №: 398
Специализация: Lotus Notes/Domino developer, IBA JV, Minsk, RB



Репутация: - 5 +


Veselinka, я написал "САМУЮ СУТЬ", которая "решает поставленный вопрос", без "нагромаждения". smile.gif
Подняться вверх 
 
Сообщение #35
osmor
Вставить ник
сообщение 13:04:2004, 13:45
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 84
Регистрация: 9:01:2004
Пользователь №: 208



Репутация: - 1 +


Доброго всем времени.
Поможите кто чем может.
Вопрос такой, как в форме вывести RTF поле и при этом не дать его редактировать. Другие поля должны редактироваться.
Попытался сделать как учит ув. Veselinka (еще раз спасибо за "Концепции ..." :-)) т.е. создал два поля одно изменяемое, второе вычисляемое c "противоположной" видимостью. Но почему, то не хочет вычисляться поле "текст RTF".
Если вместо вычисляемого "текст RTF" поставить поле с типом "текст" и формулу для вычисления @abstract (..... ), то все работает, но тогда форматирование текста теряется.
Спасибо.
Чуть не забыл работаю на 6.5
Подняться вверх 
 
Сообщение #36
nor
Вставить ник
сообщение 13:04:2004, 17:56
Цитата Ответить 


Lotus master
***

Группа: Модеры
Сообщений: 344
Регистрация: 10:04:2004
Пользователь №: 398
Специализация: Lotus Notes/Domino developer, IBA JV, Minsk, RB



Репутация: - 5 +


Привет, osmor.
Это стандартная ситуация: поле включаешь в Controlled Access Section. Тип секции - Computed. Далее необходимо указать условие (формулу), которое предоставляет доступ к секции для редактирования указанным людям (имя пользователя нужно указывать в иерархическом виде), указанным группам, или указанным людям, наделенными определенными правами. Также секцию можно скрыть, свернуть и т.д. Подпись секции также можно отдельно скрыть. Приведу пример:

Код
@If(
is_under_execution = 0;
"[request_author]";
"[noone]"
)


Данная формула предоставляет доступ к секции (к полям секции) для редактирования пользователям с ролью "request_author", если статус документа "is_under_execution = 0". Иначе, если условие не выполняется, доступ предоставляется пользователям с ролью "noone". Здесь - внимание. В acl бд у меня вообще нету такой роли. Таким образом, при невыполнении условия, поля секции все пользователи системы, вне зависимости от их уровня доступа к бд, могут только прочитать, так как пользователей с ролью "noone" у меня вообще нету. Немного непонятно и каламбурно. Почему я вместо "noone" не указал "" или что-то другое? Я уже не помню. Этот пример взят из работающей бд и когда-то был выработан мной с затратами определенного количества нервной энергии и времени. smile.gif
Подняться вверх 
 
Сообщение #37
osmor
Вставить ник
сообщение 14:04:2004, 05:20
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 84
Регистрация: 9:01:2004
Пользователь №: 208



Репутация: - 1 +


Огромное спасибо, nor!!!
Все получилось, все работает. rolleyes.gif
Это как раз к вопросу о концепции, пока не знаешь КАК можно потратить дни, и никакие знания языка здесь не помогут...
И еще сразу вопрос, можно как то избавиться от этого красивого окошка "Изменять содержимое данного раздела могут", которое выскакивает при одинарном клике на разделе?
Еще раз спасибо. biggrin.gif
Подняться вверх 
 
Сообщение #38
Veselinka
Вставить ник
сообщение 14:04:2004, 06:19
Цитата Ответить 


Lotus team
**

Группа: Lotus team
Сообщений: 142
Регистрация: 3:03:2004
Из: Новосибирск
Пользователь №: 303
Специализация: Внедрение корпоративных информационных систем



Репутация: - 0 +


Нор, рулез - я не знала такого способа обходиться с вычисляемыми РТФами wink.gif
Спасибо за подсказку, как-то сталкивалась с этой проблемой - через подформы решала, не помню правда уже как, но 5-ка глючила, когда РТФ поле с одним именем отображалось то как редактируемое, то как вычисляемое, вобщем по сути элегантно эта проблема так и не была решена.
Подняться вверх 
 
Сообщение #39
osmor
Вставить ник
сообщение 14:04:2004, 08:17
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 84
Регистрация: 9:01:2004
Пользователь №: 208



Репутация: - 1 +


Опять вопросы...
Хочу чтобы пользователь ввел даные в поле формы, но не просто, а в отдельно открывшемся окне.
Пытаюсь использовать для этого @DialogBox
Создал форму в которой есть одно поле, такое же как в той форме данные в которой изменяет пользователь.
ПОсле определенныго события выдываю @DialogBox с этой маленькой формой.
Но почемуто при нажаниина OK, данные в поле основной формы не отображаются и не сохраняются ....
Вероятнее всего что-то делаю не так, но что?
И второй вопрос вытекающий из первого, можно ли как-то изменить перед записью в поле, те данные которые пользователь ввел в форме открытой через @DialogBox, ну например добавить в тому что ввел пользователь его имя и дату (как получить имя и дату знаю biggrin.gif )
Подняться вверх 
 
Сообщение #40
osmor
Вставить ник
сообщение 14:04:2004, 08:59
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 84
Регистрация: 9:01:2004
Пользователь №: 208



Репутация: - 1 +


Первая часть вопроса снята. Прошу прощения за беспокойство. Сам мир blink.gif
Внимательнее папиры читать надо.
"Rich text fields will not be displayed in the form, even if field names are the same as in the current document"
А у меня как раз Rich text fields.
Подняться вверх 
 
Сообщение #41
nor
Вставить ник
сообщение 14:04:2004, 09:47
Цитата Ответить 


Lotus master
***

Группа: Модеры
Сообщений: 344
Регистрация: 10:04:2004
Пользователь №: 398
Специализация: Lotus Notes/Domino developer, IBA JV, Minsk, RB



Репутация: - 5 +


Привет, Osmor.

Попробуй в событии Input Translation нужного тебе поля написать нужный тебе код. Например, для поля OfficePhoneNumber нужно, что в нем после заполнения его по методу @DialogBox автоматически вначале поля вставлялся какой-то текст, например, "(без кода города)".

Код
OfficePhoneNumber = "";
""(без кода города) " + OfficePhoneNumber;


Вот. Аналогично можно манипулировать содержанием поля при помощи LotusScript, сымитировать кнопки OK и Cancel на диалоговой форме и навесить на них собственный обработчик.

Если возникнут трудности, то обращайся, я все более подробно расскажу. Просто в архиве не хочу копаться...
Подняться вверх 
 
Сообщение #42
osmor
Вставить ник
сообщение 14:04:2004, 10:50
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 84
Регистрация: 9:01:2004
Пользователь №: 208



Репутация: - 1 +


Спасибо.
Проверка правиности приема smile.gif
Цитата
содержанием поля при помощи LotusScript, сымитировать кнопки OK и Cancel на диалоговой форме

Сие значит, что я в @DialogBox прячу обе кнопки ([NOOKCANCEL]:[NOCANCEL]), а в форме рисую свои со своей обработкой?
Здорово...
Если я правильно понял, можно не отвечать ....
Подняться вверх 
 
Сообщение #43
nor
Вставить ник
сообщение 14:04:2004, 18:49
Цитата Ответить 


Lotus master
***

Группа: Модеры
Сообщений: 344
Регистрация: 10:04:2004
Пользователь №: 398
Специализация: Lotus Notes/Domino developer, IBA JV, Minsk, RB



Репутация: - 5 +


Ты правильно понял.
Подняться вверх 
 
Сообщение #44
Vagor.ini
Вставить ник
сообщение 15:04:2004, 06:58
Цитата Ответить 


MANTICora Software
*****

Группа: Lotus team
Сообщений: 826
Регистрация: 8:08:2003
Из: Минск, Беларусь
Пользователь №: 4
Специализация: Lotus Domino & Notes, Delphi



Репутация: - 1 +


Такой вопрос, может кто нотолкнет на идею, как сделать...

Есть форма (форма вызывается как диалог @DialogBox), на ней EmbeddedView, нужно получить доступ к самому EView, чтобы потом иметь доступ к выделенномы документу.

И еще фишка, кто не знает, ActionBar у встроенного вида на форме, которая вызывается через диалог не отображается... (или я не прав?)
Подняться вверх 
 
Сообщение #45
Isk
Вставить ник
сообщение 15:04:2004, 10:26
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 42
Регистрация: 14:04:2004
Пользователь №: 416



Репутация: - 0 +


Помогите, есть база, в ней документы, в документе поле "название базы", тип поля-диалог лист, надо посчитать сколько раз выбрали именно эту базу и вывсети куда нибудь, как можно это сделать и куда ? Санкс
Подняться вверх 
 
Сообщение #46
Vagor.ini
Вставить ник
сообщение 15:04:2004, 12:21
Цитата Ответить 


MANTICora Software
*****

Группа: Lotus team
Сообщений: 826
Регистрация: 8:08:2003
Из: Минск, Беларусь
Пользователь №: 4
Специализация: Lotus Domino & Notes, Delphi



Репутация: - 1 +


Isk
Что значит выбрали, не понятно...
Подняться вверх 
 
Сообщение #47
nor
Вставить ник
сообщение 15:04:2004, 18:57
Цитата Ответить 


Lotus master
***

Группа: Модеры
Сообщений: 344
Регистрация: 10:04:2004
Пользователь №: 398
Специализация: Lotus Notes/Domino developer, IBA JV, Minsk, RB



Репутация: - 5 +


Isk
Я смогу помочь тебе, но мне оязательно нужно знать, каким релизом лотуса ты пользуешься? 6 или 5?
Подняться вверх 
 
Сообщение #48
nor
Вставить ник
сообщение 15:04:2004, 19:17
Цитата Ответить 


Lotus master
***

Группа: Модеры
Сообщений: 344
Регистрация: 10:04:2004
Пользователь №: 398
Специализация: Lotus Notes/Domino developer, IBA JV, Minsk, RB



Репутация: - 5 +


Vagor.ini
Я попробовал решить твою проблему и вот с какими проблемами столкнулся:
1. Если форму, вызываемую через @DialogBox, определить как Layout Region, то на нее Embedded View внедрить никак не получается.
2. Если использовать обыкновенную форму, вызываемую через @DialogBox, то можно внедрить туда Embedded View и производить навигацию по документам. При этом нам необходимо наличие действий, которые бы обрабатывали выбранный документ. Пускай действия будут выполнятся при помощи кнопок. Я так и сделал. Вызвал форму через @DialogBox и перевел курсор на Embedded View. После чего перевести курсор на какую-либо другую область этой же формы мне не удавалось (элементарно что бы нажать на кнопку и запустить оработчик).

Такие вот дела. Поэтому помочь тебе не получается.

Однако, я думаю, можно все же операцию твою заменить вызывом диалогового окна с содержанием не формы , а нужного тебе предствления: @PickList.
Подняться вверх 
 
Сообщение #49
Isk
Вставить ник
сообщение 16:04:2004, 02:15
Цитата Ответить 


Новенький
*

Группа: Программист
Сообщений: 42
Регистрация: 14:04:2004
Пользователь №: 416



Репутация: - 0 +


nor 6. Мне сказали сделать счетчик.
Vagor.iniВ смысле есть поле, там названия типа "обращения граждан", "входящие" и т.д., надо посчитать сколько раз выбрали допустим "обращения граждан" и вывести все это куда-нибудь. Конкретно куда не сказали.
Подняться вверх 
 
Сообщение #50
mony_id
Вставить ник
сообщение 16:04:2004, 16:20
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 113
Регистрация: 25:11:2003
Пользователь №: 147



Репутация: - 0 +


Цитата
Помогите, есть база, в ней документы, в документе поле "название базы", тип поля-диалог лист, надо посчитать сколько раз выбрали именно эту базу и вывсети куда нибудь, как можно это сделать и куда ? Санкс

Два пути решения проблемы:
1. Открыть базу данных log.nsf и там посмотреть(это если действительно осуществляется обращение к базе данных).
2. Пишется скрипт в кнопке выбора и один из его параметров это создание документа в какой нибудь другой базе данных.
Подняться вверх 
 
Сообщение #51
mony_id
Вставить ник
сообщение 16:04:2004, 16:36
Цитата Ответить 


Продвинутый
**

Группа: Программист
Сообщений: 113
Регистрация: 25:11:2003
Пользователь №: 147



Репутация: - 0 +


Цитата
nor 6. Мне сказали сделать счетчик.
Vagor.iniВ смысле есть поле, там названия типа "обращения граждан", "входящие" и т.д., надо посчитать сколько раз выбрали допустим "обращения граждан" и вывести все это куда-нибудь. Конкретно куда не сказали.

И наверное сказали что-бы счетчик был типа 1,2,3,4 и т.п.

Варианты могут быть следующие:
1. подсчитавть количество документов в виде и присваивать номер (Недостаток если одновременно создаются документы несколькими пользователями то номер для этих пользователей может быть один и тотже и со временем вычисление № с четырехзначным числом станет занимать много времени).
2. Использовать отдельную базу для регистрации номера в одном единственном документе с заменой этого номера (Недостаток одновременное обращение к документу приведет к созданию конфликта репликации).
3. Использовать связку с реляционной базой данных, с одной таблицей и двумя полями "Счетчик" и "копия счетчика". Как работает не скажу.
4. Использовать свой оригинальный способ создания счетчика.

Я делал сочитание времени и личного идентификатора пользователя "ИДВ-170104180501" такой номер никода не повторится.
Противникам такого скажу: очень простое и надежное решение, когда сливаются несколько реплик, и потом вот как вам номера ГТД.
Подняться вверх