Изменить значение поля нескольких документов через @PickList

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 489
366
#23
о боже как сложно =)
Извините меня, я просто только только начинаю
у всех был такой период, но надо учитывать, что разработка - это целый пласт знаний, и программированием он не ограничивается
Нужно многое пытаться понять самостоятельно, смотреть примеры (в нотусевом хэлпе их много и они "по теме"), анализировать, гугл ваш друг надолго ;)
 

Kizarek86

Well-Known Member
Lotus team
20.07.2007
863
6
#24
и зачем тут Chr(10), не пойму как он работает и для чего он
Код:
If ( IsEmpty( picklist ) ) Then
        Exit Sub
    Else
        ForAll plist In picklist
            messagelist = messagelist & plist & Chr(10)
        End ForAll
        MessageBox messagelist
    End If
Просто перевод строки для наглядности дальнейшего вывода в MessageBox
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 489
366
#25
и зачем тут Chr(10), не пойму как он работает и для чего он
Код:
If ( IsEmpty( picklist ) ) Then
        Exit Sub
    Else
        ForAll plist In picklist
            messagelist = messagelist & plist & Chr(10)
        End ForAll
        MessageBox messagelist
    End If
это к моему посту выше...
как по вашему отображаются строки, в сообщениях, да и в прочих програмах?! ;)
Правильно - сплошняком, если нет спец символов, указывающих на необходимость форматирования
Минимальное форматирование плэйн текста - "новая строка" (пробелы я не беру в расчет ;) )
"новая строка" в разных системах (запомните - винда - не единственная система) "реализуется" по разному
Chr(10) - символ <LF> (формальное название - Line Feed)
в виндятке для реализации используют два символа <CR><LF> , первый - Carriage Return (Chr(13) в лотусскрипте)
подробнее
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться

в случае MsgBox реализован вариант принятый в *никсах (от слов unix, linux)
замечу - "переводы кареток" совершенно не воспроизодятся в Print (используемый как вывод в строку статуса)
еще, со спец-символами, можно столкнуться в NotesStream
 

PeNgViN213

Well-Known Member
01.07.2017
46
0
#26
это к моему посту выше...
как по вашему отображаются строки, в сообщениях, да и в прочих програмах?! ;)
Правильно - сплошняком, если нет спец символов, указывающих на необходимость форматирования
Минимальное форматирование плэйн текста - "новая строка" (пробелы я не беру в расчет ;) )
"новая строка" в разных системах (запомните - винда - не единственная система) "реализуется" по разному
Chr(10) - символ <LF> (формальное название - Line Feed)
в виндятке для реализации используют два символа <CR><LF> , первый - Carriage Return (Chr(13) в лотусскрипте)
подробнее
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться

в случае MsgBox реализован вариант принятый в *никсах (от слов unix, linux)
замечу - "переводы кареток" совершенно не воспроизодятся в Print (используемый как вывод в строку статуса)
еще, со спец-символами, можно столкнуться в NotesStream
Новый вопрос появился, не могу написать условие для проверки пустой ли "messagelist" c isempty не работает, как можно еще сделать?
Код:
If ( IsEmpty( picklist ) ) Then
        Exit Sub
    Else
        ForAll plist In picklist
            messagelist = messagelist & plist & Chr(10)
        End ForAll
        MessageBox messagelist
    End If
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 489
366
#27
Новый вопрос появился, не могу написать условие для проверки пустой ли "messagelist" c isempty не работает, как можно еще сделать?
а почитать в хэлпе девелопера?
The IsEmpty function returns TRUE (-1) if expr has the value EMPTY. This occurs only if expr is a Variant and has not been assigned a value.
если туда что-то "вошло" вариант будет проинициализирован (даже при пустом значении первого и единственного элемента) за искл.
This method returns a variant containing a string array if you click OK, or it returns EMPTY if you click Cancel.
есть еще FullTrim(plist) - удаляет пустые элементы и нек. пробелы (читайте хэлп)
 

alexas1

Well-Known Member
Lotus team
10.04.2014
706
242
#28
1 здесь:
if messagelist = "" then ...
или if messagelist <> "" then ...
2 про chr(10) - в данном случае и chr(13) тоже "переведёт строку" в msgbox
3 как работает ForALL:
ForAll plist In picklist - переводим влоб: ДляВсех plist в picklist
т.е. для каждого элемента списка (массива значений) picklist что то делаем...
здесь - просто "склеиваем" все элементы через новую строку
внутри цикла forall совсем не обязательно использовать именно элементы этого массива - просто будет выполняться "нечто" столько раз, сколько есть элементов массива
кста, тот же результат, как в примере, будет если выполнить msgbox join(picklist, chr(13) ) \так красивее, жэ)\
 

PeNgViN213

Well-Known Member
01.07.2017
46
0
#29
1
здесь:
if messagelist = "" then ...
или if messagelist <> "" then ...
2 про chr(10) - в данном случае и chr(13) тоже "переведёт строку" в msgbox
3 как работает ForALL:
ForAll plist In picklist - переводим влоб: ДляВсех plist в picklist
т.е. для каждого элемента списка (массива значений) picklist что то делаем...
здесь - просто "склеиваем" все элементы через новую строку
внутри цикла forall совсем не обязательно использовать именно элементы этого массива - просто будет выполняться "нечто" столько раз, сколько есть элементов массива
кста, тот же результат, как в примере, будет если выполнить msgbox join(picklist, chr(13) ) \так красивее, жэ)\
я Chr вообще убрал, мне просто нужно сделать так чтобы категории не могли выбрать, потому что во вьюшке отображаются комнаты по категориям
 

Constantin A Chervonenko

Well-Known Member
Lotus team
30.05.2006
1 333
4
#30
Добрый день еще раз! Я вот написал код, но он не работает. Я пытаюсь добиться чтобы через view я выбрал несколько документов и изменить поле "room". А значение для измены взять по формуле. В чем ошибка?

Код:
    ...
    result = Evaluate ({@PickList( [Custom] : [Single] ; "" ; "Справочник\\Помещения"; "Местонахождение"; "Выделите  помещение:"; 3)})
    doc.room = result
End Sub
ЕСЛИ выбрать надо НЕСКОЛЬКО значений, то почему опция Single?