123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- using Comal.Classes;
- using FastReport;
- using InABox.Clients;
- using InABox.Core;
- using InABox.DynamicGrid;
- using InABox.Reports;
- using InABox.Wpf.Reports;
- using InABox.WPF;
- using PRSDesktop.Forms;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Controls;
- using System.Windows.Media.Imaging;
- namespace PRSDesktop.Grids
- {
- public class StickerGrid : DynamicDataGrid<WebSticker>
- {
- protected override void DoReconfigure(FluentList<DynamicGridOption> options)
- {
- base.DoReconfigure(options);
- options.AddRange(DynamicGridOption.AddRows, DynamicGridOption.EditRows, DynamicGridOption.DeleteRows, DynamicGridOption.ShowHelp, DynamicGridOption.MultiSelect);
- }
- protected override void Init()
- {
- base.Init();
- ActionColumns.Add(new DynamicImageColumn(PrintImage, PrintClick) { Position = DynamicActionColumnPosition.End });
- AddButton("Generate Stickers", null, GenerateSticker_Click);
- }
- private BitmapImage? PrintImage(CoreRow? arg)
- {
- if (arg == null)
- return null;
- return PRSDesktop.Resources.printer.AsBitmapImage();
- }
- private bool PrintClick(CoreRow? row)
- {
- if (row == null)
- return false;
- var dataModel = new AutoDataModel<WebSticker>(new Filter<WebSticker>(x => x.ID).IsEqualTo((Guid)row["ID"]));
- ReportUtils.PrintMenu<WebSticker>(null, "Sticker Grid", dataModel, Security.IsAllowed<CanDesignReports>(), true);
- return false;
- }
- public override DynamicGridColumns GenerateColumns()
- {
- var columns = base.GenerateColumns();
- columns.Add<WebSticker, string>(x => x.Equipment.Code, 0, "Equipment", "", Alignment.MiddleCenter);
- return columns;
- }
- private bool GenerateSticker_Click(Button sender, CoreRow[] selectedRows)
- {
- var window = new GenerateStickers();
- if(window.ShowDialog() == true)
- {
- var stickers = new Client<WebSticker>().Query(null, new Columns<WebSticker>(x => x.Code)).Rows
- .Select(x => (string)x["Code"]).ToHashSet();
- var newStickers = new List<WebSticker>();
- var prefix = window.CodePrefix.Text;
- var codeNumber = 0;
- for(int i = 0; i < window.NumberOfStickers.Value; i++)
- {
- var sticker = new WebSticker();
- string code;
- do
- {
- code = string.Format("{0}{1:D3}", prefix, codeNumber);
- codeNumber++;
- } while (stickers.Contains(code));
- sticker.Code = code;
- newStickers.Add(sticker);
- }
- new Client<WebSticker>().Save(newStickers, "Generated by user");
- return true;
- }
- return false;
- }
- }
- }
|