Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Россыпь мелких вопросов для разработчиков
Форум программистов > Базы данных и администрирование > Lotus > Lotus - Программирование
Страницы: 1, 2, 3, 4, 5
mony_id
Цитата
Помогите, есть база, в ней документы, в документе поле "название базы", тип поля-диалог лист, надо посчитать сколько раз выбрали именно эту базу и вывсети куда нибудь, как можно это сделать и куда ? Санкс

Два пути решения проблемы:
1. Открыть базу данных log.nsf и там посмотреть(это если действительно осуществляется обращение к базе данных).
2. Пишется скрипт в кнопке выбора и один из его параметров это создание документа в какой нибудь другой базе данных.
mony_id
Цитата
nor 6. Мне сказали сделать счетчик.
Vagor.iniВ смысле есть поле, там названия типа "обращения граждан", "входящие" и т.д., надо посчитать сколько раз выбрали допустим "обращения граждан" и вывести все это куда-нибудь. Конкретно куда не сказали.

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

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

Я делал сочитание времени и личного идентификатора пользователя "ИДВ-170104180501" такой номер никода не повторится.
Противникам такого скажу: очень простое и надежное решение, когда сливаются несколько реплик, и потом вот как вам номера ГТД.
Isk
Еще вопрос. Подскажите как сделать так чтобы в документе поля после второго открытия не были редактируемыми. спасибо за помощь.
osmor
Цитата(Isk @ 19:04:2004, 05:30 )
Еще вопрос. Подскажите как сделать так чтобы в документе поля после второго открытия не были редактируемыми. спасибо за помощь.

Чуть Выше в этой ветке ув. nor отвечал мне на подобный вопрос.
osmor
Всем доброго времени суток.
Опять простенькая задачка.
История работы с документом.
Открыли - добавилась запись в поле с историей
Изменили что-то в документе - добавилась запись в поле с историей
Все получается кроме одного, как заставить выводить каждую новую запись в этом поле с новой строки?
В текстовое поле если при формированиии добавлять между записями @Char(10) & @Char(13) в любой комбинации не помогает.
Если использовать ":" для соединения записей тоже не переносит на новую...
МОжет конечно надо вместо тектового поля использовать список, но у меня не получилось, в него вообще не добавляется
Спасибо.
Veselinka
1. При внесении истории - организуй ее в виде Text List - ТО есть списка строк.
2. В самом поле на 3 закладке свойств есть опции отображения мультивалюйности - там и выбери разделитель.
3. Очевидно на 1 закладке свойств надо сказать Allow multiple
Guest_osmor
Спасибо.
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?
Isk
Подскажите как в поле сохранить число? Не получается. ЛН ругается что неправильное использование свойства.
Isk
Задолбался я уже, и так пробовал и по другому.
Chernom0r
Цитата(Isk @ 20:04:2004, 13:50 )
Задолбался я уже, и так пробовал и по другому.

чтобы сохранить число в поле это поле должно иметь соответствующий формат (Number)
Либо придется переводить числовое значение в string.
nor
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" добавляется некоторая текстовая информация, новые сообщения добавляются с новой строки причем.
nor
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".
Isk
Спасибо nor , ты не можешь подсказать как сделать это все без ввода числа пользователем. просто допустим есть какой-то счетчик в форме или виде и надо его значение сохранить в поле чтобы при создании нового документа по этой форме брать значение из этого поля последнего документа. своего рода сортировка . то есть во всей коллекции ищется макс. знач. и наращивается на 1.
Guest
Спасибо nor.
С помощью Lotus script не пробовал, все пытался на собаках, поскольку вроде все должно было получиться ...
но такой же способ с использованием @Char не сработал.
Vagor.ini
Isk
Здесь тебе помощь - читать про профайловые формы, через них можно легко организовать счетчик, и обрабатывать его на событии QuereSave
osmor
Вопросец.
Существует ли в Lotus (IBM) общепринятая нотация именования объектов? Типа Венгерской ...
Ну привык я, что нужно именовать по правилам ...
Можно конечно и Венгерскую подогнать, или самому придумать, но может есть уже принятые правила именования?
Например:
Два поля одно для ввода данных другое для отображения ...
View (представления), наборы рамок, страницы, агенты, структуры, да и действия тоже наверное ...
Vagor.ini
osmor
Ну не знаю, определенной наверное нет, я например часто использую в полях префиксы типа полей и суффикс-имя формы.
nor
osmor, официально - нет, не существует, но в книгах крупных издательств авторы рекомендуют определенную нотацию.
nor
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" присваивается очередной порядковый номер.
Isk
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


Но как я сам думаю если док. будет много то все будет работать очень и очень медленно. Подскажи что можно переделать?
Guest
Vagor.ini и nor, спасибо.
Я понимаю что все нотации являются рекомендательными.
Пока мне не встретилось (ни в книгах ни в Инете) четкого описания рекомендаций по именованию объектов Lotus. Видно, что авторы используют какую-то систему именования, но формального описания или рекомендаций пока не встретил.
Буду искать или сам придумаю, точнее уже начал придумывать ... поля только для отображения того что вводитсяв другое поля с такой же смысловой нагрузкой именую с приставкой view :-)
Chernom0r
Здравствуйте.
В Domino R5 есть возможность запускать агентов на сервере (After New Mail has Arrived).
Есть ли какие-либо специфические траблы с такими агетами?
Как я понял понятие UIWorkspase я в этом случае использовать не могу.
nor
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

... и т.д.


Это будет работть быстрее.
nor
Chernom0r
В агентах (любых) ты не можешь пользоваться классами Front end (uidocument, uiview, ...), а также функциями, требующими реакции конечного пользователя, типа MessageBox и др. Поэтому, что бы отладить агент, нужно его код навесить на кнопку либо в документе, либо в представлении, либо еще что-нибудь придумать, главное, что бы был досупен Debuger.
Chernom0r
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

и т.д.
nor
Chernom0r
"Как мне теперь избавиться от UI....?" - не пользуйся UI классами! smile.gif Замени их либо откажись от них. Не думаю, что в твоем агенте UI классы являются определяющими и критически необходимыми. smile.gif
Gogan.exe
Как открыть форму? Есть команды OpenPage, OpenFrameset и тому подобные, а есть ли команда OpetForm или какая-то похожая по функции?
Veselinka
@command([compose];"имя формы")

- создает новый документ по форме

dim ws as new NotesUIWorkspace

dim doc as notesdocument
set doc=....

call ws.EditDocument(false,doc)

- открывает документ по той форме, которая у него в поле form
Gogan.exe
аагррр.... умпф... ничего не понял.. учиться еще и учиться... может позднее пойму. спасибо
Gogan.exe
Для пробы, я создал базу данных по песенкам. Сева у меня менюшка с двумя кнопками – добавить песню и посмотреть список. Вопрос вот в чем – когда я нажимаю на одну из кнопок и справа открывается окно, то в верхней менюшке (список окон) появляется еще одно окно. Так, поработав с базой и понажимав кнопки, в меню появляется просто дикое количество окон. Как сделать так, чтобы окна не открывались по-новому, а заменяли друг друга? Извиняюсь, если непонятно объяснил.
Isk
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
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
послалось, раньше чем я закончила редактирование этого поста:

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
nor
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"), в котором по идее должны открываться ссылки (из левого фрэма)> .

Если что-то не получится, то пиши.
Isk
Veselinka Приму к сведению, спасибо, я же говорил что с англ. у меня проблемы. Хэлп я читаю, но честное слово не всегда все понятно. А насчет событий я ведь еще только учусь. Но если ты не против то я у тебя все равно буду консультироваться. А насчет вилки по утрам это прикольно надо попробовать. Хотя у меня дома только палочки. Спасибо еще раз.
Isk
подскажите народ как сделать профайл и что для этого вообще надо сделать.
Isk
Простите уже нашел, я сам мир знаю еще раз извините
Gogan.exe
НОР, я указал дефолт и открываются ссылки в правом фрейме как и надо, но вот в верхнем меню список открытых окон увеличивается. Получается, что то, что раньше было в правом (мейн_фрейм) не закрывается, а новая ссылка открывается как-то поверх что ли. Извини, что не могу точнее все написать.
Может нужно где-то галочку поставить на обновление фрейма?
И еще вопрос. В той моей БД есть поля типа «автор» «название» и т.п.
Во-первых, что должно быть в кнопке «сохранить» а то приходиться сохранять кнопкой из верхнего меню.
Во-вторых, что и где нужно указать, чтобы после сохранения, поля отчищались и были готовы для приема новой инфы.
Еще раз прошу прощения за ламерские вопросы – я попутно читаю мануал, но по ходу чтения возникают такие вот вопросы.
nor
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
nor
Gogan.exe
1. Я совершенно не понимаю, почему у тебя так открываются ссылки. Возможно тебе кто-нибудь другой сможет помочь. (У меня открыватся как положено, без новых окон... blink.gif )
2. В кнопке сохранить должно быть: @Command([FileSave]).
3. В событии Querysave пишешь скрипт, который очищает нужные тебе поля. Доступ к документу можно получить посредством параметра события Source. Не забудь сохранить изменения методом Save.
Isk
nor Еще раз спасибо, именно это и надо было.
Gogan.exe
Все ясно… чтобы добавить песни – я открывал новый фреймсет. Если в кнопке просто написать «@Command([Openview]; "ViewOne")» тогда справа и правда открывается ВьюВн, но вот левое меню заменяется на какой-то дефолтовый! Что не так?
Понятно почему ссылки появлялись - это ссылки на открытые фреймы.
Veselinka
Isk - прости, мне очень стыдно, я злобно наехала на тебя...

Я сидела - меня достали на работе, я писала пост, просто в очень плохом настроении... и вовсе его в таком виде не собиралась посылать и выливать на ни в чем не повинного человека - ушат отстоя, к нему не относящийся, а оно послалось - когда я писала код и табуляции пыталась в него вставлять - перескочило из окошка на кнопку отправки поста - как я понимаю. Вот и получилось... я сегодня даже ночью уснуть не могла ... психовала, что обидела тебя... извини еще раз - если можешь. Я не горжусь тем, что я написала..... sad.gif
Isk
Veselinka Да я не обиделся честное слово, а вопросы все равно буду присылать и писать, никуда не денешься. Спасибо
Isk
Не подскажете, если есть агент который помечает документ как снятый с контроля, я так понял что это делается агентом
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
вопрос где бы это могло храниться, и как?
nor
Isk
smile.gif Извини, пожалуйста, но я не понимаю твой вопрос. blink.gif Агенты - это набор процедур, их можно найти в Дизайнере на закладке Agents. Слово "ServiceRestoreControl" встречается у тебя в строчке cdoc.agentstart=Replace(cdoc.agentstart,"ServiceRestoreControl",""....
И отключай смайлики, когда пишешь код.
Gogan.exe
Теперь я решил создать для пробы сайтик на базе лотус. На всех страничках поставил галочку «Treat contents as HTML», но почему-то при запуске експлорера с сайта или из дизайнера, он отвечает, что страница не найдена. В чем дело?
Veselinka
Описываю ситуацию:
1. Есть документ с вложенными атачментами
2. Документ редактируется через web
3. Домино генерит внизу уродскую надпись "Mark attachments for deletion" и список атачей с чекбоксами для удаления

Чего хочется:
Привести дизайн и локализацию этого куска формы к общему стилю.

Если конкретно - то желательно бы перенести этот кусок ближе к середине документа
Русифицировать, и одеть на него стили, сейчас домино там генерит таг font с параметрами, от него надо бы избавиться, чтобы стили оделись.

Проблема наверняка - часто встречающаяся у разработчиков веб сайтов на домино. Но я в данной области девелопмента под домино - не особо сильна и не знакома со стандартными приемами.

В хэлпе по этому поводу не нашла ничего подходящего....
Может быть можно с <div> поиграться и задвинуть его куда-нибудь и сгенерить самой этот блок... но этот как-то сложно, может быть по-проще можно? Кто знает?
nor
Gogan.exe
А ты http сервер включил?
nor
Veselinka
К сожалению, я не вижу возможности решить эту проблему мне известными стандартными методами. Буду крайне признателен, если тебе что-то получится сделать в этом плане и ты поделишься со всеми нами результатами.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2009 IPS, Inc.