OnRightClick

From SunFlurry wiki
Revision as of 13:03, 24 July 2020 by Admin (talk | contribs) (Возвращаемое значение)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  OnRightClick (События таблиц)
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Расположение:Любой глобальный модуль, текущий локальный модуль
Визуальность:Да

Функция вызывается для свободных или встроенных электронных таблиц (TABLE) при клике правой клавишей мыши по ячейке или объекту таблицы. Для встроенных таблиц будет вызван одноименный обработчик события, если задан, иначе данная функция. Событие может использоваться, к примеру, для вывода меню при клике правой клавишей мыши, и при этом необходимо будет подавить вывод стандартного меню.

Для дополнительной информации см. статьи Электронная таблица SFT и Редактор электронных таблиц.

Вызов функции происходит по следующей цепочке:

  1. Вызывается функция OnRightClick в локальном модуле формы, создавшей таблицу, если функция в нем задана. Если функция возвратит 0, цепочка завершена.
  2. Вызывается функция OnRightClick в одном из глобальных модулей, если функция задана в глобальном модуле. Если функция возвратит 0, цепочка завершена.
  3. Выводится меню правой клавиши мыши по умолчанию.

Синтаксис

OnRightClick(<Вызывающая таблица (TABLE)>):<Разрешить вывод стандартного меню правой клавиши мыши (INT)>

Аргументы

  • <Вызывающая таблица (TABLE)> - Таблица, для которой произошло событие.

Возвращаемое значение

Если функция возвратит 1, будет продолжена цепочка вызова или выведено стандартное меню при клике правой клавишей мыши, иначе вывод стандартного меню будет подавлен.

Примеры

Function OnRightClick(SourceTable)
  If SourceTable.SelectionMode=2 Then
    Exit;
  EndIf;

  //При выделении ячейки (или ячеек) найти значение выделенной ячейки
  Сп:=Т2.Area(SourceTable.CurCol,SourceTable.CurLine,SourceTable.CurCol,SourceTable.CurLine).Value;
  If TypeStr(Сп)<>"LIST" Then
    Exit;
  EndIf;
  //Получить документ из списка
  Док:=Сп.GetByName("Документ");
  
  //Запретить стандартное меню
  Result:=1;
  //Вывести меню
  aList:=List.Create();
  aList.Add(0,"Открыть форму документа");
  aList.Add(1,"Открыть в журнале");
  Зн:=0;
  Поз:=aList.Select(Зн,1);
  If Поз=0 Then
    Exit;
  EndIf;
  If Зн=0 Then
    OpenObject(Док,0,1);
  ElseIf Зн=1 Then
    LoadModule(1,"Jor.ОбщийЖурнал",Док);
  EndIf;
EndFunction