проверка на существование адресата перед отправкой письма

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

  1. oxystile

    oxystile Гость

    поле типа names, возможно внутри несколько значений.
    как сделать проверку на наличие введеных адресатов в АК, т.к. если адресат неверен, то на Call memo.Send(False) будет ошибка.

    @NameLookup на input validation&translation не подходит, т.к. отправка memo.Send(False) на событии change поля, и похоже, что change срабатывает раньше чем validation&translation
     
  2. Constantin A Chervonenko

    Constantin A Chervonenko Well-Known Member

    Регистрация:
    30 май 2006
    Сообщения:
    1.288
    Симпатии:
    0
    Это из той-же "оперы", что и "ручной" doc.Save из потрохов формы. Потом можно долго удивляться, почему значения полей кривые.

    Может, в консерватории (ТЗ) что-то поправить?
    В крайнем случае - сами вызывайте @NameLookUp перед отсылкой
     
  3. Sandr

    Sandr Гость

    э.. Ачто такое "на событии change поля" ?
     
  4. K-Fire

    K-Fire Гость

    Можно вставить On Error 4000 Resume Next

    Тогда эта ошибка вылезать не будет
     
  5. Гость

    Берется поле с именами, из него выбирается первое (2,3,4...) имя, после чего надо обратиться к адресной книге и проверить: есть ли там такой пользователь или нет. Если пользователь найден, то отправить письмо, а если ен найден перейти к следующему или вывести сообщение что такого то пользователя нет в АК...
     
  6. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: K-Fire
    Так и верным адресатам письмо не уйдет?
     
  7. oxystile

    oxystile Гость

    в change при выполнении определенных условий выполняется отправка письма на адресата, но даже если эта отправка выпоняется по соб. QuerySave, то все равно сперва выскочит ошибка на строке memo.Send а только пототом сработает проверка @NameLookup на input validation&translation.
    Если бы было что-нибудь типа Evaluate(@NameLookup ), которое можно было бы добавлять на любых событиях и т.о. выполнялась бы последовательность "проверка, потом отправка"

    <<<<<Берется поле с именами, из него выбирается первое (2,3,4...) имя, после чего надо обратиться к адресной книге и проверить: есть ли там такой пользователь или нет. Если пользователь найден, то отправить письмо, а если ен найден перейти к следующему или вывести сообщение что такого то пользователя нет в АК...>>>>
    этот вариант бы меня устроил, но не знаю как эту проверку написать, ести ли на скрипте спец. функции?
     
  8. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    <!--QuoteBegin-oxystile+10:10:2007, 11:07 -->
    <span class="vbquote">(oxystile @ 10:10:2007, 11:07 )</span><!--QuoteEBegin-->Если бы было что-нибудь типа Evaluate(@NameLookup )[/quote]
    В смысле? :)
    Зачем что-нибудь, если есть Evaluate(@NameLookup )?
     
  9. oxystile

    oxystile Гость

    а как павильно записать на Evaluate:
    tst = Evaluate(@NameLookup([ForceUpdate] : [Exhaustive]; Nme; Fld)) -потому что здесь ошибки
     
  10. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: oxystile
    Сделай сначала в CFD-поле. Потом в Evaluate вставишь.
    У тебя нету кавычек. Должно быть так - tst = Evaluate({выражение}, doc)
    Также используй @Transform, чтобы в @NameLookup передавать по одному адресату, а не все сразу - @Transform(список; "x"; @NameLookup(...; x; ...))


    Если у тебя есть проверка в Input Validation, то просто вставь формулу в Evaluate.
     
  11. oxystile

    oxystile Гость

    я так делаю: Forall v In doc.ContrName
    Nme =v
    Fld="FullName"
    tst = Evaluate({@NameLookup([ForceUpdate] : [Exhaustive]; Nme; Fld)},doc) формула на @ работает, здесь же tst возвращает ""
     
  12. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Надо так:
    tst = Evaluate({@NameLookup([ForceUpdate] : [Exhaustive]; "} + Nme + {"; "} + Fld + {")}, doc)

    А проще так (вместо всего):
    tst = Evaluate({@Trim(@Transform(ContrName; "x"; @NameLookup([ForceUpdate] : [Exhaustive]; x; "FullName")))}, doc)
     
  13. oxystile

    oxystile Гость

    СПАСИБО!!!
     
  14. oxystile

    oxystile Гость

    во время работы появилась трабла, кот. не предусмотрела заранее, а именно тот случай, когда в поле задают группу, @NameLookup проверяет имя, а в случае группы возрашает "" , посоветуйте. что делать?
     
  15. Medevic

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

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Для: oxystile
    Возвращай "Form".
     
  16. oxystile

    oxystile Гость

    спасибо, то что надо!
     
Загрузка...

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