mony_id
16:04:2004, 16:20
Цитата
Помогите, есть база, в ней документы, в документе поле "название базы", тип поля-диалог лист, надо посчитать сколько раз выбрали именно эту базу и вывсети куда нибудь, как можно это сделать и куда ? Санкс
Два пути решения проблемы:
1. Открыть базу данных log.nsf и там посмотреть(это если действительно осуществляется обращение к базе данных).
2. Пишется скрипт в кнопке выбора и один из его параметров это создание документа в какой нибудь другой базе данных.
mony_id
16:04:2004, 16:36
Цитата
nor 6. Мне сказали сделать счетчик.
Vagor.iniВ смысле есть поле, там названия типа "обращения граждан", "входящие" и т.д., надо посчитать сколько раз выбрали допустим "обращения граждан" и вывести все это куда-нибудь. Конкретно куда не сказали.
И наверное сказали что-бы счетчик был типа 1,2,3,4 и т.п.
Варианты могут быть следующие:
1. подсчитавть количество документов в виде и присваивать номер (Недостаток если одновременно создаются документы несколькими пользователями то номер для этих пользователей может быть один и тотже и со временем вычисление № с четырехзначным числом станет занимать много времени).
2. Использовать отдельную базу для регистрации номера в одном единственном документе с заменой этого номера (Недостаток одновременное обращение к документу приведет к созданию конфликта репликации).
3. Использовать связку с реляционной базой данных, с одной таблицей и двумя полями "Счетчик" и "копия счетчика". Как работает не скажу.
4. Использовать свой оригинальный способ создания счетчика.
Я делал сочитание времени и личного идентификатора пользователя "ИДВ-170104180501" такой номер никода не повторится.
Противникам такого скажу: очень простое и надежное решение, когда сливаются несколько реплик, и потом вот как вам номера ГТД.
Еще вопрос. Подскажите как сделать так чтобы в документе поля после второго открытия не были редактируемыми. спасибо за помощь.
Цитата(Isk @ 19:04:2004, 05:30 )
Еще вопрос. Подскажите как сделать так чтобы в документе поля после второго открытия не были редактируемыми. спасибо за помощь.
Чуть Выше в этой ветке ув.
nor отвечал мне на подобный вопрос.
Всем доброго времени суток.
Опять простенькая задачка.
История работы с документом.
Открыли - добавилась запись в поле с историей
Изменили что-то в документе - добавилась запись в поле с историей
Все получается кроме одного, как заставить выводить каждую новую запись в этом поле с новой строки?
В текстовое поле если при формированиии добавлять между записями @Char(10) & @Char(13) в любой комбинации не помогает.
Если использовать ":" для соединения записей тоже не переносит на новую...
МОжет конечно надо вместо тектового поля использовать список, но у меня не получилось, в него вообще не добавляется
Спасибо.
Veselinka
20:04:2004, 08:33
1. При внесении истории - организуй ее в виде Text List - ТО есть списка строк.
2. В самом поле на 3 закладке свойств есть опции отображения мультивалюйности - там и выбери разделитель.
3. Очевидно на 1 закладке свойств надо сказать Allow multiple
Guest_osmor
20:04:2004, 09:21
Спасибо.
1. Text List не нашел использовал ListBox (я его уже и раньше пробовал)
2. В случае если тип ListBox эта поле недоступно (disabled)
3. Эта галка установлена
Со списком я уже пытался, но в него ничего не получается добавить
Пока решил так
1. Сделал невидимое поле (Text) назвал fldHistory
2. В него по событиям добавляю строки (@SetField("fldHistory"; fldHistory : "ПОльзователь такой-то сделал то-то");
3. Сдела видимое вычисляемое поле ListBox назвал fldViewHistory в нем "Use formula for choices" - @Explode(fldHistory;",")
Вроде работает.
Но вопрос, "как программно добавить новое значение (item) в список", остался.
И вообще, может я изобретаю велосипед... как принято такие задачи решать в Lоtus?
Подскажите как в поле сохранить число? Не получается. ЛН ругается что неправильное использование свойства.
Задолбался я уже, и так пробовал и по другому.
Chernom0r
20:04:2004, 11:13
Цитата(Isk @ 20:04:2004, 13:50 )
Задолбался я уже, и так пробовал и по другому.
чтобы сохранить число в поле это поле должно иметь соответствующий формат (Number)
Либо придется переводить числовое значение в string.
To
osmorФорма: "temp1".
Поле, которое содердит текст логов: "history", Text, Computed when composed, Value: history.
(Declaration)
Dim session As NotesSession
Dim ws As NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim item As NotesDocument
Sub Initialize
Set session = New NotesSession
Set ws = New NotesUIWorkspace
Set db = session.CurrentDatabase
End Sub
Sub Postopen(Source As Notesuidocument)
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
End Sub
Sub Click(Source As Button)
Dim new_msg As String
new_msg = "сообщение 1"
doc.history = doc.history(0) + Chr(10) + new_msg
new_msg = "сообщение 2"
doc.history = doc.history(0) + Chr(10) + new_msg
new_msg = "сообщение 3"
doc.history = doc.history(0) + Chr(10) + new_msg
Call doc.Save(True, True)
End Sub
Каждый раз, при активировании действия (Sub Click)? в поле "history" добавляется некоторая текстовая информация, новые сообщения добавляются с новой строки причем.
to
IskФорма: "temp1".
Поля:
1. "number_field", Number, Computed when composed, Value: number_field.
2. "number_field2", Number, Computed when composed, Value: number_field2.
(Declaration)
Dim session As NotesSession
Dim ws As NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Sub Initialize
Set session = New NotesSession
Set ws = New NotesUIWorkspace
Set db = session.CurrentDatabase
End Sub
Sub Postopen(Source As Notesuidocument)
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
End Sub
Sub Click(Source As Button)
Dim value As String
value = Inputbox$("Введите целое число:", "Новое число")
If value = "" Then Exit Sub
doc.number_field = Cint(value)
doc.number_field2 = (doc.number_field(0) * 3) / 5
Call doc.Save(True, True)
End Sub
Каждый раз, при активировании действия (Sub Click), в поле number_field записывается число, указанное пользователем. На основании значения поля "number_field" по определенной формуле рассчитывается числовое значение поля "number_field2".
Спасибо nor , ты не можешь подсказать как сделать это все без ввода числа пользователем. просто допустим есть какой-то счетчик в форме или виде и надо его значение сохранить в поле чтобы при создании нового документа по этой форме брать значение из этого поля последнего документа. своего рода сортировка . то есть во всей коллекции ищется макс. знач. и наращивается на 1.
Спасибо nor.
С помощью Lotus script не пробовал, все пытался на собаках, поскольку вроде все должно было получиться ...
но такой же способ с использованием @Char не сработал.
Vagor.ini
21:04:2004, 05:46
Isk
Здесь тебе помощь - читать про профайловые формы, через них можно легко организовать счетчик, и обрабатывать его на событии QuereSave
Вопросец.
Существует ли в Lotus (IBM) общепринятая нотация именования объектов? Типа Венгерской ...
Ну привык я, что нужно именовать по правилам ...
Можно конечно и Венгерскую подогнать, или самому придумать, но может есть уже принятые правила именования?
Например:
Два поля одно для ввода данных другое для отображения ...
View (представления), наборы рамок, страницы, агенты, структуры, да и действия тоже наверное ...
Vagor.ini
21:04:2004, 13:42
osmor
Ну не знаю, определенной наверное нет, я например часто использую в полях префиксы типа полей и суффикс-имя формы.
osmor, официально - нет, не существует, но в книгах крупных издательств авторы рекомендуют определенную нотацию.
IskФорма "temp1".
Поле, которое хранит значения порядкового счетчика документов, созданных по форме "form1": "ordinal_num", number, computed when composed, value: ordinal_num.
Скрытое служебное представление ($temp1): столбец1: column value: ordinal_num, sort: Descending.
(Declartion)
Dim session As NotesSession
Dim ws As NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim uidoc As NotesUIDocument
Dim view As NotesView
Sub Initialize
Set session = New NotesSession
Set ws = New NotesUIWorkspace
Set db = session.CurrentDatabase
End Sub
Sub AssignNewDocNum(doc As NotesDocument)
Dim temp1 As notesDocument
Set view = db.GetView("($temp1)")
Set temp1 = view.GetFirstDocument
If temp1 Is Nothing Then
doc.ordinal_num = 1
Else
doc.ordinal_num = temp1.ordinal_num(0) + 1
End If
End Sub
Sub Postopen(Source As Notesuidocument)
Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
If doc.IsNewNote Then Call AssignNewDocNum(doc)
End Sub
Таким образом, каждому новому документу при созднии по форме "temp1" присваивается очередной порядковый номер.
nor Сделал вот такую х..ню, на большее мозгов пока не хватило. Единственное что радует что сам.
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim ses As New NotesSession
Dim ws As New NotesUIWorkspace
Dim udoc As NotesUIDocument
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim col As NotesDocumentCollection
Dim str1 As String
Dim Ovar As Variant
Dim Vvar As Variant
Dim Ivar As Variant
Dim Orvar As Variant
Dim str2 As String
Ovar=1
Vvar=1
Ivar=1
Orvar=1
Set db=ses.CurrentDatabase
Set col=db.AllDocuments
Set doc=source.Document
Set doc=col.GetFirstDocument
While Not doc Is Nothing
If doc.bdname_1(0)="obr" Then
Ovar=Ovar+1
End If
If doc.bdname_1(0)="vhod" Then
Vvar=Vvar+1
End If
If doc.bdname_1(0)="ish" Then
Ivar=Ivar+1
End If
If doc.bdname_1(0)="ord" Then
Orvar=Orvar+1
End If
Set doc=col.GetNextDocument(doc)
Wend
Set udoc=ws.CurrentDocument
Set doc=udoc.Document
If doc.bdname_1(0)="obr" Then
str1="O"
str2=str1+"-" & Ovar
Messagebox("nomer documenta" & Ovar & str1)
End If
If doc.bdname_1(0)="vhod" Then
str1="V"
str2=str1+"-" & Vvar
Messagebox("nomer documenta" & Vvar & str1)
End If
If doc.bdname_1(0)="ish" Then
str1="Is"
str2=str1+"-" & Ivar
Messagebox("nomer documenta" & Ivar & str1)
End If
If doc.bdname_1(0)="ord" Then
str1="Or"
str2=str1+"-" & Orvar
Messagebox("nomer documenta" & Orvar & str1)
End If
Call source.FieldSetText("num",str2)
End Sub
Но как я сам думаю если док. будет много то все будет работать очень и очень медленно. Подскажи что можно переделать?
Vagor.ini и nor, спасибо.
Я понимаю что все нотации являются рекомендательными.
Пока мне не встретилось (ни в книгах ни в Инете) четкого описания рекомендаций по именованию объектов Lotus. Видно, что авторы используют какую-то систему именования, но формального описания или рекомендаций пока не встретил.
Буду искать или сам придумаю, точнее уже начал придумывать ... поля только для отображения того что вводитсяв другое поля с такой же смысловой нагрузкой именую с приставкой view :-)
Chernom0r
22:04:2004, 08:39
Здравствуйте.
В Domino R5 есть возможность запускать агентов на сервере (After New Mail has Arrived).
Есть ли какие-либо специфические траблы с такими агетами?
Как я понял понятие UIWorkspase я в этом случае использовать не могу.
IskТы прав, ты в цикле перебираешь
все документы в бд. Но тебе, я как понимаю, нужно посчитать количество документов, созданных только по определенной форме. Это сужает выборку.
Таким образом:
Set collection = db.Searh("Form=""имя_формы""", Nothing, 0)
далее пребираешь один за другим документы из коллекции и формируешь нужные тебе счетчики...
Можно сделать еще лучше и проще:
Set collection = db.Searh("Form=""имя_формы"" & bdname_1 = ""obr""", Nothing, 0)
Ovar = collection.Count
Set collection = db.Searh("Form=""имя_формы"" & bdname_1 = ""vhod""", Nothing, 0)
Vvar = collection.Count
... и т.д.
Это будет работть быстрее.
Chernom0r
В агентах (любых) ты не можешь пользоваться классами Front end (uidocument, uiview, ...), а также функциями, требующими реакции конечного пользователя, типа MessageBox и др. Поэтому, что бы отладить агент, нужно его код навесить на кнопку либо в документе, либо в представлении, либо еще что-нибудь придумать, главное, что бы был досупен Debuger.
Chernom0r
22:04:2004, 09:16
nor Отладка агента уже пройдена. Агент выполняет все мои требования.
Как мне теперь избавиться от UI....?
Вот часть этого агента. Выполняться он должен на сервере по приходу нового документа в почтовую базу.
Sub Initialize
Dim session As NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim collection As NotesDocumentCollection
Dim rtitem As NotesRichTextItem
Dim item As NotesItem
Set session = New NotesSession
Set ws = New NotesUIWorkspace
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
Set db = session.CurrentDatabase
Set doc = session.DocumentContext
и т.д.
Chernom0r"Как мне теперь избавиться от UI....?" - не пользуйся UI классами!

Замени их либо откажись от них. Не думаю, что в твоем агенте UI классы являются определяющими и критически необходимыми.
Gogan.exe
27:04:2004, 06:02
Как открыть форму? Есть команды OpenPage, OpenFrameset и тому подобные, а есть ли команда OpetForm или какая-то похожая по функции?
Veselinka
27:04:2004, 07:57
@command([compose];"имя формы")
- создает новый документ по форме
dim ws as new NotesUIWorkspace
dim doc as notesdocument
set doc=....
call ws.EditDocument(false,doc)
- открывает документ по той форме, которая у него в поле form
Gogan.exe
27:04:2004, 08:10
аагррр.... умпф... ничего не понял.. учиться еще и учиться... может позднее пойму. спасибо
Gogan.exe
27:04:2004, 10:26
Для пробы, я создал базу данных по песенкам. Сева у меня менюшка с двумя кнопками – добавить песню и посмотреть список. Вопрос вот в чем – когда я нажимаю на одну из кнопок и справа открывается окно, то в верхней менюшке (список окон) появляется еще одно окно. Так, поработав с базой и понажимав кнопки, в меню появляется просто дикое количество окон. Как сделать так, чтобы окна не открывались по-новому, а заменяли друг друга? Извиняюсь, если непонятно объяснил.
Veselinka Привет, в очередной раз обращаюсь за помощью. Не подскажешь? Как в документе запретить редактирование? полностью. Вот что попробовал сделать, но виснет все!!!!
Sub Postopen(Source As Notesuidocument)
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim acl As NotesACL
Set db=ses.CurrentDatabase
Set acl=db.ACL
Set source=ws.CurrentDocument
Set doc=source.Document
If source.IsNewDoc Then
Exit Sub
Else
If acl.Roles="[AdminBD]" Then
source.EditMode=True
Else
Call ws.EditDocument(False)
End If
End If
End Sub
Блин!!!!!!!! Спасибо
Veselinka
28:04:2004, 06:48
Isk, естьу формы такое событие QueryModeChange
у него как и у всех событий типа Query есть параметр Continue, который при установке его на False, не даст свершиться тому действию, которому событие предшествует.
Кроме того на Postopen действительно надо запретить переход в режим редактирования.
Но эта защита - интерфейсная, то есть если у человека есть реальные права на редактирование документа, то он сможет редактировать его из баэкнда, поэтому если документ нельзя давать редактировать никому кроме сервера и админов - ну просто убери из его авторских и ридерских полей всех кроме админов.
А теперь я хочу прокоментировать твой код, может Это заставит тебя читать спецификацию и понимать - что пишешь:
Sub Postopen(Source As Notesuidocument)
Dim ses As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim acl As NotesACL
Set db=ses.CurrentDatabase
Set acl=db.ACL
Set source=ws.CurrentDocument
нафига присваивать переданному тебе открываемому документу Source еще что-то - тебе его и так в этом методе передают - зачем его еще каким-то образом искать? Может перед тем как чем-то пользоваться - почитать сначала что это такое? Ты же не расчесываешься по утрам вилкой и если видишь незнакомый предмет - выясняешь - для чего он нужен, перед тем как пользоваться - почему бы тебе мануалы наконец не начать читать? Если ты не начнешь этого делать - то твои вопросы НИКОГДА не иссякнут.
Set doc=source.Document
If source.IsNewDoc Then
Exit Sub
Else
If acl.Roles="[AdminBD]" Then
Syntax
To get: stringArray = notesACL.Roles
При сравнении массива со строкой что происходит? Правильно - все падает - ибо они не сравнимы! Кроме того наверное смысл твоего кода - не проверить наличие в ACL твоей базы такой роли, а проверить ее наличие у текущего пользователя. Значит перед тем как пользоваться методом - надо выяснить - что он возвращает и имеет ли смысл его употреблять. Здесь надо использовать что-то совсем иное... Что? Вопрос для самостоятельного выснения. Подсказка - почитай про @userRoles И про то как использовать выполнение формул из лотус скрипта.
source.EditMode=True
Else
Call ws.EditDocument(False)
вот это меня просто прибило...
у тебя документ УЖЕ открывается в рабочей области -зачем же его открывать опять? Я даже не знаю как поведет себя нотес в такой ситуации - если все упадет с красным экраном я не удивлюсь.
Ты же уже начал рулить параметром edit mode - ну и продолжай с ним работать.
End If
End If
Если бы я писала код на PostOpen событии, то я бы написала вот так:
Mode=source.editmode
If not source.IsNewDoc then
tmp=evaluate(|@IsMember("[AdminBD]";@UserRoles)|)
if tmp(0)=0 then
' Это значит, чтопользователь не админ
source.editMode=Mode
end if
end if
Veselinka
28:04:2004, 06:52
послалось, раньше чем я закончила редактирование этого поста:
Mode=source.editmode
If not source.IsNewDoc then
tmp=evaluate(|@IsMember("[AdminBD]";@UserRoles)|)
if tmp(0)=0 then
' Это значит, что пользователь не админ
source.editmode=false
else
source.editMode=Mode
end if
end if
Gogan.exe
1. Форму открыть нельзя в UI (User Interface). Так же как нельзя открыть в UI, например, Script Library. Можно по форме создать документ. Форма является "заготовкой", "скелетом" документов.
2. Насчет твоей пробной бд с песнями. Меню слева, как я понял, у тебя располагается в левом Frame (пусть его имя будет "left_frame"). Отображение информации о конкретной песне, как я понял, у тебя располагается справа, в главном Frame (пусть его имя будет "main_frame"). Каждый раз, когда ты, пользуясь навигацией, расположенной слева, открываешь документы, они отображаются в новом окне. Это происходит потому что ты не указал имя фрэйма по-умолчанию для открытия ссылок левого фрэйма. Таким образом, Framesets - <имя фрэймсета> - <Frame Properties левого фрэма ("left_frame"), в котором располагается навигация> - Defualt targets for links in frame - <указываешь имя правого, главного фрэйма ("main_frame"), в котором по идее должны открываться ссылки (из левого фрэма)> .
Если что-то не получится, то пиши.
Veselinka Приму к сведению, спасибо, я же говорил что с англ. у меня проблемы. Хэлп я читаю, но честное слово не всегда все понятно. А насчет событий я ведь еще только учусь. Но если ты не против то я у тебя все равно буду консультироваться. А насчет вилки по утрам это прикольно надо попробовать. Хотя у меня дома только палочки. Спасибо еще раз.
подскажите народ как сделать профайл и что для этого вообще надо сделать.
Простите уже нашел, я сам мир знаю еще раз извините
Gogan.exe
28:04:2004, 13:37
НОР, я указал дефолт и открываются ссылки в правом фрейме как и надо, но вот в верхнем меню список открытых окон увеличивается. Получается, что то, что раньше было в правом (мейн_фрейм) не закрывается, а новая ссылка открывается как-то поверх что ли. Извини, что не могу точнее все написать.
Может нужно где-то галочку поставить на обновление фрейма?
И еще вопрос. В той моей БД есть поля типа «автор» «название» и т.п.
Во-первых, что должно быть в кнопке «сохранить» а то приходиться сохранять кнопкой из верхнего меню.
Во-вторых, что и где нужно указать, чтобы после сохранения, поля отчищались и были готовы для приема новой инфы.
Еще раз прошу прощения за ламерские вопросы – я попутно читаю мануал, но по ходу чтения возникают такие вот вопросы.
IskИз твоего запроса я понял следующее: тебе нужно запретить редактирование документа всем, кроме роли AdminBD.
Так как ты внятно не описал проблему, то могу предположить, что созданный документ, вне зависимости от его автора и последующего статуса, должен быть доступен для всех только в режиме чтения, а для роли AdminBD - в режиме редактирования. Будем исходить из этого.
Sub Querymodechange(Source As Notesuidocument, Continue As Variant)
Dim user_names As Variant
user_names = Evaluate("@UserNamesList", doc)
If Isnull (Arraygetindex(user_names, "[AdminBD]", 0)) Then Continue = False
End Sub
Gogan.exe1. Я совершенно не понимаю, почему у тебя так открываются ссылки. Возможно тебе кто-нибудь другой сможет помочь. (У меня открыватся как положено, без новых окон...

)
2. В кнопке сохранить должно быть: @Command([FileSave]).
3. В событии Querysave пишешь скрипт, который очищает нужные тебе поля. Доступ к документу можно получить посредством параметра события Source. Не забудь сохранить изменения методом Save.
nor Еще раз спасибо, именно это и надо было.
Gogan.exe
29:04:2004, 06:13
Все ясно… чтобы добавить песни – я открывал новый фреймсет. Если в кнопке просто написать «@Command([Openview]; "ViewOne")» тогда справа и правда открывается ВьюВн, но вот левое меню заменяется на какой-то дефолтовый! Что не так?
Понятно почему ссылки появлялись - это ссылки на открытые фреймы.
Veselinka
29:04:2004, 06:59
Isk - прости, мне очень стыдно, я злобно наехала на тебя...
Я сидела - меня достали на работе, я писала пост, просто в очень плохом настроении... и вовсе его в таком виде не собиралась посылать и выливать на ни в чем не повинного человека - ушат отстоя, к нему не относящийся, а оно послалось - когда я писала код и табуляции пыталась в него вставлять - перескочило из окошка на кнопку отправки поста - как я понимаю. Вот и получилось... я сегодня даже ночью уснуть не могла ... психовала, что обидела тебя... извини еще раз - если можешь. Я не горжусь тем, что я написала.....
Veselinka Да я не обиделся честное слово, а вопросы все равно буду присылать и писать, никуда не денешься. Спасибо
Не подскажете, если есть агент который помечает документ как снятый с контроля, я так понял что это делается агентом
Dim ws As NotesUIWorkspace
Dim ses As NotesSession
Dim db As NotesDatabase
Dim controldb As NotesDatabase
Dim col As NotesDocumentCollection
Dim agent As NotesAgent
Dim action(2) As String
Dim response As String
Dim cdoc As NotesDocument
Dim item As NotesItem
Dim asitem As NotesItem
On Error Goto er
Set ws = New NotesUIWorkspace
action(0) = "Снять с контроля"
action(1) = "Восстановить контроль"
response = ws.Prompt (PROMPT_OKCANCELLIST, "Сервис","Выберите тип сервиса",action(0), action)
If response="" Then Exit Sub
Set ses = New NotesSession
Set db = ses.CurrentDatabase
Set controldb = ses.GetDatabase(db.Server,GetBasePath("ControlDB")
Set agent = controldb.GetAgent("Service")
Set col = db.UnprocessedDocuments
Set cdoc = col.GetFirstDocument
While Not cdoc Is Nothing
If cdoc.Form(0)="IN" Or cdoc.Form(0)="KR" Or cdoc.Form(0)="KP" Or cdoc.Form(0)="Q" Then
Set asitem = cdoc.GetFirstItem("agentstart")
Select Case response
Case "Снять с контроля":
cdoc.agentstart=Replace(cdoc.agentstart,"ServiceRestoreControl","")
asitem.AppendToTextList "ServiceResetControl"
cdoc.ServiceParameter = ses.UserName
Case "Восстановить контроль":
cdoc.agentstart=Replace(cdoc.agentstart,"ServiceResetControl","")
asitem.AppendToTextList "ServiceRestoreControl"
cdoc.ServiceParameter = ses.UserName
End Select
cdoc.Save False,False
End If
Set cdoc = col.GetNextDocument(cdoc)
Wend
' Call agent.RunOnServer
ws.ViewRefresh
Exit Sub
er:
Msgbox "Ошибка "+Error+" " +Cstr(Erl),16,"Ошибка "
Resume en
en:
вот код, не могу найти агента с этим именем ServiceRestoreControl
вопрос где бы это могло храниться, и как?
Isk
Извини, пожалуйста, но я не понимаю твой вопрос.

Агенты - это набор процедур, их можно найти в Дизайнере на закладке Agents. Слово "ServiceRestoreControl" встречается у тебя в строчке cdoc.agentstart=Replace(cdoc.agentstart,"ServiceRestoreControl",""....
И отключай смайлики, когда пишешь код.
Gogan.exe
30:04:2004, 07:15
Теперь я решил создать для пробы сайтик на базе лотус. На всех страничках поставил галочку «Treat contents as HTML», но почему-то при запуске експлорера с сайта или из дизайнера, он отвечает, что страница не найдена. В чем дело?
Veselinka
30:04:2004, 09:48
Описываю ситуацию:
1. Есть документ с вложенными атачментами
2. Документ редактируется через web
3. Домино генерит внизу уродскую надпись "Mark attachments for deletion" и список атачей с чекбоксами для удаления
Чего хочется:
Привести дизайн и локализацию этого куска формы к общему стилю.
Если конкретно - то желательно бы перенести этот кусок ближе к середине документа
Русифицировать, и одеть на него стили, сейчас домино там генерит таг font с параметрами, от него надо бы избавиться, чтобы стили оделись.
Проблема наверняка - часто встречающаяся у разработчиков веб сайтов на домино. Но я в данной области девелопмента под домино - не особо сильна и не знакома со стандартными приемами.
В хэлпе по этому поводу не нашла ничего подходящего....
Может быть можно с <div> поиграться и задвинуть его куда-нибудь и сгенерить самой этот блок... но этот как-то сложно, может быть по-проще можно? Кто знает?
Gogan.exe
А ты http сервер включил?
Veselinka
К сожалению, я не вижу возможности решить эту проблему мне известными стандартными методами. Буду крайне признателен, если тебе что-то получится сделать в этом плане и ты поделишься со всеми нами результатами.