Связь двух источников данных по полю-битовой маске в отчете
CouRage
Санкт-Петербург
Есть две таблицы, одна справочник (TABLE_GROUPS), другая - данные (TABLE_DATA). Обе содержат поле GROUP_MASK (Integer).
В TABLE_GROUPS поле GROUP_MASK содержит уникальные битовые комбинации, например:
В TABLE_DATA поле GROUP_MASK содержит битовые комбинации значений из TABLE_GROUPS:
В отчете необходимо напечатать эти две таблицы в MasterDetail-виде, установив связь по полю GROUP_MASK по битовой операции AND. Однако FR позволяет устанaвливать связь только по операции "=". Значит вариант со связью отпадает.
Пробовал делать так: делал два бэнда, Master и Detail. Master привязывал к TABLE_GROUPS, а Detail к TABLE_DATA. В Detail-бэнде ставил фильтр ([TABLE_GROUPS.GROUP_MASK] & [TABLE_DATA.GROUP_MASK]) != 0. Однако, почему-то печатается только одна запись из TABLE_DATA для первой записи TABLE_GROUPS.
В TABLE_GROUPS поле GROUP_MASK содержит уникальные битовые комбинации, например:
[TABLE_GROUPS]
GROUP_MASK
1
2
4
8
В TABLE_DATA поле GROUP_MASK содержит битовые комбинации значений из TABLE_GROUPS:
[TABLE_DATA]
GROUP_MASK
2 - (2)
3 - (1+2)
5 - (1+4)
7 - (1+2+4)
В отчете необходимо напечатать эти две таблицы в MasterDetail-виде, установив связь по полю GROUP_MASK по битовой операции AND. Однако FR позволяет устанaвливать связь только по операции "=". Значит вариант со связью отпадает.
Пробовал делать так: делал два бэнда, Master и Detail. Master привязывал к TABLE_GROUPS, а Detail к TABLE_DATA. В Detail-бэнде ставил фильтр ([TABLE_GROUPS.GROUP_MASK] & [TABLE_DATA.GROUP_MASK]) != 0. Однако, почему-то печатается только одна запись из TABLE_DATA для первой записи TABLE_GROUPS.
Комментарии
Выслал пример на <tz@fast-report.com>. Там в Detail-бэнде стоит фильтр, который имитирует связь.