This commit is contained in:
Sergey Kozyrev 2024-04-05 14:49:09 +04:00
parent 1b1e04d9e7
commit 68cf9d32cd
2 changed files with 199 additions and 199 deletions

View File

@ -1,129 +1,129 @@
namespace SewingDressesView namespace SewingDressesView
{ {
partial class ReportOrdersForm partial class ReportOrdersForm
{ {
/// <summary> /// <summary>
/// Required designer variable. /// Required designer variable.
/// </summary> /// </summary>
private System.ComponentModel.IContainer components = null; private System.ComponentModel.IContainer components = null;
/// <summary> /// <summary>
/// Clean up any resources being used. /// Clean up any resources being used.
/// </summary> /// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (disposing && (components != null)) if (disposing && (components != null))
{ {
components.Dispose(); components.Dispose();
} }
base.Dispose(disposing); base.Dispose(disposing);
} }
#region Windows Form Designer generated code #region Windows Form Designer generated code
/// <summary> /// <summary>
/// Required method for Designer support - do not modify /// Required method for Designer support - do not modify
/// the contents of this method with the code editor. /// the contents of this method with the code editor.
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
panel = new Panel(); panel = new Panel();
buttonPdf = new Button(); buttonPdf = new Button();
buttonCreate = new Button(); buttonCreate = new Button();
dateTimePickerTo = new DateTimePicker(); dateTimePickerTo = new DateTimePicker();
label2 = new Label(); label2 = new Label();
dateTimePickerFrom = new DateTimePicker(); dateTimePickerFrom = new DateTimePicker();
label1 = new Label(); label1 = new Label();
panel.SuspendLayout(); panel.SuspendLayout();
SuspendLayout(); SuspendLayout();
// //
// panel // panel
// //
panel.Controls.Add(buttonPdf); panel.Controls.Add(buttonPdf);
panel.Controls.Add(buttonCreate); panel.Controls.Add(buttonCreate);
panel.Controls.Add(dateTimePickerTo); panel.Controls.Add(dateTimePickerTo);
panel.Controls.Add(label2); panel.Controls.Add(label2);
panel.Controls.Add(dateTimePickerFrom); panel.Controls.Add(dateTimePickerFrom);
panel.Controls.Add(label1); panel.Controls.Add(label1);
panel.Location = new Point(-1, -1); panel.Location = new Point(-1, -1);
panel.Name = "panel"; panel.Name = "panel";
panel.Size = new Size(1060, 59); panel.Size = new Size(1060, 59);
panel.TabIndex = 0; panel.TabIndex = 0;
// //
// buttonPdf // buttonPdf
// //
buttonPdf.Location = new Point(905, 15); buttonPdf.Location = new Point(905, 15);
buttonPdf.Name = "buttonPdf"; buttonPdf.Name = "buttonPdf";
buttonPdf.Size = new Size(144, 29); buttonPdf.Size = new Size(144, 29);
buttonPdf.TabIndex = 5; buttonPdf.TabIndex = 5;
buttonPdf.Text = "В Pdf"; buttonPdf.Text = "В Pdf";
buttonPdf.UseVisualStyleBackColor = true; buttonPdf.UseVisualStyleBackColor = true;
buttonPdf.Click += ButtonToPdf_Click; buttonPdf.Click += ButtonToPdf_Click;
// //
// buttonCreate // buttonCreate
// //
buttonCreate.Location = new Point(656, 16); buttonCreate.Location = new Point(656, 16);
buttonCreate.Name = "buttonCreate"; buttonCreate.Name = "buttonCreate";
buttonCreate.Size = new Size(144, 29); buttonCreate.Size = new Size(144, 29);
buttonCreate.TabIndex = 4; buttonCreate.TabIndex = 4;
buttonCreate.Text = "Сформировать"; buttonCreate.Text = "Сформировать";
buttonCreate.UseVisualStyleBackColor = true; buttonCreate.UseVisualStyleBackColor = true;
buttonCreate.Click += ButtonMake_Click; buttonCreate.Click += ButtonMake_Click;
// //
// dateTimePickerTo // dateTimePickerTo
// //
dateTimePickerTo.Location = new Point(367, 15); dateTimePickerTo.Location = new Point(367, 15);
dateTimePickerTo.Name = "dateTimePickerTo"; dateTimePickerTo.Name = "dateTimePickerTo";
dateTimePickerTo.Size = new Size(250, 27); dateTimePickerTo.Size = new Size(250, 27);
dateTimePickerTo.TabIndex = 3; dateTimePickerTo.TabIndex = 3;
// //
// label2 // label2
// //
label2.AutoSize = true; label2.AutoSize = true;
label2.Location = new Point(320, 18); label2.Location = new Point(320, 18);
label2.Name = "label2"; label2.Name = "label2";
label2.Size = new Size(27, 20); label2.Size = new Size(27, 20);
label2.TabIndex = 2; label2.TabIndex = 2;
label2.Text = "по"; label2.Text = "по";
// //
// dateTimePickerFrom // dateTimePickerFrom
// //
dateTimePickerFrom.Location = new Point(37, 15); dateTimePickerFrom.Location = new Point(37, 15);
dateTimePickerFrom.Name = "dateTimePickerFrom"; dateTimePickerFrom.Name = "dateTimePickerFrom";
dateTimePickerFrom.Size = new Size(250, 27); dateTimePickerFrom.Size = new Size(250, 27);
dateTimePickerFrom.TabIndex = 1; dateTimePickerFrom.TabIndex = 1;
// //
// label1 // label1
// //
label1.AutoSize = true; label1.AutoSize = true;
label1.Location = new Point(13, 20); label1.Location = new Point(13, 20);
label1.Name = "label1"; label1.Name = "label1";
label1.Size = new Size(18, 20); label1.Size = new Size(18, 20);
label1.TabIndex = 0; label1.TabIndex = 0;
label1.Text = "С"; label1.Text = "С";
// //
// ReportOrdersForm // ReportOrdersForm
// //
AutoScaleDimensions = new SizeF(8F, 20F); AutoScaleDimensions = new SizeF(8F, 20F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(1060, 450); ClientSize = new Size(1060, 450);
Controls.Add(panel); Controls.Add(panel);
Name = "ReportOrdersForm"; Name = "ReportOrdersForm";
Text = "ReportOrtdersForm"; Text = "Форма отчетов по заказам";
panel.ResumeLayout(false); panel.ResumeLayout(false);
panel.PerformLayout(); panel.PerformLayout();
ResumeLayout(false); ResumeLayout(false);
} }
#endregion #endregion
private Panel panel; private Panel panel;
private Label label1; private Label label1;
private Button buttonPdf; private Button buttonPdf;
private Button buttonCreate; private Button buttonCreate;
private DateTimePicker dateTimePickerTo; private DateTimePicker dateTimePickerTo;
private Label label2; private Label label2;
private DateTimePicker dateTimePickerFrom; private DateTimePicker dateTimePickerFrom;
} }
} }

View File

@ -5,88 +5,88 @@ using Microsoft.Reporting.WinForms;
namespace SewingDressesView namespace SewingDressesView
{ {
public partial class ReportOrdersForm : Form public partial class ReportOrdersForm : Form
{ {
private readonly ReportViewer reportViewer; private readonly ReportViewer reportViewer;
private readonly ILogger _logger; private readonly ILogger _logger;
private readonly IReportLogic _logic; private readonly IReportLogic _logic;
public ReportOrdersForm(ILogger<ReportOrdersForm> logger, IReportLogic logic) public ReportOrdersForm(ILogger<ReportOrdersForm> logger, IReportLogic logic)
{ {
InitializeComponent(); InitializeComponent();
_logger = logger; _logger = logger;
_logic = logic; _logic = logic;
reportViewer = new ReportViewer reportViewer = new ReportViewer
{ {
Dock = DockStyle.Fill Dock = DockStyle.Fill
}; };
var path = Directory.GetParent(Directory.GetCurrentDirectory())?.Parent?.Parent?.ToString() + "\\ReportOrders.rdlc"; var path = Directory.GetParent(Directory.GetCurrentDirectory())?.Parent?.Parent?.ToString() + "\\ReportOrders.rdlc";
reportViewer.LocalReport.LoadReportDefinition(new FileStream(path, FileMode.Open)); reportViewer.LocalReport.LoadReportDefinition(new FileStream(path, FileMode.Open));
Controls.Clear(); Controls.Clear();
Controls.Add(panel); Controls.Add(panel);
Controls.Add(reportViewer); Controls.Add(reportViewer);
}
private void ButtonMake_Click(object sender, EventArgs e) }
{
if (dateTimePickerFrom.Value.Date >= dateTimePickerTo.Value.Date)
{
MessageBox.Show("Дата начала должна быть меньше даты окончания", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
try
{
var dataSource = _logic.GetOrders(new ReportBindingModel
{
DateFrom = dateTimePickerFrom.Value,
DateTo = dateTimePickerTo.Value
});
var source = new ReportDataSource("DataSetOrders", dataSource);
reportViewer.LocalReport.DataSources.Clear();
reportViewer.LocalReport.DataSources.Add(source);
var parameters = new[] { new ReportParameter("ReportParameterPeriod", $"c {dateTimePickerFrom.Value.ToShortDateString()} по {dateTimePickerTo.Value.ToShortDateString()}") };
reportViewer.LocalReport.SetParameters(parameters);
reportViewer.RefreshReport(); private void ButtonMake_Click(object sender, EventArgs e)
_logger.LogInformation("Загрузка списка заказов на период {From}-{To}", dateTimePickerFrom.Value.ToShortDateString(), dateTimePickerTo.Value.ToShortDateString()); {
} if (dateTimePickerFrom.Value.Date >= dateTimePickerTo.Value.Date)
catch (Exception ex) {
{ MessageBox.Show("Дата начала должна быть меньше даты окончания", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
_logger.LogError(ex, "Ошибка загрузки списка заказов на период"); return;
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); }
} try
} {
var dataSource = _logic.GetOrders(new ReportBindingModel
{
DateFrom = dateTimePickerFrom.Value,
DateTo = dateTimePickerTo.Value
});
var source = new ReportDataSource("DataSetOrders", dataSource);
reportViewer.LocalReport.DataSources.Clear();
reportViewer.LocalReport.DataSources.Add(source);
var parameters = new[] { new ReportParameter("ReportParameterPeriod", $"c {dateTimePickerFrom.Value.ToShortDateString()} по {dateTimePickerTo.Value.ToShortDateString()}") };
reportViewer.LocalReport.SetParameters(parameters);
private void ButtonToPdf_Click(object sender, EventArgs e) reportViewer.RefreshReport();
{ _logger.LogInformation("Загрузка списка заказов на период {From}-{To}", dateTimePickerFrom.Value.ToShortDateString(), dateTimePickerTo.Value.ToShortDateString());
if (dateTimePickerFrom.Value.Date >= dateTimePickerTo.Value.Date) }
{ catch (Exception ex)
MessageBox.Show("Дата начала должна быть меньше даты окончания", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); {
return; _logger.LogError(ex, "Ошибка загрузки списка заказов на период");
} MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
using var dialog = new SaveFileDialog { Filter = "pdf|*.pdf" }; }
if (dialog.ShowDialog() == DialogResult.OK) }
{
try private void ButtonToPdf_Click(object sender, EventArgs e)
{ {
_logic.SaveOrdersToPdfFile(new ReportBindingModel if (dateTimePickerFrom.Value.Date >= dateTimePickerTo.Value.Date)
{ {
FileName = dialog.FileName, MessageBox.Show("Дата начала должна быть меньше даты окончания", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
DateFrom = dateTimePickerFrom.Value, return;
DateTo = dateTimePickerTo.Value }
}); using var dialog = new SaveFileDialog { Filter = "pdf|*.pdf" };
_logger.LogInformation("Сохранение списка заказов на период {From}-{To}", dateTimePickerFrom.Value.ToShortDateString(), dateTimePickerTo.Value.ToShortDateString()); if (dialog.ShowDialog() == DialogResult.OK)
MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); {
} try
catch (Exception ex) {
{ _logic.SaveOrdersToPdfFile(new ReportBindingModel
_logger.LogError(ex, "Ошибка сохранения списка заказов на период"); {
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); FileName = dialog.FileName,
} DateFrom = dateTimePickerFrom.Value,
} DateTo = dateTimePickerTo.Value
} });
} _logger.LogInformation("Сохранение списка заказов на период {From}-{To}", dateTimePickerFrom.Value.ToShortDateString(), dateTimePickerTo.Value.ToShortDateString());
MessageBox.Show("Выполнено", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
catch (Exception ex)
{
_logger.LogError(ex, "Ошибка сохранения списка заказов на период");
MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
}
} }