Checkedlistbox - каскадные фильтры

отредактировано 09:16 Раздел: FastReport .NET
Проблем с ним целая куча:

Проблема №1:
создаем 2 CheckedBox'а, 1 по 1 колонке, 2 по второй колонке
делаем 2 детальным от 1
короче по уму как это должно получится: мы выбираем 1 чекбоксе поля, после чего во 2 появляются уже те, которые соответствуют условию из 1
но так нефига не происходит, происходит следующее

выбираю 1 из элементов... ни чего не происходит, снимаю галочку, во 2 листбоксе появляется список (который должен был появится тогда, когда я нажал на галочку), снова ставлю галочку список во 2 исчезает как будто галочка снята...
короче список во 2 листбоксе обновляется не тогда когда галочка поставлена. а когда она снята и при этом когда её снимаем, он обновляется так, как будто галочка стоит

Проблема №2 когда мы делаем FilterOperation Equal, то как бы по логике мы выбираем в 1 списке, затем в другом... всё тут с логикой в норме
но когда мы использует Not Equal, то мы используем список "исключений", но во 2 окне отображаются не исключения, а то, что мы отключили. Проще говоря по логике, если мы выбираем что то в 1 окне, это должно исчезать во 2, а во втором должны быть все элементы если в 1 ни чего не выбрано...
вот такие пироги...

вот... даже не знаю какой это багрепорт по счету... )

Комментарии

  • отредактировано 09:16
    Здравствуйте,

    К сожалению, контролы, допускающие множественный выбор (CheckedListBox, DataSelector), не могут быть использованы в качестве главного контрола в каскадной фильтрации.
  • отредактировано 09:16
    зачем в них тогда поле detailcontol?
    фактически в этих контролах всё работает, но какие то проблемы в обработчиках событий выбору значений.. может вы все же гляните...? бог с ним, со 2 проблемой, меня больше 1 беспокоит ) она фактически работает, просто криво
  • отредактировано 09:16
    Проблема в том, что для фильтрации детального списка используется только одно значение из мастер-таблицы. Не уверен, что это удастся улучшить.
  • отредактировано 09:16
    SELECT * FROM <тбл> WHERE поле IN ("значения", "много значений").. нэ?
    можно еще тайбл объявить, если их ОЧЕНЬ ОЧЕНЬ много...

    очень очень охота :) :) :)
  • отредактировано 09:16
    sql тут не используется никак.
    Вроде поборол, будет доступно в следующем билде (сегодня ночью).
  • отредактировано June 2010
    Пока всё куль ) так как и должно быть! Спасибо вам большое, как всегда оперативно.

    но есть пару но :) )

    отсутствие метода a.SetItemChecked(index, state) мне кажется странным )) (в результате чего со списком нельзя ни чего сделать)
    просто в чем фокус, если к примеру я хочу, чтобы все значения можно было выделить, а потом уже снимать нужные, то так не получается....
    нет события LoadData или что то подобное которое бы срабатывало при загрузке данных (через FillData) как я понимаю)

    а так всё супер! спасибо еще раз!
  • отредактировано 09:16
    Если не хватает какого-нибудь метода или св-ва, можно обратиться к контролу напрямую (http://fast-report.com/documentation/UserManFrNET-ru/dialogaccessingcontrol.htm):
    CheckedListBox1.CheckedListBox.SetItemChecked(...)

    События типа LoadData нет (пока), сделаю в одном из следующих билдов.
  • отредактировано 09:16
    ммм.... божественно :)

    пол чеклистбоккс блин я даже не подумал :) ... вот балда! спасибо огромное
  • отредактировано 09:16
    AlexTZ написал: »
    События типа LoadData нет (пока), сделаю в одном из следующих билдов.
    лалала )
  • отредактировано 09:16
    Это - в следующем билде. Событие будет называться DataLoaded.
  • SysolyatinSNSysolyatinSN Екатеринбург
    отредактировано 09:16
    А есть ли возможность добавить в следующих билдах, чтоб в настройках групповых бэндов была возможность включения или отключения сворачивания группы. Очень было бы полезно для отчетов с большой выборкой. Пока эта реализация делается с помощью флажка и скрипта на него.
  • отредактировано 09:16
    Это в планах на одну из следующих версий (1.5 или 1.6).
  • SysolyatinSNSysolyatinSN Екатеринбург
    отредактировано 09:16
    AlexTZ написал: »
    Это в планах на одну из следующих версий (1.5 или 1.6).
    :) Уррааа, вы молодцы!!!
  • отредактировано 09:16
    AlexTZ не хотел плодить новые темы, это не баг, но эта "фича" меня немного бесит
    почему нельзя обращаться из программы к параметру отчёта по имени?

    Report.Parameters(0).Expression

    нельзя ли его перегрузить не только на index параметра, но и на его имя, иначе если параметров много приходится смотреть какой у какого индекс, это крайне не удобно...
    или я делаю как то не правильно?
  • отредактировано 09:16
    Есть методы
    Report.GetParameter("p1")
    Report.GetParameterValue("p1")

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.