Вы можете передать в ParallelOptions
со свойством MaxDegreeOfParallelism
, установленным в 4.
При условии, что вы знаете максимальное количество столбцов, это можно сделать следующим образом.
Во-первых, назовите столбцы результатом запроса, чтобы вы могли либо передать его в запрос, либо вывести его там. Во-вторых, просто постройте отчет так, как если бы в нем было максимальное количество столбцов, и скройте их, если они пусты.
Например, мне нужно было создать отчет, в котором ежемесячно выводились бы цифры продаж за год, но месяцы не обязательно начинались с января. Я передал название месяца в одном столбце, а затем цифры для отчета. В .rdl я создал 12 наборов столбцов, по одному для каждого возможного месяца, и просто использовал выражение, чтобы скрыть столбец, если он пустой. В результате отчет расширяется до необходимого количества столбцов.
Конечно, это не совсем динамический отчет в том смысле, что он может расширяться настолько, насколько вам нужно, не зная верхней границы.
Мне приходилось делать это в прошлом, и я пришел к выводу, что "вы можете" t ", но я не уверен в этом. Если вы найдете решение, я хотел бы услышать об этом.
Возникает проблема: вам нужно определить отчет, используя имена столбцов, которые вы собираетесь вернуться из сохраненной процедуры, и если вы не знаете этих имен или их количества, как вы можете определить отчет?
Единственная идея, которая у меня возникла, как это сделать, - это динамически создать определение отчета (файл .rdl) через C #, но в то время мне не удалось найти MS API для этого, и я сомневаюсь, что он существует сейчас. Я нашел программу с открытым исходным кодом, но не пошел по этому пути.