У меня есть хранимая процедура в SSMS, которая выглядит примерно так:
SELECT
1 AS [Transaction Type 1]
,SOMEFIELD AS [Some Field]
,ANOTHERFIELD AS [Another Field]
,...
,2 AS [Transaction Type 2]
,SOMEOTHERFIELD AS [Some Other Field]
,YETANOTHERFIELD AS [Yet Another Field]
,...
,4 AS [Transaction Type 4]
,MOREFIELDS AS [More FieldS]
,EVENMOREFIELDS AS [Even More Fields]
FROM SomeTable
JOINS
WHERE
ORDER BY
Клиент требует, чтобы для каждой записи в выводе каждый раздел Тип транзакции (1,2,4) был на отдельной строке в файле, который SSRS генерирует при запуске отчета. Они обрабатывают данные из выходного файла, который генерирует SSRS, поэтому их не волнует, как отчет выглядит в браузере при запуске отчета, но файл должен выглядеть примерно так:
1|10354|99999-9999|O|SOMENAME|11161947|M|999-99-9999|SOMEADDRESS|SOMEADDRESS|SOMECITY|ST|99999|999-999-9999|CLI|99999999|99999999|O|S|
2|10354|99999-9999|O||||||||MSOMENAME|U61434|1790702207|465|||PODSTTRY|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4|117245592|SOMECOMPANY|STDSNP|117245592|1|Self
1|10723|99999-9999|O|SOMENAME|08081934|M|999-99-9999|SOMEADDRESS||SOMECITY|ST|99999|999-999-9999|ER |99999999|99999999|O|M|
2|10723|99999-9999|O||||||||SOMENAME||1356982441|3119||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4|4VH2R42VX92|SOMECOMPANY||4VH2R42VX92|1|Self
1|12318|99999-9999||SOMENAME|07201973|F|999-99-9999|SOMEADDRESS||SOMECITY|ST|99999|999-999-9999|CLI|99999999|99999999|O|M|
2|12318|99999-9999|||||||||SOMENAME||1194703439|1639||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4|STLW01260703|SOMECOMPANY|36650|STLW01260703|1|Self
Как я уже говорил выше, в выходных файлах каждый раздел типа 1, 2 и 4 находится в отдельной строке. Однако мне пришлось вручную выполнить приведенный выше пример вывода файла для целей этого вопроса, потому что фактический вывод файла выглядит следующим образом:
1|12318|99999-9999||SOMENAME|99999999|F|999-99-9999|SOMEADDRESS||SOMECITY|ST|99999|999-999-9999|CLI|99999999|99999999|O|M|2|12318|99999-9999|||||||||SOMENAME||99999999|1639||G68462||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||4|STLW01260703|SOMECOMPANY|36650|STLW01260703|1|Self
1|12328|99999-9999|O|SOMENAME|99999999|M|999-99-9999|SOMEADDRESS||SOMECITY|ST|99999|999-999-9999|CLI|99999999|99999999|O|S|2|12328|99999-9999|O||||||||SOMENAME||99999999|2447||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||4|CPWW01093606|SOMECOMPANY|20041|CPWW01093606|1|Self
1|12508|99999-9999|O|SOMENAME|99999999|F|999-99-9999|SOMEADDRESS||SOMECITY|ST|99999|999-999-99991|CLI|99999999|99999999|O|W|2|12508|99999-9999|O||||||||SOMENAME||99999999|2707||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||4|1XM0TM6DT02|SOMECOMPANY||1XM0TM6DT02|1|Self
1|13167|99999-9999||SOMENAME|99999999|F|999-99-9999|SOMEADDRESS||SOMECITY|ST|99999|999-999-9999|CLI|99999999|99999999|O|M|2|13167|99999-9999|||||||||SOMENAMEA||99999999|2159||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||4|9TP1NQ5MR03|SOMECOMPANY||9TP1NQ5MR03|1|Self
1|13673|99999-9999|O|SOMENAME|99999999|F|999-99-9999|SOMEADDRESS||SOMECITY|ST|99999|999-999-9999|CLI|99999999|99999999|O|M|2|13673|99999-9999|O||||||||SOMENAME||99999999|2707||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||4|DSTW00629242|SOMECOMPANY|XA061|DSTW00629242|1|Spouse
Каждая запись, генерируемая хранимой процедурой, находится в отдельной строке. Разделы 2 и 4 находятся в той же строке, что и соответствующий им раздел 1 для каждой соответствующей записи.
В VS для бизнеса, где я работаю над RDL, запутанная компоновка выглядит следующим образом:
И когда отчет запускается в SSRS, выходные данные выглядят так:
Вы заметите, что каждый раздел 1, 2 и 4 типа находится в отдельной строке для данной записи, как и предполагалось.
Я просто не могу понять, как получить сохранить его в текстовом файле с разделителями. Честно говоря, мы озадачены и задаемся вопросом, возможно ли это вообще в SSD RDL, за исключением того, что после создания файла создается пакетный файл, который помещает каждый раздел в отдельную строку.