Crystal Reports: Передача данных из основного отчёта в подчинённый
Он выдаёт нам такие данные:
10 Иван 12
10 Иван 7
15 Андрей 456
23 Николай 34
23 Николай 127
23 Николай 87
30 Михаил 6
30 Михаил 345
Подчинённый же запрос должен содержать первые 2 поля основного, но без повторений, т.е.
10 Иван
15 Андрей
23 Николай
30 Михаил
Как такое реализовать в Crystal Report 11?
Проблема в том, как передать в запрос подчинённому отчёту динамически сформированный для основного запроса диапазон id'шников "(10, 15, 23, 30)" :confused:
P.S. Избавляйся от вредной привычки использования * в SQL-запросах
..
Избавляйся от вредной привычки использования * в SQL-запросах
..
А что в этом вредного?
Или ты имеешь ввиду, что нужно писать:
..тогда возможно, хотя, если запрос простой, то 'SELECT *' подразумевает выбор всех полей из таблицы, указанной в секции FROM..
Что в этом такого?
Очень часто встречал повальное использование * в запросах. Например нужно человеку вытащить из таблицы с 30 полями значения 3-х, а он все равно пихает в запрос *.
Более того, даже если в момент написания запроса ты действительно будешь использовать значения всех столбцов, то позже таблица может меняться и ситуация вполне может прийти к той, которую я описал чуть выше.
Более того, даже если в момент написания запроса ты действительно будешь использовать значения всех столбцов, то позже таблица может меняться и ситуация вполне может прийти к той, которую я описал чуть выше.
Бред!!
Если тебе надо 'вытащить' все 30 полей из таблицы в 30 полей, то ты что будешь прописывать все 30 полей?:confused: :D А если по твоей логике таблица изменится, но тебе по прежнему нужны будут все поля.. Все 30 будешь переписывать заново:confused:
Если тебе из 30 полей нужно использовать 3, то и пиши так, чтобы запрос 'вытащил' только три поля!
Если человек, которому нужно 3 поля из одной таблицы в 30 полей, пишет 'SELECT * ..', то этот человек - идиот.. И ничего более!!
Спасибо, что предупредил. То, что последовало за этим - действительно бред. :)
Ты сказал, что использовать '*' в выражениях - вредная привычка, но так и не аргументировал свое высказывание!! Если то, что ты написал - это и есть твои аргументы, то это бред.
Я же не утверждаю свою провоту, просто хочу убедиться, что ты прав.
С твоей стороны же увидел только голословность..
P.S. Избавляйся от вредной привычки использования * в SQL-запросах
Вьюха v_ForReport содержит все записи, а в основной отчёт передаются только те, что перечисленны в списке "...where idTask in (10, 15, 23, 30)"
Если ваш запрос прописать для подчинённого отчёта он выдаст все записи, т.е. не только те, где idTask = 10, 15, 23 и 30
SELECT idTask, ClientName FROM v_ForReport WHERE idTask IN (10, 15, 23, 30) GROUP BY idTask
SELECT idTask, ClientName FROM v_ForReport WHERE idTask IN (10, 15, 23, 30) GROUP BY idTask
Похоже меня не поняли.
Список idTask'ов, которые передаются в Crystal Report для основного отчёта, формируется динамически. В основном отчёте находится подчинённый, вот ему и требуется как-то передать этот динамически сформированный список idTask'ов из основного отчёта.
Пока я нашёл только один выход: передавать из самой программы запрос и для подчинённого отчёта. Но хотелось бы узнать можно ли средствами самого Crystal'а передать этот список из основного в подчинённый :rolleyes:
Список idTask'ов, которые передаются в Crystal Report для основного отчёта, формируется динамически. В основном отчёте находится подчинённый, вот ему и требуется как-то передать этот динамически сформированный список idTask'ов из основного отчёта.
Пока я нашёл только один выход: передавать из самой программы запрос и для подчинённого отчёта. Но хотелось бы узнать можно ли средствами самого Crystal'а передать этот список из основного в подчинённый :rolleyes:
Думаю, что передача в подчиненный условия тоже - единственный вариант..
А вообще sample в студию!!
Трабла в том, что подчинённый отчёт не находится в группированной по idTask секции основного отчёта, а расположен так скать "с боку припёку". Суть в том чтоб в подчинённом отчёте тупо отобразить список всех заказов с уникальными idTask из основного :)
Короче, надо смотреть..
Что такое 'расположен так скать "с боку припёку"' сложно догадаться!!
Короче, надо смотреть..
Что такое 'расположен так скать "с боку припёку"' сложно догадаться!!
Вьюхи разные. А "с боку припёку" здесь означает, что SubReport расположен в секции Report Header основного отчёта :)