@isnewdoc Или @isdocbeingsaved?

Тема в разделе "Lotus - Программирование", создана пользователем Eugen, 22 окт 2012.

  1. Eugen

    Eugen Well-Known Member

    Регистрация:
    22 мар 2012
    Сообщения:
    172
    Симпатии:
    0
    Добрый день.
    Подскажите пожалуйста:
    есть форма, на которой висят Shared Action`ы на @formulas. Мне нужно сделать так, чтобы если документ новый(т.е. ни разу не сохранялся) одна из кнопок скрывалась. @IsNewDoc и @IsDocBeingSaved, если я правильно понял из хелпа в формулах видимости не работают. Может есть что то похожее?

    Заранее спасибо.
    PS:Версия 8.5.2.
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    @IsNewDoc - прекрасно работает в скрытии кнопок, но на форме.
    Если action будет во вьюхе, то не будет работать
     
  3. Eugen

    Eugen Well-Known Member

    Регистрация:
    22 мар 2012
    Сообщения:
    172
    Симпатии:
    0
    Action на форме. Настройки видимости:
    [​IMG]

    Добавлено: Причем если на форме сделать тестовую кнопку с формулой типа @If(@IsNewDoc;@Prompt([Ok];"";"True");@Prompt([Ok];"";"False")), то возвращаются правильные значения, а если этот IsNewDoc в формуле вилимости, то кнопка не хочет скрываться.
     
  4. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    ну, так кнопка будет скрываться, если документ новый И поле Deleted="Y". Что написали, то и получили :( Вам надо ИЛИ (|), чтобы кнопка скрывалась, либо когда новый, либо когда поле Deleted="Y"
     
  5. Eugen

    Eugen Well-Known Member

    Регистрация:
    22 мар 2012
    Сообщения:
    172
    Симпатии:
    0
    Да, точно... понедельник - день тяжелый. Извиняюсь за тупняк) Спасибо за разъяснение.

    Добавлено: а в чем, кстати, разница между @IsNewDoc и @IsDocBeingSaved?
     
  6. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Срабатывает при сохранении документа.
     
  7. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    В названии написано - ЕслиДокБылСохранён, но я её не пользуюсь, т.к. у меня всегда возвращает 0, хоть новый док (создан с помощью Compose) сохраняешь, хоть нет.
     
  8. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    @IsDocBeingSaved возвращает 1 только в момент сохранения. Не до и не после. Полезно использовать в Input Validation:
    Код (Text):
    @If(@IsDocBeingSaved & @IsNull(@ThisValue); @Failure("Значение не задано"); @Success)
     
  9. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    Ясно. У мене всё на LS.
     
  10. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    самое точное состояние того, что документ (через какую бы ж... он не открывался) новый дает @noteid..
     
  11. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    :)
    помню этот прикол
    создаём скриптом новый док и делаем ws.edit(..... ни одна ваша формула уже не отработает у него и унид почти есть и он уже не новый ;)
     
  12. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.051
    Симпатии:
    146
    если не сохранять, вот это сработает :)
    Код (LotusScript):
        Dim macro As Variant
    macro = Evaluate({@NoteID},CurrDoc)
    If macro(0) = {NT00000000} Then
    Msgbox "Требуется сохранить документ.",48,CurrDoc.ParentDatabase.Title
    Goto endh
    End If
     
  13. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    вот именно, у документа даже noteid будет, хотя его и быть не должно до сохранения, и только приведенный код подобный тому, что в предыдущем посте корректно выдаст что @noteid у документа пустой, т.е.nt c нулями..
     
  14. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    побочный эффект (проверка валидности NoteID)
    Код (LotusScript):
    Dim NDC As NotesDocumentCollection
    Set NDC=db.CreateDocumentCollection
    NDC.AddDocument(doc)'здесь вывалит соответ. эксепшн
    ...
    или в одну строку (и без объяв) Call db.CreateDocumentCollection.AddDocument(doc)
     
Загрузка...

Поделиться этой страницей