Welcome, Guest. Please login or register.
Did you miss your activation email?

Author Topic: Фильтрация записей из DataSource  (Read 2871 times)

aarekuha

  • Newbie
  • *
  • Posts: 16
    • View Profile
Фильтрация записей из DataSource
« on: February 19, 2019, 09:04:48 am »
Доброго времени суток!

Из Qt передаю QAbstractItemModel в dataManager. Все переданные записи не нужны. Возможно ли их фильтровать в самом LimeReport?

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Фильтрация записей из DataSource
« Reply #1 on: February 19, 2019, 10:52:21 am »
На данный момент, фильтровать внешние данные limereport не умеет. Точнее может в случае подчиненного источника данных, но главный источник данных всё же должен быть заранее подготовлен вашим приложением.

aarekuha

  • Newbie
  • *
  • Posts: 16
    • View Profile
Re: Фильтрация записей из DataSource
« Reply #2 on: February 19, 2019, 11:53:09 am »
Спасибо большое! Вопрос закрыт.

Arin Alex

  • Developer
  • Administrator
  • Hero Member
  • *****
  • Posts: 1005
    • View Profile
Re: Фильтрация записей из DataSource
« Reply #3 on: February 19, 2019, 01:30:59 pm »
Если вопрос в фильтрации выделенных строк в TableView :) то вот простое решение
Code: [Select]
class SelectionProxy: public QSortFilterProxyModel{
public:
    SelectionProxy(QItemSelectionModel* selectionModel, QObject* parent = 0)
        :QSortFilterProxyModel(parent), m_selectionModel(selectionModel) {
        setSourceModel(selectionModel->model());
    }
    // QSortFilterProxyModel interface
protected:
    bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const{
        QModelIndex index = sourceModel()->index(sourceRow, 0, sourceParent);
        return m_selectionModel->isSelected(index);   
    }
private:
    QItemSelectionModel* m_selectionModel;
};
......
report.dataManager()->addModel("test",new SelectionProxy(ui->tableWidget->selectionModel()),true);