diff --git a/FoodOrders/FoodOrders/FoodOrdersView.csproj b/FoodOrders/FoodOrders/FoodOrdersView.csproj
index 1eefeb1..a34b51e 100644
--- a/FoodOrders/FoodOrders/FoodOrdersView.csproj
+++ b/FoodOrders/FoodOrders/FoodOrdersView.csproj
@@ -16,6 +16,7 @@
+
diff --git a/FoodOrders/FoodOrders/FormReportDishComponents.cs b/FoodOrders/FoodOrders/FormReportDishComponents.cs
new file mode 100644
index 0000000..9db8913
--- /dev/null
+++ b/FoodOrders/FoodOrders/FormReportDishComponents.cs
@@ -0,0 +1,70 @@
+using FoodOrdersContracts.BindingModels;
+using FoodOrdersContracts.BusinessLogicsContracts;
+using Microsoft.Extensions.Logging;
+
+namespace FoodOrdersView
+{
+ public partial class FormReportDishComponents : Form
+ {
+ private readonly ILogger _logger;
+
+ private readonly IReportLogic _logic;
+
+ public FormReportDishComponents(ILogger logger, IReportLogic logic)
+ {
+ InitializeComponent();
+ _logger = logger;
+ _logic = logic;
+ }
+
+ private void FormReportDishComponents_Load(object sender, EventArgs e)
+ {
+ try
+ {
+ var dict = _logic.GetDishComponent();
+ if (dict != null)
+ {
+ dataGridView.Rows.Clear();
+ foreach (var elem in dict)
+ {
+ dataGridView.Rows.Add(new object[] { elem.ComponentName, "", "" });
+ foreach (var listElem in elem.Dishes)
+ {
+ dataGridView.Rows.Add(new object[] { "", listElem.Item1, listElem.Item2 });
+ }
+ dataGridView.Rows.Add(new object[] { "Итого", "", elem.TotalCount });
+ dataGridView.Rows.Add(Array.Empty