Чтобы щелчком на разных полях основного списка, в полученном отчёте, открывался соответствующий дета
Здравствуйте!
У меня, скорее всего трудный вопрос, но должен быть способ это сделать.
Нужно выводить отчёт такого вида
. Группа ..... Кол-во ....... Кол-во
................... нарядов ..... нарядов
................... с монтёром .без монтёра
| Группа1 .. | ..... 10 ..... | ...... 4 ...... |
| Группа2 .. | ..... 42 ..... | ...... 29 .... |
| Группа2 .. | ..... 17 ..... | ...... 8 ...... |
и т.д.
потом, при нажатии на любой строке
на втором столбце должен выходить подробный список нарядов для этого столбца,
при щелчке на третьем столбце - для него.
Т.е., если в отчёте нажать на вторую строку 2-ой столбец - должен раскрыться список из 42-х нарядов, под этой строкой, потом при повторном щелчке - скрыться опять.
при щелчке на той же строке 3-ем столбце должен раскрыться список из 29-ти нарядов тоже так же.
Это похоже на опцию drill-down, но там список раскрывается щелчком по строке, а тут надо свой список для своего поля строки, когда на нём щёлкаешь.
Пожалуйста помогите ответить на хоть некоторые из этих вопросов:
1) Это вообще можно сделать?
2) Может именно это не сделаешь, но можно чем-то заменить похожим?
3) Хотя бы примерно где искать ответ?
4) или если кто-то делал подобное, пожалуйста объясните, может и не помните уже точно где что надо делать, но хоть примерно, может всё равно и по примерному описанию разберусь.
У меня, скорее всего трудный вопрос, но должен быть способ это сделать.
Нужно выводить отчёт такого вида
. Группа ..... Кол-во ....... Кол-во
................... нарядов ..... нарядов
................... с монтёром .без монтёра
| Группа1 .. | ..... 10 ..... | ...... 4 ...... |
| Группа2 .. | ..... 42 ..... | ...... 29 .... |
| Группа2 .. | ..... 17 ..... | ...... 8 ...... |
и т.д.
потом, при нажатии на любой строке
на втором столбце должен выходить подробный список нарядов для этого столбца,
при щелчке на третьем столбце - для него.
Т.е., если в отчёте нажать на вторую строку 2-ой столбец - должен раскрыться список из 42-х нарядов, под этой строкой, потом при повторном щелчке - скрыться опять.
при щелчке на той же строке 3-ем столбце должен раскрыться список из 29-ти нарядов тоже так же.
Это похоже на опцию drill-down, но там список раскрывается щелчком по строке, а тут надо свой список для своего поля строки, когда на нём щёлкаешь.
Пожалуйста помогите ответить на хоть некоторые из этих вопросов:
1) Это вообще можно сделать?
2) Может именно это не сделаешь, но можно чем-то заменить похожим?
3) Хотя бы примерно где искать ответ?
4) или если кто-то делал подобное, пожалуйста объясните, может и не помните уже точно где что надо делать, но хоть примерно, может всё равно и по примерному описанию разберусь.
Комментарии
Еще в демке есть пример обработчика OnPreviewClick.
да, наверно не выйдет вызвать перерисовку отчёта из того обработчика, как вы и написали. Или, как вы написали можно попробовать перехватить управление сразу перед перерисовкой отчёта, но если бы и получилось, не представляю что могу сделать дальше.
Всё-таки или это не сделаешь, или уж совсем слишком сложно, я немного только знаком с Delphi, и Fast-Report поддерживает, как понял, минимально необходимый набор возможностей Delphi, и не думается, чтобы получилось этим путём.
я пошёл другим.
Т.к. всего групп в отчёте планируется не много - всего 13, может будет 15, то сперва не делаю группировку, а
просто делаю столько простых запросов, сколько групп и данные о каждой вывожу в обычном отдельном бэнде MasterData (MasterData1 - одна группа, MasterData2 - другая) - группа здесь - не группировка в отчёте, а Группа1, Группа2 - как в моём примере выше.
потом, на место полей с количеством ставлю вызов суботчётов и там тоже будет суботчётов по два на каждой строке (группе), т.е. 26 суботчётов. И для каждого - свой запрос, берущий детальные данные по конкретной группе для своего поля (т.е. как у меня в примере, запрос выводит кол-во нарядов с монтёром для Группы2 - и только это и для второго поля в своём суботчёте будет выводиться кол-во нарядов без монтёра для Группы2, для других групп - свои суботчёты и запросы).
А в суботчётах делаю уже группировку с drill-down.
Сперва выводятся одни группы в виде строк, у каждой строки - два поля можно щёлкнуть. Каждое поле привязано к отдельному суботчёту, в этом поле выводится заголовок группы, которой можно сделать drill-down, т.о. этот drill-down получается отдельно для каждой строки,
а иначе, когда пытался делать тоже суботчётами, но двумя (а не 26-ю) (т.к. два поля в строке, но каждый суботчёт - для всех строк, то раскрывались сразу все группы при щелчке на любой), видимо таким способом отчёт считал все эти группы за одну и переубедить его никак мне не удалось).
Такой способ, громоздкий, но ничего не поделаешь.
Хотя если кто-то захочет поспорить, что ничего не поделаешь, то буду рад, вдруг он предложит способ лучше.