Добавлен форматированный вывод столбцов для даты, времени и вещественных чисел

This commit is contained in:
Данияр Аглиуллов 2023-03-19 16:41:07 +04:00
parent 1b0d2b6b0f
commit 47c38ea718
8 changed files with 21 additions and 22 deletions

View File

@ -31,6 +31,7 @@ namespace ConfectioneryView
{ {
column.HeaderText = columnAttr.Title; column.HeaderText = columnAttr.Title;
column.Visible = columnAttr.Visible; column.Visible = columnAttr.Visible;
column.DefaultCellStyle.Format = columnAttr.Format;
if (columnAttr.IsUseAutoSize) if (columnAttr.IsUseAutoSize)
{ {
column.AutoSizeMode = (DataGridViewAutoSizeColumnMode)Enum.Parse(typeof(DataGridViewAutoSizeColumnMode), columnAttr.GridViewAutoSize.ToString()); column.AutoSizeMode = (DataGridViewAutoSizeColumnMode)Enum.Parse(typeof(DataGridViewAutoSizeColumnMode), columnAttr.GridViewAutoSize.ToString());

View File

@ -23,16 +23,7 @@ namespace ConfectioneryView
{ {
try try
{ {
var list = _logic.ReadList(null); dataGridView.FillAndConfigGrid(_logic.ReadList(null));
if (list != null)
{
dataGridView.DataSource = list;
dataGridView.Columns["Id"].Visible = false;
dataGridView.Columns["Pastries"].Visible = false;
dataGridView.Columns["Name"].AutoSizeMode =
DataGridViewAutoSizeColumnMode.Fill;
}
_logger.LogInformation("Загрузка магазинов"); _logger.LogInformation("Загрузка магазинов");
} }
catch (Exception ex) catch (Exception ex)

View File

@ -19,13 +19,16 @@ namespace ConfectioneryContracts.Attributes
public bool IsUseAutoSize { get; private set; } public bool IsUseAutoSize { get; private set; }
public ColumnAttribute(string title = "", bool visible = true, int width = 0, GridViewAutoSize gridViewAutoSize = GridViewAutoSize.None, bool isUseAutoSize = false) public string Format { get; private set; }
public ColumnAttribute(string title = "", bool visible = true, int width = 0, GridViewAutoSize gridViewAutoSize = GridViewAutoSize.None, bool isUseAutoSize = false, string format = "")
{ {
Title = title; Title = title;
Visible = visible; Visible = visible;
Width = width; Width = width;
GridViewAutoSize = gridViewAutoSize; GridViewAutoSize = gridViewAutoSize;
IsUseAutoSize = isUseAutoSize; IsUseAutoSize = isUseAutoSize;
Format = format;
} }
} }
} }

View File

@ -17,7 +17,7 @@ namespace ConfectioneryContracts.ViewModels
[Column("Название компонента", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] [Column("Название компонента", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string ComponentName { get; set; } = string.Empty; public string ComponentName { get; set; } = string.Empty;
[Column("Цена", width: 80)] [Column("Цена", width: 80, format: "0.00")]
public double Cost { get; set; } public double Cost { get; set; }
} }
} }

View File

@ -20,7 +20,7 @@ namespace ConfectioneryContracts.ViewModels
[Column("Отправитель", gridViewAutoSize: GridViewAutoSize.DisplayedCells, isUseAutoSize: true)] [Column("Отправитель", gridViewAutoSize: GridViewAutoSize.DisplayedCells, isUseAutoSize: true)]
public string SenderName { get; set; } = string.Empty; public string SenderName { get; set; } = string.Empty;
[Column("Дата письма", width: 100)] [Column("Дата письма", width: 100, format: "D")]
public DateTime DateDelivery { get; set; } public DateTime DateDelivery { get; set; }
[Column("Заголовок", width: 150)] [Column("Заголовок", width: 150)]

View File

@ -36,16 +36,16 @@ namespace ConfectioneryContracts.ViewModels
[Column("Количество", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] [Column("Количество", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
public int Count { get; set; } public int Count { get; set; }
[Column("Сумма", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] [Column("Сумма", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true, format: "0.00")]
public double Sum { get; set; } public double Sum { get; set; }
[Column("Статус", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)] [Column("Статус", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
public OrderStatus Status { get; set; } = OrderStatus.Неизвестен; public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
[Column("Дата создания", width: 100)] [Column("Дата создания", width: 100, format: "D")]
public DateTime DateCreate { get; set; } = DateTime.Now; public DateTime DateCreate { get; set; } = DateTime.Now;
[Column("Дата выполнения", width: 100)] [Column("Дата выполнения", width: 100, format: "D")]
public DateTime? DateImplement { get; set; } public DateTime? DateImplement { get; set; }
} }
} }

View File

@ -15,7 +15,8 @@ namespace ConfectioneryContracts.ViewModels
public int Id { get; set; } public int Id { get; set; }
[Column("Название изделия", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)] [Column("Название изделия", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string PastryName { get; set; } = string.Empty; public string PastryName { get; set; } = string.Empty;
[Column("Цена", width: 100)]
[Column("Цена", width: 100, format: "0.00")]
public double Price { get; set; } public double Price { get; set; }
[Column(visible: false)] [Column(visible: false)]
public Dictionary<int, (IComponentModel, int)> PastryComponents public Dictionary<int, (IComponentModel, int)> PastryComponents

View File

@ -1,4 +1,5 @@
using ConfectioneryDataModels; using ConfectioneryContracts.Attributes;
using ConfectioneryDataModels;
using ConfectioneryDataModels.Models; using ConfectioneryDataModels.Models;
using System.ComponentModel; using System.ComponentModel;
@ -6,24 +7,26 @@ namespace ConfectioneryContracts.ViewModels
{ {
public class ShopViewModel : IShopModel public class ShopViewModel : IShopModel
{ {
[DisplayName("Название магазина")] [Column("Название магазина", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true)]
public string Name { get; set; } = string.Empty; public string Name { get; set; } = string.Empty;
[DisplayName("Адрес магазина")] [Column("Адрес магазина", gridViewAutoSize: GridViewAutoSize.Fill, isUseAutoSize: true)]
public string Address { get; set; } = string.Empty; public string Address { get; set; } = string.Empty;
[DisplayName("Максимальное количество изделий в магазине")] [Column("Максимальное количество изделий в магазине", gridViewAutoSize: GridViewAutoSize.DisplayedCells, isUseAutoSize: true)]
public int MaxCountPastries { get; set; } public int MaxCountPastries { get; set; }
[DisplayName("Время открытия")] [Column("Время открытия", gridViewAutoSize: GridViewAutoSize.AllCells, isUseAutoSize: true, format: "f")]
public DateTime DateOpening { get; set; } = DateTime.Now; public DateTime DateOpening { get; set; } = DateTime.Now;
[Column(visible: false)]
public Dictionary<int, (IPastryModel, int)> Pastries public Dictionary<int, (IPastryModel, int)> Pastries
{ {
get; get;
set; set;
} = new(); } = new();
[Column(visible: false)]
public int Id { get; set; } public int Id { get; set; }
} }