Процедура со значениями по-умолчанию

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

  1. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    Всем прив.. ну вот собственно сабж))
    Возможно ли в лотусе для LS создавать процедуры функции) в библе или агентах с указанными для некоторых передаваемых параметров значение по-молчанию??))
     
  2. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    @swyatogor, ээээ.... а пример из другого языка можно?)
     
  3. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    @savl, Да легко))
    Код (Text):
    CREATE procedure [dbo].[TaskConfirmation](@TaskID binary(16), @TaskType binary(4), @TaskNum numeric(3, 0), @UserAddr varchar(100), @Answer numeric(1, 0) = 0, @Comment nvarchar(500) = '', @Date datetime = 0)
    это из sql
    Код (LotusScript):
    Sub TestSub(P As String = "Default")
        Print P
    End Sub
    из Basic
    Код (C++):
    int product(double x, double y,
    double z = 1, double t = 1)
    {
    return x*y*z*t;
    }
    C++
     
  4. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    @swyatogor, прикольно, а зачем так?
    понимю гибкость и тд...
    НО если на конкретном примере, то:
    Код (LotusScript):
    Sub TestSub(P As String)
    if len(p) = 0 then p = "Default"
    Print P
    End Sub
    Другой вариант: передавать массив значений
     
  5. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    @savl, не.. цель в другом))
    Есть процедура - работает давно... вызывается из кучи мест - процедура по отправке сообщения определенной формы..
    Нужно в эту процедуру добавить параметр для небольшого изменения в отображении при необходимости.. так вот чтобы всё сразу не переписывать.. не искать все точки вызова процедуры хотел добавить параметр по-умолчанию.. а уже потом методично и постепенно проходить по всем дизайн-элементам и дописывать (если нужно) этот параметр в вызов..
     
  6. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    меняем тип параметра на Variant...
    ну а дальше переписываем анализ параметра на DataType и делаем ветвление по смыслу
    если IsEmpty = ставим дефолт ну и т.п.
     
  7. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    @lmike, предлагаешь присоседиться к уже существующему параметру??.. вторым номером передавать?.. хм..
    а не получится что тогда во всех вызовах параметр нуно будет передавать как вариант??..
     
  8. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
    не должно и не пресуседить, а заменить тип существующего
     
  9. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    @swyatogor,
    @lmike,
    я так понял предложение

    Было:
    Код (LotusScript):
    Sub Print(msgText as String)
     
    msgbox msgtext
     
    end sub
    Стало:
    Код (LotusScript):
    Sub Print(msgText as Variant)
     
    select case Typename(msgText)
     
    case "NOTESDOCUMENT":
     
     msgbox msgText.GetITemvalue("Text")(0)
     
    case "STRING":
     
    msgbox msgText
     
    case "STRING()":
     
    msgbox implode(msgText, chr(10))
     
    case Else:
     
       End Select
    end Sub
    ну и так далее
     
  10. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.081
    Симпатии:
    300
Загрузка...

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