Довольно полезный отчёт, когда у вас много позиций со списками материалов (BoM). В версии для гостиничного бизнеса эта функциональность называется рецепты (Recipe). Одна из особенностей отчёта в том, что он показывает себестоимость готового изделия (или блюда) с учётом текущей себестоимости компонентов (ингредиентов) на складе, соответствующему предполагаемому месту производства. А если она неизвестна, то себестоимость берётся из поля «Стоимость приобретения» (Landed Cost) в карточке запаса.

Если Вы далеки от технической стороны вопроса, но картинка Вам нравится, просто заставьте Ваших технических специалистов проделать действия, которые я опишу ниже 🙂
Условия использования:
Отчёт и хранимые процедуры SQL сервера поставляются «КАК ЕСТЬ» без каких-либо обязательств со стороны автора и возможности со стороны получателя предъявить какие-либо претензии. Вы НЕ можете убрать из отчёта и из текста хранимых процедур ссылку на автора. Предполагается, что у Вас имеется iScala, а также установленный и настроенный соответствующим образом (работающий) сервер отчётов (компонент MS SQL Server Reporting Services. Если у Вас есть iScala, то и этот компонент у Вас тоже есть, его не нужно покупать, он входит в комплект сервера баз данных). Если Вы принимаете эти условия, тогда проделайте следующие шаги, чтобы отчёт заработал на Вашем сервере отчётов.
Сначала скачайте файл с запросами SQL сервера. Только не забудьте заменить [CC] на код вашей компании в iScala, например, если код компании TR, то вместо [CC] нужно подставить TR. После этого можно запустить скрипт на выполнение
После этого скопируйте следующий текст (код отчёта), также вставьте его в Блокнот и сохраните как Recipe Report.rdl в формате UTF-8:
<?xml version="1.0" encoding="utf-8"?> <Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"> <Body> <ReportItems> <Tablix Name="Tablix1"> <TablixBody> <TablixColumns> <TablixColumn> <Width>0.3937in</Width> </TablixColumn> <TablixColumn> <Width>0.7874in</Width> </TablixColumn> <TablixColumn> <Width>1.9685in</Width> </TablixColumn> <TablixColumn> <Width>0.7874in</Width> </TablixColumn> <TablixColumn> <Width>0.7874in</Width> </TablixColumn> <TablixColumn> <Width>1in</Width> </TablixColumn> <TablixColumn> <Width>0.7874in</Width> </TablixColumn> <TablixColumn> <Width>0.7874in</Width> </TablixColumn> <TablixColumn> <Width>0.59055in</Width> </TablixColumn> <TablixColumn> <Width>2.3622in</Width> </TablixColumn> </TablixColumns> <TablixRows> <TablixRow> <Height>0.25in</Height> <TablixCells> <TablixCell> <CellContents> <Textbox Name="Textbox1"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Line No</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox1</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="Textbox3"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Child Stock Item Code</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox3</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="Textbox5"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Child Stock Description</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox5</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="Textbox7"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Child Stock Unit</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox7</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="Textbox9"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Child Qty</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox9</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="Textbox14"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Child Qty Type</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox11</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="Textbox11"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Child Average Price</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox11</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="Textbox17"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Average Amount</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox17</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="Textbox12"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Acc Code</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox12</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="Textbox16"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Acc Code Description</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox16</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> </TablixCells> </TablixRow> <TablixRow> <Height>0.25in</Height> <TablixCells> <TablixCell> <CellContents> <Textbox Name="RecipeStockDescription"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!RecipeStockDescription.Value</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>RecipeStockDescription</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Sum(Fields!WrongRecipe.Value)>0,"Red","LightYellow")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> <ColSpan>7</ColSpan> </CellContents> </TablixCell> <TablixCell /> <TablixCell /> <TablixCell /> <TablixCell /> <TablixCell /> <TablixCell /> <TablixCell> <CellContents> <Textbox Name="SubAverageAmount1"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Sum(Fields!SubAverageAmount.Value)</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> <Format>#,0.00######</Format> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>SubAverageAmount1</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Sum(Fields!WrongRecipe.Value)>0,"Red","LightYellow")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="MainAccCode"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!MainAccCode.Value</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>MainAccCode</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Sum(Fields!WrongRecipe.Value)>0,"Red","LightYellow")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="MainAccCodeDescription"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!MainAccCodeDescription.Value</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>MainAccCodeDescription</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Sum(Fields!WrongRecipe.Value)>0,"Red","LightYellow")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> </TablixCells> </TablixRow> <TablixRow> <Height>0.19685in</Height> <TablixCells> <TablixCell> <CellContents> <Textbox Name="RecipeLineNo"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!RecipeLineNo.Value</Value> <Style> <FontSize>8pt</FontSize> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>RecipeLineNo</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Fields!WrongRecipe.Value=1,"Red","White")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="ChildStockItemCode"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!ChildStockItemCode.Value</Value> <Style> <FontSize>8pt</FontSize> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>ChildStockItemCode</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Fields!WrongRecipe.Value=1,"Red","White")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="ChildStockDescription"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!ChildStockDescription.Value</Value> <Style> <FontSize>8pt</FontSize> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>ChildStockDescription</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Fields!WrongRecipe.Value=1,"Red","White")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="ChildStockUnit"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!ChildStockUnit.Value</Value> <Style> <FontSize>8pt</FontSize> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>ChildStockUnit</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Fields!WrongRecipe.Value=1,"Red","White")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="ChildQty"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!ChildQty.Value</Value> <Style> <FontSize>8pt</FontSize> <Format>#,0.00######</Format> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>ChildQty</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Fields!WrongRecipe.Value=1,"Red","White")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="ChildQtyType2"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!ChildQtyType.Value</Value> <Style> <FontSize>8pt</FontSize> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>ChildQtyType</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Fields!WrongRecipe.Value=1,"Red","White")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="SubAveragePrice"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!SubAveragePrice.Value</Value> <Style> <FontSize>8pt</FontSize> <Format>#,0.00######</Format> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>SubAveragePrice</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Fields!WrongRecipe.Value=1,"Red","White")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="SubAverageAmount"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!SubAverageAmount.Value</Value> <Style> <FontSize>8pt</FontSize> <Format>#,0.00######</Format> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>SubAverageAmount</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Fields!WrongRecipe.Value=1,"Red","White")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="SubAccCode"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!SubAccCode.Value</Value> <Style> <FontSize>8pt</FontSize> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>SubAccCode</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Fields!SubAccCode.Value="01" or Fields!SubAccCode.Value="50" or Fields!SubAccCode.Value="53" or Fields!SubAccCode.Value="54" or Fields!SubAccCode.Value="63" or Fields!SubAccCode.Value="73" or Fields!SubAccCode.Value="76" or Fields!SubAccCode.Value="79" or Fields!SubAccCode.Value="91" or Fields!SubAccCode.Value="92" or Fields!SubAccCode.Value="93","White","Red")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> <TablixCell> <CellContents> <Textbox Name="SubAccCodeDescription"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!SubAccCodeDescription.Value</Value> <Style> <FontSize>8pt</FontSize> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>SubAccCodeDescription</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Fields!WrongRecipe.Value=1,"Red","White")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixCell> </TablixCells> </TablixRow> </TablixRows> </TablixBody> <TablixColumnHierarchy> <TablixMembers> <TablixMember /> <TablixMember /> <TablixMember /> <TablixMember /> <TablixMember /> <TablixMember /> <TablixMember /> <TablixMember /> <TablixMember /> <TablixMember /> </TablixMembers> </TablixColumnHierarchy> <TablixRowHierarchy> <TablixMembers> <TablixMember> <TablixHeader> <Size>0.7874in</Size> <CellContents> <Textbox Name="Textbox13"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>Recipe Stock Item</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style> <TextAlign>Center</TextAlign> </Style> </Paragraph> </Paragraphs> <rd:DefaultName>Textbox13</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>Yellow</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixHeader> <TablixMembers> <TablixMember> <FixedData>true</FixedData> <KeepWithGroup>After</KeepWithGroup> <RepeatOnNewPage>true</RepeatOnNewPage> </TablixMember> </TablixMembers> <FixedData>true</FixedData> <KeepWithGroup>After</KeepWithGroup> <RepeatOnNewPage>true</RepeatOnNewPage> </TablixMember> <TablixMember> <Group Name="RecipeStockItemCode"> <GroupExpressions> <GroupExpression>=Fields!RecipeStockItemCode.Value</GroupExpression> </GroupExpressions> </Group> <SortExpressions> <SortExpression> <Value>=Fields!RecipeStockItemCode.Value</Value> </SortExpression> </SortExpressions> <TablixHeader> <Size>0.7874in</Size> <CellContents> <Textbox Name="RecipeStockItemCode"> <CanGrow>true</CanGrow> <KeepTogether>true</KeepTogether> <Paragraphs> <Paragraph> <TextRuns> <TextRun> <Value>=Fields!RecipeStockItemCode.Value</Value> <Style> <FontSize>8pt</FontSize> <FontWeight>Bold</FontWeight> </Style> </TextRun> </TextRuns> <Style /> </Paragraph> </Paragraphs> <rd:DefaultName>RecipeStockItemCode</rd:DefaultName> <Style> <Border> <Color>LightGrey</Color> <Style>Solid</Style> </Border> <BackgroundColor>=IIF(Sum(Fields!WrongRecipe.Value)>0,"Red","LightYellow")</BackgroundColor> <VerticalAlign>Middle</VerticalAlign> <PaddingLeft>2pt</PaddingLeft> <PaddingRight>2pt</PaddingRight> <PaddingTop>2pt</PaddingTop> <PaddingBottom>2pt</PaddingBottom> </Style> </Textbox> </CellContents> </TablixHeader> <TablixMembers> <TablixMember> <KeepWithGroup>After</KeepWithGroup> </TablixMember> <TablixMember> <Group Name="Details" /> </TablixMember> </TablixMembers> </TablixMember> </TablixMembers> </TablixRowHierarchy> <DataSetName>RecipeReport</DataSetName> <Height>0.69685in</Height> <Width>11.03935in</Width> <Style> <Border> <Style>None</Style> </Border> </Style> </Tablix> </ReportItems> <Height>0.69685in</Height> <Style /> </Body> <Width>11.03935in</Width> <Page> <LeftMargin>1in</LeftMargin> <RightMargin>1in</RightMargin> <TopMargin>1in</TopMargin> <BottomMargin>1in</BottomMargin> <Style /> </Page> <AutoRefresh>0</AutoRefresh> <DataSources> <DataSource Name="scalaDB"> <DataSourceReference>scalaDB</DataSourceReference> <rd:SecurityType>None</rd:SecurityType> <rd:DataSourceID>cfb823a7-e8ea-4cc4-8475-906e387fd4ca</rd:DataSourceID> </DataSource> </DataSources> <DataSets> <DataSet Name="RecipeReport"> <Query> <DataSourceName>scalaDB</DataSourceName> <QueryParameters> <QueryParameter Name="@RecipeStockItems"> <Value>=Parameters!RecipeStockItems.Value</Value> </QueryParameter> </QueryParameters> <CommandType>StoredProcedure</CommandType> <CommandText>usr_RS_RecipeReport</CommandText> </Query> <Fields> <Field Name="RecipeStockItemCode"> <DataField>RecipeStockItemCode</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> <Field Name="RecipeStockDescription"> <DataField>RecipeStockDescription</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> <Field Name="RecipeLineNo"> <DataField>RecipeLineNo</DataField> <rd:TypeName>System.Int32</rd:TypeName> </Field> <Field Name="MainAccCode"> <DataField>MainAccCode</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> <Field Name="ChildStockItemCode"> <DataField>ChildStockItemCode</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> <Field Name="MainAccCodeDescription"> <DataField>MainAccCodeDescription</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> <Field Name="ChildStockDescription"> <DataField>ChildStockDescription</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> <Field Name="ChildStockUnit"> <DataField>ChildStockUnit</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> <Field Name="ChildQty"> <DataField>ChildQty</DataField> <rd:TypeName>System.Decimal</rd:TypeName> </Field> <Field Name="ChildQtyType"> <DataField>ChildQtyType</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> <Field Name="SubAccCode"> <DataField>SubAccCode</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> <Field Name="WrongRecipe"> <DataField>WrongRecipe</DataField> <rd:TypeName>System.Int32</rd:TypeName> </Field> <Field Name="SubAccCodeDescription"> <DataField>SubAccCodeDescription</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> <Field Name="SubAveragePrice"> <DataField>SubAveragePrice</DataField> <rd:TypeName>System.Decimal</rd:TypeName> </Field> <Field Name="SubAverageAmount"> <DataField>SubAverageAmount</DataField> <rd:TypeName>System.Decimal</rd:TypeName> </Field> </Fields> </DataSet> <DataSet Name="RecipeStockItems"> <Query> <DataSourceName>scalaDB</DataSourceName> <CommandType>StoredProcedure</CommandType> <CommandText>usr_RS_Get_RecipeStockItems</CommandText> </Query> <Fields> <Field Name="RecipeStockItem"> <DataField>RecipeStockItem</DataField> <rd:TypeName>System.String</rd:TypeName> </Field> </Fields> </DataSet> </DataSets> <ReportParameters> <ReportParameter Name="RecipeStockItems"> <DataType>String</DataType> <Prompt>Recipe Stock Items</Prompt> <ValidValues> <DataSetReference> <DataSetName>RecipeStockItems</DataSetName> <ValueField>RecipeStockItem</ValueField> <LabelField>RecipeStockItem</LabelField> </DataSetReference> </ValidValues> <MultiValue>true</MultiValue> </ReportParameter> </ReportParameters> <rd:ReportUnitType>Inch</rd:ReportUnitType> <rd:ReportID>8e6a89ab-24f6-4cdb-b0ab-33b0307f5225</rd:ReportID> </Report>
Подробно:
Вставим код отчёта в блокнот
Сохраним как файл с расширением .rdl
Имя файла: с расширением .rdl (Report Definition Language — Язык определения отчёта)
Тип файла: *.* (не .txt!!!)
Кодировка: UTF-8
Теперь всё готово к публикации отчёта, но сначала я советую создать общий источник данных, если он у Вас ещё не создан.
После создания источника данных опубликуйте отчёт на сервере отчётов
Не забудьте дать права на папку с отчётом для соответствующей группы пользователей
И, пожалуйста, не забудьте написать мне, удалось ли Вам проделать всё вышеописанное и заработал ли отчёт 🙂


