Конференция "Прочее" » Отфильтрованный cxGridDBTableView
 
  • миникодер (10.12.08 12:37) [0]
    Кто знает, как получить доступ к отфильтрованным данным в гриде.
    Сам грид привязан к датасету через свойство DataController.Datasource
    В отчете нужно отображать только те данные, которые отфильтрованы в гриде. Кто знает, как к ним получить доступ??
    Заранее благодарен.
  • Jeer © (10.12.08 13:08) [1]
    В каком еще отчете, где здесь отчет ?
    А данные берутся не из грида, а из датасета, там же и фильтруют обычно.
  • keymaster © (10.12.08 13:24) [2]
    В cxGrid есть встроенный экспорт данных.
    Экспортирует данные отфильтрованные как надо.
    Смотри модуль cxExportGrid4Link.pas
  • Илья Корстин © (10.12.08 13:28) [3]
    Работайте с View.DataController.FilteredRecordIndex и View.DataController.Filter
  • миникодер (10.12.08 14:28) [4]

    > В каком еще отчете, где здесь отчет ?

    В frxReport подключается датасет, который связан с гридом.
    В гриде отображаются отфильтрованные данные, а в датасете полностью все строки. Мне нужно только отфильтрованные строки.
  • миникодер (10.12.08 14:44) [5]

    > Работайте с View.DataController.FilteredRecordIndex и View.
    > DataController.Filter

    Вы бы не могли привести пример, каким образом получить отфильтрованные данные?
  • Jeer © (10.12.08 15:03) [6]

    > В frxReport подключается датасет,


    Вот именно, он работает с датасетом, а не с отображаемыми данными.
    Разработчики репорта должны были предусмотреть его работу с любыми навороченными гридами ?
    Конечно же нет - они предусмотрели его работу со стандартными источниками данных.
  • Илья Корстин © (10.12.08 15:11) [7]

    > Вы бы не могли привести пример, каким образом получить отфильтрованные
    > данные?

    Да как хотите. Например, вот так:
     s := '';
     for i := 0 to View.DataController.FilteredRecordCount - 1 do
       s := s + View.DataController.Values[View.DataController.FilteredRecordIndex[i], ViewID.Index] + ',';
     SetLength(s, Length(s) - 1);


    В итоге переменная s будет содержаться перечисления поля ID ("1, 3, 7, 12, 33")

    Можете получить значение фильтра конкретного столбца:

    vValue := View.DataController.Filter.FindItemByItemLink(Viewf1).Value;


    и задать его в Filter / FilterSQL.

    Решений много. Ваша задача: задать условия отбора/фильтрации в датасете, аналогичные гридовским
  • YurikGL © (10.12.08 22:04) [8]
    ExportGridToExcel экспортирует из cxGrid с учетом текущего фильтра.
 
Конференция "Прочее" » Отфильтрованный cxGridDBTableView
Есть новые Нет новых   [134447   +40][b:0][p:0.001]