Студия/OnStatusChange

From SunFlurry wiki
Revision as of 12:40, 17 August 2020 by Admin (talk | contribs) (Created page with "{{infobox function |name=OnStatusChange |element=Форма, подчиненные формы |caption=Визуальные события |eventtype=Прерывающее |...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  OnStatusChange (Визуальные события)
Применимость:Форма, подчиненные формы
Тип события:Прерывающее
Статус разработки: Реализована

Событие, вызываемое при возникновении локальных изменений на форме или изменении объекта, редактируемого с помощью формы. Событие может быть использовано для обновления заголовка формы или каких-либо индикаторов на ней. Событие возникает в случаях:

  • Произошло изменение в редактируемом объекте базе данных (изменился реквизит и т.п.).
  • Редактируемый объект базы данных был сохранен, удален, обработан или была отменена его обработка.
  • На форме установлен или снят флаг IsChanged.
  • Редактируемый объект базы данных был восстановлен из буфера с помощью функции RestoreObjectFromBuffer.
  • Произошла загрузка периодических реквизитов за новую дату для редактируемого объекта базы данных.
  • Для формы изменился флаг ContainsPeriodicalValues.
  • Вызов был инициирован программно (к примеру, с помощью InvokeEvent или CallOnStatusChange).

Примеры

//Пример события OnStatusChange формы редактирования документа аДок
If isEmpty(аДок) Then
  Exit;
EndIf;

cl:=_CLR_WINDOWTEXT;
If аДок.Status()<0 Then
  cl:=_CLR_BLUE;
  Form.cStatus:=" новый документ (*)";
ElseIf аДок.Status()=0 Then
  If (аДок.Selected()>1)or(Form.IsChanged()) Then
    Form.cStatus:=" (*)";
  Else
    Form.cStatus:="";
  EndIf;
ElseIf аДок.Status()=1 Then
  cl:=_CLR_BLACK;
  If (аДок.Selected()>1)or(Form.IsChanged()) Then
    Form.cStatus:=" удален (*)";
  Else
    Form.cStatus:=" удален";
  EndIf;
ElseIf аДок.Status()>1 Then
  cl:=_CLR_GREEN;
  If (аДок.Selected()>1)or(Form.IsChanged()) Then
    Form.cStatus:=" обработан (*)";
  Else
    Form.cStatus:=" обработан";
  EndIf;
EndIf;

Form.bPanelOK.isDisabled:=флТолькоПросмотр or (not Form.IsChanged());
Form.bPanelSave.isDisabled:=флТолькоПросмотр or (not Form.IsChanged());
Form.cDocNum.Value:=аДок.DocNum;
Form.cDocDate.Value:=аДок.DocDate;

If Form.cStatus.FontColor<>cl Then
  Form.cStatus.FontColor:=cl;
EndIf;

Стр:=""+аДок.Автор;
If Стр="" Then
  Стр:=""+глПользователь;
EndIf;
Стр:=""+аДок.КодОперации;
If Стр="" Then
  Стр:=аДок.DBName();
EndIf;
Form.cDocName.Caption:=Стр;