• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Россыпь мелких вопросов

  • Автор темы Vagor.ini
  • Дата начала
G

Gogan.exe

@all;
field ИмяПоля:= ИмяПоля;
Field ИмяПоля:= @If(@isNewDoc;@SetField(ИмяПоля; "Слово"); ИмяПоля);

Не работает. Имя поля всегда показывает "1"
 
V

Veselinka

Dark пришли мне базу, в ней вьюху - и штук 5 документов для этой вьюхи, я тебе причешу ее, воспользуйся опцией форума отправки почты.
 
V

Veselinka

Gogan.exe

вот такая конструкция -;@SetField("ИмяПоля"; "Слово") - это операция, результат ее выполнения или фалс или тру, поэтому у тебя эта операция выполняясь очевидно выдает 1 - то есть тру, что ты и засовываешь в свое поле. Старайся по шагам понимать свои действия.
 
G

Gogan.exe

Все заработало, но использую совершенно другую конструкцию.
По поводу этой, я с тобой несколько не согласен. @SetFiel() в этом случае не вычисляется как логическое уравнение, а выполняется, если @IsNewDoc = true. По крайней мере я так это понимал, когда писал.
 
V

Veselinka

выполняться то оно может по условию, а результат операции - все равно логическая величина. Можно соглашаться - можно не соглашаться, суть вопроса и поведения данного скрипта от этого не меняется.

Вообще на будущее - если ты выполняешь некоторую команду, которая не возвращает аки функция некоторого декларированного значения, то результат ее выполнения - выполнилась или не выполнилась, поэтому если извращаться и присваивать филду результат выполнения операции (а не просто ее выполнять) - то и получишь 0 или 1 в поле. Это общая концепция, вероятно возможны какие-либо исключения, я не изучала этот вопрос детально, ибо это как-то.... э... нестандартно. Так обычно не пишут, ибо это как правило не что иное как ошибка в логике.
 
G

Gogan.exe

Ах, теперь я понял что имелось в виду… Просто после С++ пересаживаться на это… не понятно что куда писать, что когда выполняется, но теперь я на твою волну попал. То есть если положить данный скриптик в Дефолт поля, то он выполняет и так как там присутствует @if он расценивает его как логическое уравнение и выводит 0 либо 1. в моем случае 1. Все ясно. Спасибочки!
 
V

Veselinka

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

Например поле Адрес для письма, которое конкатенируется из значений полей HouseNumber, StreetName, City, Region, Country, формула будет выглядеть так:
@if(country!="";country+", ";"") + @if(Region!="";region+", ";"")+ @if(city!="";city+", ";"") + streetname + " " + HouseNumber+"."

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

Хотя это же можно было элегантнее написать:
@Implode(@trim(country:region:city);", ")+ streetName+" " + HouseNumber+"."
 
G

Gogan.exe

Понятно, просто смысл был в другом. Я хотел, чтобы при создании документа, по дефолту поле имело какое-то значение, но потом оно пересчитывалось. Проблема состояла в том, что при сохранении формула снова просчитывалась, и значение возвращалось к исходному значению. С этим я, в итоге, справился. Не без твоей помощи. Еще раз спасибо!
 
V

Veselinka

Ну, повидимому, раз "без моей помощи", то "спасибо" как раз говорить не за что. В итоге - решив задачу - ты ее наконец-то поставил - то есть описал - что тебе нужно сделать - свою цель, а не просто набор формул с вопросом - а почему не работает. Если хочешь чтобы на твой вопрос ответили - надо уметь его задать.
 
V

Veselinka

Люди, кто гуру по веб-девелопменту на нотесах - хэлп:
1. Есть документ А, у него есть некоторый документ Б к которому он относится.
2. В исходном документе А есть его тип.
3. По кнопке, которая выбирает документ Б и прописывает его в документ А, должен открыться не весь список документов вида Б, а только те из них (категория), к которым может относиться документ данного типа.

То есть у меня например есть документ Процедура регистрации в отделе Маркетинга, этот документ может относиться только к документу Регламент регистрации для отдела Маркетинга. Поэтому при выборе документов регламента - я буду выбирать из категории Маркетинг.

Теперь технический аспект:
На вебе у меня открывается документ Процедура, в нем в хиднутом параметре есть HeadType=Маркетинг.
Далее - по кнопочке выбора документа к которому он относится у меня открывается ссылка типа server/database/(DialogForm)?openform.
В этой форме на webqueryopen насчитывается список документов, которые можно выбирать - котороче типа вьюхи с чекбоксами, по клику на который у меня потом на ява скрипте все в исходный документ подставится.

Вся эта схема прекрасно работает в случае - если мне в эту новооткрываемую форму не надо передавать в качестве параметра Headtype, а вот как передать этот параметр - неведомо.
Стандартный механизм наследования значений при создании новой формы со старого документа - мне не удалось заставить работать. А на вебе я вообще впервые села программировать для домино, может вообще зря огород горожу, можно как-то проще сделать....

Вобщем при открытии новой формы мне в нее надо параметр передать и чтобы в WebQueryOpen он был доступен - как это сделать - кто знает?
 
G

Gogan.exe

"...справился. Не без твоей помощи. Еще раз спасибо..." я сказал НЕ без твоей помощи. Ты направила меня в правильное русло.
Трудно правильно поставить вопрос, когда вообще ничего не получается и ничего не понимаю :)
просто я по несколько раз просматривал предоставленный код, пока понял что к чему.
 
V

Veselinka

Gogan.exe
извини - наверное у меня глаза косо смотрят сегодня - я прочитала Не как Но ;)) Извини еще раз пожалуйста
 
C

Chernom0r

Здравствуйте.
Мне нужно агентом на Lotus Script выполнить определенные действия с документами в базе, но предварительно я должен проверить наличие Embedded Objects, и если они отсутствуют просто удалить документ из базы.
......
If DocHasEmbedded = False Then
' Здесь я удаляю документ
End Sub
Else
' Продолжаем выполнять скрипт
.......

End If
End Sub

Вопрос:
как мне произвести удаление документа из базы скриптом, который выполняется автоматом на сервере?

Заранее -- спасибо
 
N

nor

Veselinka
Привет.
"Вобщем при открытии новой формы мне в нее надо параметр передать и чтобы в WebQueryOpen он был доступен - как это сделать - кто знает? "

Аналалогичную процедуру наследования (передачи) параметра в новый создаваемый документ, и чтоб этот параметр был доступен в WebQueryOpen этого нового документа, я делал через создание (с последующим удалением) темпового документа. В темповый документ я записывал параметр и присваивал ему уникальный индентификатор. Затем создавал новый документ по кнопке из генерального документа и в новом документе в событии WebQueryOpen я находил темповый документ, который был создан в бд пару сек. назад, переписывал в новый документ параметры из темпового, а темповый удалял. Надеюсь я ясно выражаюсь... Проблем со скриптом из-за перезагруженности бд или непроизводительности сервера и т.д. я не испытывал. Все прекрасно работает. Если что-то не понятно, я тут напишу тебе код...
 
N

nor

Chernom0r
"Вопрос:
как мне произвести удаление документа из базы скриптом, который выполняется автоматом на сервере?"
Ответ:

Код:
Call notesDocument.Remove(True)
 
V

Veselinka

Nor. спасибо - идея - отличная - ей и воспользуюсь в следующий раз, сейчас решила эту проблему так:
1. Отказалась от формы и вызываю агента, который эту форму заполнял
2. Агенту передаю строку вида Имя=Значение
3. у session.documentContext в агенте в поле QUERY_STRING_DECODED - мои переданные параметры, которые я разбираю.

Вобщем в таком вот виде решила. Хотя этот метод не всегда проканает, а твой - передачи параметров через темповый документ - в куче ситуаций востребован. Рулез.

Я видишь - впервые засела под веб девелопить - поэтому не все методики знакомы - на пустом месте иногда спотыкаюсь.
 
C

Chernom0r

Здравствуйте.
Кто-нибудь из Вас сталкивался с программой mNotes? (Mnotes Cadenza. )
Это прога, позволяющая синхронизить PDA (Pocket PC/Palm OS) и Lotus Notes и вроде бы Domino Server. Т.е. как я понял можно прямо со своего девайса коннектиться к серверу и юзать Lotus.
У меня с ней некоторые траблы :blink:
 
G

Gogan.exe

Ни разу даже не слышал о такой проге, что не удивительно для чайника.
 
G

Guest

Народ помогите, есть б.д. мне надо нарисовать диаграммы классов, действия, прецендентов и предметной области, есть кто в этом хорошо разбирается? Может кто поможет
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!