1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

различия между Function и Static Function

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

  1. Реник

    Реник Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    Добрый день.

    Наткнулся вот на такую неприятность.

    В библиотеке есть функция get_doc, возвращающая NotesDocument

    В коде я пишу:

    Dim fl_doc as Notesdocument

    Set fl_doc=get_doc

    Если при инициализации функции написано: Function get_doc , или Public Function get_doc , то get_doc возвращает значение, однако fl_doc=Nothing

    Если же написано Static Function get_doc ,то fl_doc получает корректные значения?

    Никто не может подсказать почему так происходит?
     
  2. oshmianski

    oshmianski Гость

    Репутация:
    0
    как получается документ в функции?

    возможно "родитель" этого документа создается и удаляется в этой функции.
     
  3. Реник

    Реник Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    function get_doc as notesdocument
    '''''

    Set tmp_doc=flow_view.GetDocumentByKey(flow_srch_key,True)
    Set get_workflow_doc=get_doc


    end function

    tmp_doc - не пустой
     
  4. nvyush

    nvyush Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Реник
    Статические функции сохраняют значения локальных переменных между вызовами, при выходе из нестатических функций локальные переменные утилизируются.
    Вы пытаетесь получить документ из локальной переменной представления, скорее всего выше по коду локальная переменная БД.
    Я обычно передаю БД в функцию в качестве параметра - работает железно.
     
  5. ToxaRat

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

    Репутация:
    0
    Регистрация:
    6 ноя 2007
    Сообщения:
    3.185
    Симпатии:
    22
    скорее всего инициализация базы происходит тожк внутри функции и эта переменная не глобальная, как только функция завершается указатель базы разрушается, а значит и указатель дока тоже, обьявите базу глобально и всё будет работать
     
  6. Реник

    Реник Well-Known Member

    Репутация:
    0
    Регистрация:
    8 авг 2009
    Сообщения:
    97
    Симпатии:
    0
    после того,как в йункцию стал передавать flow_view всё заработало и без static/
     
Загрузка...

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