Даты изменения поставок

This commit is contained in:
the 2024-06-25 13:14:23 +04:00
parent a1575b150d
commit 57a28d9baf
11 changed files with 625 additions and 3 deletions

View File

@ -111,6 +111,14 @@ namespace BusinessLogic.BusinessLogic
return false; return false;
} }
model.Status = newStatus; model.Status = newStatus;
if (newStatus == SupplyStatus.Arriving)
{
model.DateArriving = DateTime.UtcNow;
}
if (newStatus == SupplyStatus.Completed)
{
model.DateComplete = DateTime.UtcNow;
}
if (_supplyStorage.Update(model) == null) if (_supplyStorage.Update(model) == null)
{ {
model.Status--; model.Status--;

View File

@ -3,6 +3,7 @@ using BusinessLogic.OfficePackage.HelperEnums;
using BusinessLogic.OfficePackage.HelperModels; using BusinessLogic.OfficePackage.HelperModels;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Configuration;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -20,9 +21,11 @@ namespace BusinessLogic.OfficePackage
Style = "NormalTitle", Style = "NormalTitle",
ParagraphAlignment = PdfParagraphAlignmentType.Center ParagraphAlignment = PdfParagraphAlignmentType.Center
}); });
string dateArriving = info.Supply.DateArriving.HasValue ? info.Supply.DateArriving.ToString() : "-";
string dateComplete = info.Supply.DateComplete.HasValue ? info.Supply.DateComplete.ToString() : "-";
CreateParagraph(new PdfParagraph CreateParagraph(new PdfParagraph
{ {
Text = $"Поставщик: {info.Supply.SupplierName}\nДата создания поставки: {info.Supply.Date}\nСтатус: {info.Supply.Status}", Text = $"Поставщик: {info.Supply.SupplierName}\nДата создания поставки: {info.Supply.Date}\nДата отправления поставки: {dateArriving}\nДата получения поставки: {dateComplete}\nСтатус: {info.Supply.Status}",
Style = "NormalTitle", Style = "NormalTitle",
ParagraphAlignment = PdfParagraphAlignmentType.Right ParagraphAlignment = PdfParagraphAlignmentType.Right
}); });

View File

@ -14,6 +14,8 @@ namespace Contracts.BindingModels
public string Name { get; set; } = string.Empty; public string Name { get; set; } = string.Empty;
public Guid SupplierId { get; set; } public Guid SupplierId { get; set; }
public DateTime Date { get; set; } public DateTime Date { get; set; }
public DateTime? DateArriving { get; set; }
public DateTime? DateComplete { get; set; }
public double Price { get; set; } public double Price { get; set; }
public SupplyStatus Status { get; set; } public SupplyStatus Status { get; set; }
public Dictionary<Guid, (IProduct, int)> SupplyProducts { get; set; } = new(); public Dictionary<Guid, (IProduct, int)> SupplyProducts { get; set; } = new();

View File

@ -18,6 +18,8 @@ namespace Contracts.ViewModels
public double Price { get; set; } public double Price { get; set; }
public Dictionary<Guid, (IProduct, int)> Products { get; set; } = new(); public Dictionary<Guid, (IProduct, int)> Products { get; set; } = new();
public DateTime Date { get; set; } public DateTime Date { get; set; }
public DateTime? DateArriving { get; set; }
public DateTime? DateComplete { get; set; }
public SupplyStatus Status { get; set; } public SupplyStatus Status { get; set; }
} }
} }

View File

@ -13,6 +13,8 @@ namespace DataModels.Models
double Price { get; } double Price { get; }
Guid SupplierId { get; } Guid SupplierId { get; }
DateTime Date { get; } DateTime Date { get; }
DateTime? DateArriving { get; }
DateTime? DateComplete { get; }
SupplyStatus Status { get; } SupplyStatus Status { get; }
Dictionary<Guid, (IProduct, int)> SupplyProducts { get; } Dictionary<Guid, (IProduct, int)> SupplyProducts { get; }
} }

View File

@ -0,0 +1,496 @@
// <auto-generated />
using System;
using DatabaseImplement;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace DatabaseImplement.Migrations
{
[DbContext(typeof(Database))]
[Migration("20240625085945_dates_migration")]
partial class dates_migration
{
/// <inheritdoc />
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "8.0.6")
.HasAnnotation("Relational:MaxIdentifierLength", 63);
NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
modelBuilder.Entity("DatabaseImplement.Models.MediaFile", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("Location")
.IsRequired()
.HasColumnType("text");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("ProductId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ProductId");
b.ToTable("MediaFiles");
});
modelBuilder.Entity("DatabaseImplement.Models.Product", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("Amount")
.HasColumnType("integer");
b.Property<bool>("IsBeingSold")
.HasColumnType("boolean");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<double>("Price")
.HasColumnType("double precision");
b.Property<double>("Rate")
.HasColumnType("double precision");
b.HasKey("Id");
b.ToTable("Products");
});
modelBuilder.Entity("DatabaseImplement.Models.Purchase", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("DatePurchase")
.HasColumnType("timestamp with time zone");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<Guid>("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("Purchases");
});
modelBuilder.Entity("DatabaseImplement.Models.PurchaseProducts", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("Count")
.HasColumnType("integer");
b.Property<Guid>("ProductId")
.HasColumnType("uuid");
b.Property<Guid>("PurchaseId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ProductId");
b.HasIndex("PurchaseId");
b.ToTable("PurchaseProducts");
});
modelBuilder.Entity("DatabaseImplement.Models.Role", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Roles");
});
modelBuilder.Entity("DatabaseImplement.Models.Sell", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("DateSell")
.HasColumnType("timestamp with time zone");
b.Property<Guid?>("UserId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("UserId");
b.ToTable("Sells");
});
modelBuilder.Entity("DatabaseImplement.Models.SellProducts", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("Count")
.HasColumnType("integer");
b.Property<Guid>("ProductId")
.HasColumnType("uuid");
b.Property<Guid>("SellId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ProductId");
b.HasIndex("SellId");
b.ToTable("SellProducts");
});
modelBuilder.Entity("DatabaseImplement.Models.Supplier", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("Deals")
.HasColumnType("integer");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.ToTable("Suppliers");
});
modelBuilder.Entity("DatabaseImplement.Models.SupplierProduct", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("Count")
.HasColumnType("integer");
b.Property<Guid>("ProductId")
.HasColumnType("uuid");
b.Property<Guid>("SupplierId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ProductId");
b.HasIndex("SupplierId");
b.ToTable("SupplierProducts");
});
modelBuilder.Entity("DatabaseImplement.Models.Supply", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("Date")
.HasColumnType("timestamp with time zone");
b.Property<DateTime?>("DateArriving")
.HasColumnType("timestamp with time zone");
b.Property<DateTime?>("DateComplete")
.HasColumnType("timestamp with time zone");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<double>("Price")
.HasColumnType("double precision");
b.Property<int>("Status")
.HasColumnType("integer");
b.Property<Guid>("SupplierId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("SupplierId");
b.ToTable("Supplies");
});
modelBuilder.Entity("DatabaseImplement.Models.SupplyDoc", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<string>("Name")
.IsRequired()
.HasColumnType("text");
b.Property<Guid>("SupplyId")
.HasColumnType("uuid");
b.HasKey("Id");
b.ToTable("SupplyDocs");
});
modelBuilder.Entity("DatabaseImplement.Models.SupplyProduct", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<int>("Count")
.HasColumnType("integer");
b.Property<Guid>("ProductId")
.HasColumnType("uuid");
b.Property<Guid>("SupplyId")
.HasColumnType("uuid");
b.HasKey("Id");
b.HasIndex("ProductId");
b.HasIndex("SupplyId");
b.ToTable("SupplyProducts");
});
modelBuilder.Entity("DatabaseImplement.Models.User", b =>
{
b.Property<Guid>("Id")
.ValueGeneratedOnAdd()
.HasColumnType("uuid");
b.Property<DateTime>("Birthday")
.HasColumnType("timestamp with time zone");
b.Property<string>("Email")
.IsRequired()
.HasColumnType("text");
b.Property<string>("FirstName")
.IsRequired()
.HasColumnType("text");
b.Property<bool>("OnlyImportantMails")
.HasColumnType("boolean");
b.Property<string>("PasswordHash")
.IsRequired()
.HasColumnType("text");
b.Property<Guid?>("RoleId")
.HasColumnType("uuid");
b.Property<string>("SecondName")
.IsRequired()
.HasColumnType("text");
b.HasKey("Id");
b.HasIndex("RoleId");
b.ToTable("Users");
});
modelBuilder.Entity("DatabaseImplement.Models.MediaFile", b =>
{
b.HasOne("DatabaseImplement.Models.Product", "Product")
.WithMany()
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Product");
});
modelBuilder.Entity("DatabaseImplement.Models.Purchase", b =>
{
b.HasOne("DatabaseImplement.Models.User", "User")
.WithMany()
.HasForeignKey("UserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("User");
});
modelBuilder.Entity("DatabaseImplement.Models.PurchaseProducts", b =>
{
b.HasOne("DatabaseImplement.Models.Product", "Product")
.WithMany("PurchaseProducts")
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DatabaseImplement.Models.Purchase", "Purchase")
.WithMany("Products")
.HasForeignKey("PurchaseId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Product");
b.Navigation("Purchase");
});
modelBuilder.Entity("DatabaseImplement.Models.Sell", b =>
{
b.HasOne("DatabaseImplement.Models.User", "User")
.WithMany()
.HasForeignKey("UserId");
b.Navigation("User");
});
modelBuilder.Entity("DatabaseImplement.Models.SellProducts", b =>
{
b.HasOne("DatabaseImplement.Models.Product", "Product")
.WithMany("SellProducts")
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DatabaseImplement.Models.Sell", "Sell")
.WithMany("Products")
.HasForeignKey("SellId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Product");
b.Navigation("Sell");
});
modelBuilder.Entity("DatabaseImplement.Models.SupplierProduct", b =>
{
b.HasOne("DatabaseImplement.Models.Product", "Product")
.WithMany()
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DatabaseImplement.Models.Supplier", "Supplier")
.WithMany("Products")
.HasForeignKey("SupplierId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Product");
b.Navigation("Supplier");
});
modelBuilder.Entity("DatabaseImplement.Models.Supply", b =>
{
b.HasOne("DatabaseImplement.Models.Supplier", "Supplier")
.WithMany()
.HasForeignKey("SupplierId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Supplier");
});
modelBuilder.Entity("DatabaseImplement.Models.SupplyProduct", b =>
{
b.HasOne("DatabaseImplement.Models.Product", "Product")
.WithMany()
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("DatabaseImplement.Models.Supply", "Supply")
.WithMany("Products")
.HasForeignKey("SupplyId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Product");
b.Navigation("Supply");
});
modelBuilder.Entity("DatabaseImplement.Models.User", b =>
{
b.HasOne("DatabaseImplement.Models.Role", "Role")
.WithMany()
.HasForeignKey("RoleId");
b.Navigation("Role");
});
modelBuilder.Entity("DatabaseImplement.Models.Product", b =>
{
b.Navigation("PurchaseProducts");
b.Navigation("SellProducts");
});
modelBuilder.Entity("DatabaseImplement.Models.Purchase", b =>
{
b.Navigation("Products");
});
modelBuilder.Entity("DatabaseImplement.Models.Sell", b =>
{
b.Navigation("Products");
});
modelBuilder.Entity("DatabaseImplement.Models.Supplier", b =>
{
b.Navigation("Products");
});
modelBuilder.Entity("DatabaseImplement.Models.Supply", b =>
{
b.Navigation("Products");
});
#pragma warning restore 612, 618
}
}
}

View File

@ -0,0 +1,60 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace DatabaseImplement.Migrations
{
/// <inheritdoc />
public partial class dates_migration : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<DateTime>(
name: "DateArriving",
table: "Supplies",
type: "timestamp with time zone",
nullable: true);
migrationBuilder.AddColumn<DateTime>(
name: "DateComplete",
table: "Supplies",
type: "timestamp with time zone",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_MediaFiles_ProductId",
table: "MediaFiles",
column: "ProductId");
migrationBuilder.AddForeignKey(
name: "FK_MediaFiles_Products_ProductId",
table: "MediaFiles",
column: "ProductId",
principalTable: "Products",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_MediaFiles_Products_ProductId",
table: "MediaFiles");
migrationBuilder.DropIndex(
name: "IX_MediaFiles_ProductId",
table: "MediaFiles");
migrationBuilder.DropColumn(
name: "DateArriving",
table: "Supplies");
migrationBuilder.DropColumn(
name: "DateComplete",
table: "Supplies");
}
}
}

View File

@ -41,6 +41,8 @@ namespace DatabaseImplement.Migrations
b.HasKey("Id"); b.HasKey("Id");
b.HasIndex("ProductId");
b.ToTable("MediaFiles"); b.ToTable("MediaFiles");
}); });
@ -226,6 +228,12 @@ namespace DatabaseImplement.Migrations
b.Property<DateTime>("Date") b.Property<DateTime>("Date")
.HasColumnType("timestamp with time zone"); .HasColumnType("timestamp with time zone");
b.Property<DateTime?>("DateArriving")
.HasColumnType("timestamp with time zone");
b.Property<DateTime?>("DateComplete")
.HasColumnType("timestamp with time zone");
b.Property<string>("Name") b.Property<string>("Name")
.IsRequired() .IsRequired()
.HasColumnType("text"); .HasColumnType("text");
@ -326,6 +334,17 @@ namespace DatabaseImplement.Migrations
b.ToTable("Users"); b.ToTable("Users");
}); });
modelBuilder.Entity("DatabaseImplement.Models.MediaFile", b =>
{
b.HasOne("DatabaseImplement.Models.Product", "Product")
.WithMany()
.HasForeignKey("ProductId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("Product");
});
modelBuilder.Entity("DatabaseImplement.Models.Purchase", b => modelBuilder.Entity("DatabaseImplement.Models.Purchase", b =>
{ {
b.HasOne("DatabaseImplement.Models.User", "User") b.HasOne("DatabaseImplement.Models.User", "User")

View File

@ -25,6 +25,8 @@ namespace DatabaseImplement.Models
public Guid SupplierId { get; set; } public Guid SupplierId { get; set; }
[Required] [Required]
public DateTime Date { get; set; } public DateTime Date { get; set; }
public DateTime? DateArriving { get; private set; }
public DateTime? DateComplete { get; private set; }
[Required] [Required]
public SupplyStatus Status { get; set; } = SupplyStatus.Pending; public SupplyStatus Status { get; set; } = SupplyStatus.Pending;
private Dictionary<Guid, (IProduct, int)>? _supplyProducts = null; private Dictionary<Guid, (IProduct, int)>? _supplyProducts = null;
@ -53,6 +55,8 @@ namespace DatabaseImplement.Models
Name = model.Name, Name = model.Name,
Price = model.Price, Price = model.Price,
Date = model.Date, Date = model.Date,
DateArriving = model.DateArriving,
DateComplete = model.DateComplete,
SupplierId = model.SupplierId, SupplierId = model.SupplierId,
Products = model.SupplyProducts.Select(x => new Products = model.SupplyProducts.Select(x => new
SupplyProduct SupplyProduct
@ -66,6 +70,8 @@ namespace DatabaseImplement.Models
public void Update(SupplyBindingModel model) public void Update(SupplyBindingModel model)
{ {
Status = model.Status; Status = model.Status;
DateArriving = model.DateArriving;
DateComplete = model.DateComplete;
} }
public SupplyViewModel GetViewModel public SupplyViewModel GetViewModel
{ {
@ -80,6 +86,8 @@ namespace DatabaseImplement.Models
Products = SupplyProducts, Products = SupplyProducts,
SupplierId = SupplierId, SupplierId = SupplierId,
Date = Date, Date = Date,
DateArriving = DateArriving,
DateComplete = DateComplete,
Status = Status, Status = Status,
SupplierName = Supplier.Name, SupplierName = Supplier.Name,
}; };

View File

@ -40,6 +40,7 @@
buttonPrintReport = new Button(); buttonPrintReport = new Button();
printPreviewDialog = new PrintPreviewDialog(); printPreviewDialog = new PrintPreviewDialog();
printDialog = new PrintDialog(); printDialog = new PrintDialog();
buttonRefresh = new Button();
((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit(); ((System.ComponentModel.ISupportInitialize)dataGridView).BeginInit();
menuStrip1.SuspendLayout(); menuStrip1.SuspendLayout();
SuspendLayout(); SuspendLayout();
@ -118,7 +119,7 @@
// //
// buttonPrintReport // buttonPrintReport
// //
buttonPrintReport.Location = new Point(707, 274); buttonPrintReport.Location = new Point(707, 261);
buttonPrintReport.Name = "buttonPrintReport"; buttonPrintReport.Name = "buttonPrintReport";
buttonPrintReport.Size = new Size(154, 44); buttonPrintReport.Size = new Size(154, 44);
buttonPrintReport.TabIndex = 6; buttonPrintReport.TabIndex = 6;
@ -140,11 +141,22 @@
// //
printDialog.UseEXDialog = true; printDialog.UseEXDialog = true;
// //
// buttonRefresh
//
buttonRefresh.Location = new Point(707, 325);
buttonRefresh.Name = "buttonRefresh";
buttonRefresh.Size = new Size(154, 47);
buttonRefresh.TabIndex = 7;
buttonRefresh.Text = "Обновить";
buttonRefresh.UseVisualStyleBackColor = true;
buttonRefresh.Click += buttonRefresh_Click;
//
// FormMain // FormMain
// //
AutoScaleDimensions = new SizeF(7F, 15F); AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(901, 384); ClientSize = new Size(901, 384);
Controls.Add(buttonRefresh);
Controls.Add(buttonPrintReport); Controls.Add(buttonPrintReport);
Controls.Add(buttonCreateReport); Controls.Add(buttonCreateReport);
Controls.Add(buttonSupplyStatusCompleted); Controls.Add(buttonSupplyStatusCompleted);
@ -176,5 +188,6 @@
private Button buttonPrintReport; private Button buttonPrintReport;
private PrintPreviewDialog printPreviewDialog; private PrintPreviewDialog printPreviewDialog;
private PrintDialog printDialog; private PrintDialog printDialog;
private Button buttonRefresh;
} }
} }

View File

@ -50,6 +50,8 @@ namespace WinFormsApp
if (list != null) if (list != null)
{ {
dataGridView.DataSource = list; dataGridView.DataSource = list;
dataGridView.Columns["SupplierId"].Visible = false;
dataGridView.Columns["Products"].Visible = false;
} }
_logger.LogInformation("Загрузка поставок"); _logger.LogInformation("Загрузка поставок");
} }
@ -125,7 +127,9 @@ namespace WinFormsApp
var operationResult = _supplyLogic.StatusUpdate(new SupplyBindingModel var operationResult = _supplyLogic.StatusUpdate(new SupplyBindingModel
{ {
Id = id, Id = id,
Status = (SupplyStatus)dataGridView.SelectedRows[0].Cells["Status"].Value Status = (SupplyStatus)dataGridView.SelectedRows[0].Cells["Status"].Value,
DateArriving = (DateTime?)dataGridView.SelectedRows[0].Cells["DateArriving"].Value,
DateComplete = (DateTime?)dataGridView.SelectedRows[0].Cells["DateComplete"].Value,
}, SupplyStatus.Completed); }, SupplyStatus.Completed);
if (!operationResult) if (!operationResult)
{ {
@ -179,5 +183,10 @@ namespace WinFormsApp
IronPrint.Printer.PrintAsync(dialog.FileName); IronPrint.Printer.PrintAsync(dialog.FileName);
} }
} }
private void buttonRefresh_Click(object sender, EventArgs e)
{
LoadData();
}
} }
} }