Form.RereadValue

From SunFlurry wiki
Revision as of 15:16, 17 July 2020 by Admin (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  RereadValue (Работа со фильтрами таблиц)
Объект:Форма
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Визуальность:Да

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

Синтаксис

Form.RereadValue(<Новое значение редактирования>)

Аргументы

  • <Новое значение редактирования> - (необязательный аргумент) Если аргумент указан, задает значение, которое нужно передать активному в данный момент редактору ячейки, иначе передаваемое редактору значение берется из самой таблицы. Значение может быть любого типа, принимаются не только объекты базы данных.

Примеры

//Фрагмент события OnAttachedButtons
...
ElseIf Index=_AB_CHOOSE Then  
  Result:=1;
  If Form.MainTab.SelectedColumnName=uppercase("Партия") Then
    Result:=0;
    If isEmpty(MainTab.Номенклатура) Then
      Exit;
    EndIf;
    //Осуществить выбор партии с помощью особой формы выбора, отличающейся от формы по умолчанию
    Сп:=List.Create();
    Сп.SetByName("Номенклатура",MainTab.Номенклатура);
    Сп.SetByName("Склад",aEl.Склад);
    Сп.SetByName("Партия",MainTab.Партия);
    LoadModule(10,"Ref.Партии",Сп,0,"Module","ВыборПартии");
    Try
      //Форма выбора должна передать выбранную пользователем партию в ответе
      аПартия:=Сп.GetByName("Ответ");
      If IsEmpty(аПартия) Then
        Exit;
      EndIf;
      //Обновить редактор ячейки выбранной партией, как будто она была выбрана обычным способом
      //  если пользователь, к примеру, нажмет ESC, редактор закроется и в ячейке останется значение до выбора
      Form.MainTab.RereadValue(аПартия);
    Finally
      Form.MainTab.SetFocus();
    EndTry;  
  EndIf;
ElseIf Index=_AB_SELECT Then  
...