2011-12-16 6 views
0

Я работаю с набором отчетов, которые были разработаны и преобразованы в Visual Studio 2008 BIDS.Центр отчетов BIDS Параметры отчета

У меня есть один отчет, который делает следующее: он не использует параметр @DistID в коде SQL. У меня есть настройка параметра DistID.

При просмотре отчета отчет будет загружаться нормально, когда пользователь вводит число в DistID поле параметра будет перезагрузить отчет с только что одним DistID

SELECT o.Orderid, 
     o.Distid, 
     it.invoicetypedesc, 
     SUM(ol.Volume * ol.Quantity) AS Volume, 
     SUM(ol.Amount) AS Amount, 
     SUM(retailPrice * quantity) AS Retail, 
     o.TaxAmt, 
     o.ShipAmt, 
     o.PostAmount, 
     o.Status, 
     w.WarehouseDesc 
FROM Orders o 
inner join Orderlines ol on o.orderid = ol.orderid 
Inner Join Warehouse w on o.warehouseid = w.warehouseid 
inner join invoicetype it on o.invoicetype = it.invoicetype 
WHERE o.OrderDate between @fromdate and 
          @todate + ' 11:59:59 PM' and 
     o.EnteredBy in (@EnteredBy) AND 
     o.InvoiceType IN (@InvoiceType) 
Group by o.OrderID, 
     o.DistID, 
     it.InvoiceTypedesc, 
     o.taxamt, 
     o.shipamt, 
     o.postamount, 
     o.status, 
     w.WarehouseDesc 

Есть другие PARAMATERS настройки @ fromDate @toDate и т.п, который тоже работает как раз отлично.

У меня есть другой отчет, где мне нужна такая же функциональность, за исключением DistID Мне нужен ItemId. Я установил параметр и ожидал, что он будет работать одинаково, но в отчете всегда будут загружаться все элементы, даже когда я ввожу номер позиции в текстовое поле ItemID.

select ol.itemid, 
     i.description, 
     it.invoicetypedesc, 
     sum(ol.quantity) as quantity, 
     sum(ol.amount) as amount, 
     ol.volume, 
     sum(ol.volume * ol.quantity) as totvolume, 
     o.warehouseid, 
     w.warehousedesc, 
     o.invoicetype, 
     ol.retailprice, 
     ol.wholesaleprice, 
     inv.sku 
from orders o 
inner join orderlines ol on o.orderid = ol.orderid 
left join items i on ol.itemid = i.inventoryid 
left join inventory inv on ol.itemid = inv.inventoryID 
inner join invoicetype it on o.invoicetype = it.invoicetype 
inner join warehouse w on o.warehouseid = w.warehouseid 
where o.orderdate between @fromdate and @todate + ' 11:59:59 PM' and 
     ol.quantity > 0 and 
     o.EnteredBy in (@EnteredBy) 
group by ol.itemid, 
     i.description, 
     it.invoicetypedesc, 
     ol.volume, 
     o.warehouseid, 
     w.warehousedesc, 
     o.invoicetype, 
     ol.retailprice, 
     ol.wholesaleprice, 
     inv.sku 

Оба отчета были сделаны давным-давно. Я изменяю отчет элемента, чтобы иметь те же функции, что и distID в другом отчете, но я не могу заставить его работать.

Я искал оба отчета для любых различий, которые мне не хватает, и я не могу их найти. Другая странность заключается в том, что когда я добавляю еще один параметр в отчете DistID, чтобы еще раз разбить его на orderID, который также не будет работать.

Я ничего не нашел в разделе «Фильтры, переменные или код» отчета. Я не уверен, чего здесь не хватает.

+0

Просьба уточнить, какой вопрос вы хотите задать здесь? –

ответ

0

Здесь может быть более одного вопроса. Я собираюсь сосредоточиться на (подразумеваемом) первом вопросе: почему второй отчет не выбирает один ItemID так же, как первый отчет выбирает один DistID?

Я думаю, что основная причина в том, что есть еще происходит в первом докладе, чем было заявлено - дано описание его до сих пор, когда пользователь вводит число в DistID поле параметра отчета НЕ СЛЕДУЕТ перезарядка с просто этот единственный DistID. Поэтому звучит так, как будто есть дополнительный фильтр для объекта отчета table/tablix, который используется для отображения вывода, или, возможно, видимость строк подробностей была обусловлена ​​значением параметра.

Если это так, вы можете использовать , дублируя функциональность первого отчета во втором, дублируя тот метод, который он использовал для отображения единого идентификатора. Однако, учитывая трудности обслуживания, которые этот метод дал (т. Е. Этот вопрос), я настоятельно рекомендую вам вместо этого добавить его к критериям выбора запроса.

+0

Извините, я потерял ответ на следующие вопросы: Именно это. Я проверил каждое место, о котором я могу думать в первом отчете. Я не могу найти нигде, где DistID фильтрует. Я пытаюсь дублировать то, как DistID работает от первого отчета до ItemID ко второму отчету. Есть ли какое-то место, которое я не рассматриваю в отчете первого отчета, чтобы понять, почему DistID работает именно так? –

+0

Когда вы упомянули Tablix Properties, который дал мне еще одну область, которую я проверил, посмотрел. Я смог найти это в разделе «Фильтры свойств табликса». =iif(isnumeric(Parameters!DistID.Value), cstr(Parameters!DistID.Value), cstr(Fields!DistID.Value))

+0

Это выглядит так! –

Смежные вопросы