22.08.2006, 13:29 | #1 |
Участник
|
Разработка отчета с использованием 2-х DataSet
Добрый день. Суть проблемы:
Необходимо разработать отчет, который бы выводил некоторые данные по счету. Идея 2-х наборов данных заключается в том, что один запрашивает ID счета и передает в качестве параметра во второй набор. DataSet_2 SELECT TOP 1 invoiceid FROM FilteredInvoice CRMAF_FilteredInvoice DataSet_1 (к примеру так) SELECT CRMAF_FilteredInvoice.totalamount WHERE (CRMAF_FilteredInvoice.invoiceid = @CRM_InvoiceId) т.о. второй набор данных делает выборку счета по его id. самое интересное, что в Visual Studio данный отчет отрабатывается нормально. когда же я его размещаю на CRM он ничего не выводит. сделал для проверки отображение параметра (invoiceid) - отображается. но по нему не отрабатывается выборка для DataSet_1 (количество записей 0). никак не могу понять в чем проблема! надеюсь, что объяснил доступно |
|
22.08.2006, 13:55 | #2 |
Участник
|
Поправка:
отчет не отрабатывается из карточки счета. такое ощущение, что параметр просто не передается в запрос. но, блин, он ведь выводится в отчете (точнее только он), а значит он есть |
|
23.08.2006, 11:38 | #3 |
Участник
|
Не совсем понятно зачем всё-таки использовать два dataset. Может быть можно обойтись объединениями или подзапросами?
|
|
23.08.2006, 11:51 | #4 |
Участник
|
Например вот так:
SELECT * FROM AccountBase WHERE (AccountId IN (SELECT accountid FROM accountbase accountbase1 and accountname like '%вова%')) |
|
24.08.2006, 10:18 | #5 |
Участник
|
Цитата:
Сообщение от Кириллов Борис
Не совсем понятно зачем всё-таки использовать два dataset. Может быть можно обойтись объединениями или подзапросами?
http://axforum.info/forums/showthread.php?t=13795 поэтому решил попробовать эксперимент с параметрами. |
|
24.08.2006, 14:57 | #6 |
Участник
|
Попробуйте проверить выборку данных в самом SRS-се через веб. Мож всё-таки че-нить не так с выборками данных.
|
|
21.09.2006, 08:51 | #7 |
Участник
|
насколько я понял DataSet2 возвращает в любом случае первую запись из таблицы FilteredInvoice, фильтр CRMAF_FilteredInvoice почему-то игнорируется.
в DataSet1 он отрабатывается. таким образом invoiceid у них разные id и условие WHERE (CRMAF_FilteredInvoice.invoiceid = @CRM_InvoiceId) не срабатывает. решение: я использовал отчет, который получает invoiceid (DataSet2) и передает его в подотчет (DataSet1) в качестве параметра. тогда все работает. |
|