Jump to content

Ошибка при отображении столбцов с фильтрами в гриде


MSMK

Recommended Posts

Привет всем! Столкнулся с такой проблемой, после добавления фильтров на столбцы в гриде, падает ошибка

Uncaught TypeError: this.dom is null

Link to comment
Share on other sites

11 minutes ago, =GGG= said:

Uncaught TypeError: this.dom is null

Добрый день, 

11 minutes ago, =GGG= said:

после добавления фильтров на столбцы в гриде

Можете уточнить? 

Link to comment
Share on other sites

  • 3 months later...

Прикол в том, что я использую динамическое создание фильтров

вот код:

procedure FillFilterComboboxes(dbg: TUniDBGrid; ComboFilterKeyDown: TComboFilterKeyDown; ComboTriggerEvent: TComboTriggerEvent; ParentFrame: TUniFrame = nil);
Var
 aColumn: TUniDBGridColumn;
 aField: TField;
begin
  if not Assigned(dbg.HiddenPanel) then
  begin
    KvxMessageBox.LogErrorMessage(constErrNoParentPanel, nil, 'FillFilterComboboxes(), dbg.name=' + dbg.Name);
    exit;
  end;

  for var I := 0 to pred(dbg.Columns.Count) do
  begin

    aColumn := dbg.Columns[i];
    if aColumn.ActionColumn.Enabled then continue;

//    {$IFDEF DEBUG}
//      UniSession.Log(aColumn.FieldName);
//      UniSession.Log(aColumn.Field.FieldName);
//    {$ENDIF}

    aColumn.Sortable := true;
    aColumn.Filtering.Enabled := True;

    aField := dbg.DataSource.DataSet.FindField(aColumn.FieldName);// Column.Field не работает :(

    if not Assigned(aField) then
    begin
      KvxMessageBox.LogErrorMessage(constErrFieldNil + ', index = ' + i.ToString, nil, 'FillFilterComboboxes()');
      Continue;
    end;

    case aField.DataType of
     ftSmallint, ftInteger, ftWord, ftFloat, ftCurrency, ftSingle, ftLargeint, ftExtended,
     ftLongWord, ftShortint, ftAutoInc:
       aColumn.Filtering.Editor := CreateAndFillFilterTitleCombo(dbg.HiddenPanel, ComboFilterKeyDown, nil, TTitleFilter.tfIntCombo, ParentFrame);

     ftDate, ftTime, ftDateTime:
       aColumn.Filtering.Editor := CreateAndFillFilterTitleCombo(dbg.HiddenPanel, ComboFilterKeyDown, comboTriggerEvent, TTitleFilter.tfDateCombo, ParentFrame);

     ftBoolean:
       aColumn.Filtering.Editor := CreateAndFillFilterTitleCombo(dbg.HiddenPanel, ComboFilterKeyDown, nil, TTitleFilter.tfBoolCombo, ParentFrame);

     ftString, ftMemo, ftFmtMemo, ftFixedChar, ftWideString, ftFixedWideChar, ftWideMemo:
       aColumn.Filtering.Editor := CreateAndFillFilterTitleCombo(dbg.HiddenPanel, ComboFilterKeyDown, nil, TTitleFilter.tfTxtEdit, ParentFrame);// comboFilterKeyDown
    end;

    (aColumn.Filtering.Editor as TUniControl).Name := dbg.HiddenPanel.name + '_comboFilter' + aColumn.FieldName;
  end;// for
end;

 

Так вот, если я отключаю эту процедуру, то ошибок нет.

Прикол в том, что ошибки возникают не при создании сетки, не при уничтожении сетки или фрейма, а в самых непредсказуемых местах. Например, при переключении между вкладками uniPageControl. Ну т.е. когда фрейм/сетка получает или теряет фокус ввода.

Может кто подскажет, где и как выявить название компонентов, события и т.д.?

С чего начинать, как искать?

Screenshot_1.jpg

Link to comment
Share on other sites

  • 2 years later...
On 1/26/2022 at 4:15 PM, x11 said:

Может кто подскажет, где и как выявить название компонентов, события и т.д.?

С чего начинать, как искать?

 

😑

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...