using DevExpress.XtraEditors.Controls; using DevExpress.XtraEditors.Repository; using DevExpress.XtraGrid.Columns; using ReportTemplateTool.Models; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; namespace ReportTool.Views { public partial class SignImageForm : BaseView { private List _users = new List(); public SignImageForm() { InitializeComponent(); // 创建图片列 GridColumn imageColumn = SignImageGrid.Columns.AddField("SignImage"); imageColumn.Caption = "签名图片"; imageColumn.VisibleIndex = 0; // 设置图片编辑器 RepositoryItemPictureEdit pictureEdit = new RepositoryItemPictureEdit(); pictureEdit.SizeMode = PictureSizeMode.Squeeze; // 调整图片大小模式 pictureEdit.NullText = "无图片"; // 空值显示文本 SignImageControl.RepositoryItems.Add(pictureEdit); imageColumn.ColumnEdit = pictureEdit; Load += (s, e) => { this.GetUserData(); }; UploadBtn.Click += UploadBtnClick; //DownloadBtn.Click += DownloadBtnClick; DelBtn.Click += DelBtnClick; //SaveBtn.Click += SaveBtnClick; } /// /// 查询用户数据 /// private void GetUserData() { _users = _db.DictUser.ToList(); Invoke(new Action(() => SignImageControl.DataSource = null)); Invoke(new Action(() => { SignImageControl.DataSource = _users; SignImageControl.RefreshDataSource(); })); } private void UploadBtnClick(object sender, EventArgs e) { using (OpenFileDialog openFileDialog = new OpenFileDialog()) { openFileDialog.InitialDirectory = "D:\\ProgramCode\\company\\LisWeb\\liswebsvn\\LisWeb\\ReportFiles"; openFileDialog.RestoreDirectory = true; openFileDialog.Multiselect = true; openFileDialog.Title = "选择多个文件"; openFileDialog.Filter = "签名图片|*.jpg;*.jpeg;*.png"; openFileDialog.FilterIndex = 2; //openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); if (openFileDialog.ShowDialog() == DialogResult.OK) { List _updateReportFiles = new List(); foreach (string filePath in openFileDialog.FileNames) { FileInfo fileInfo = new FileInfo(filePath); string _userName = fileInfo.Name.Substring(0, fileInfo.Name.IndexOf('.')); DictUser _user = _users.FirstOrDefault(p => p.UserName == _userName); if (_user != null) { _user.SignImage = File.ReadAllBytes(filePath); _updateReportFiles.Add(_user); } } DialogResult result = MessageBox.Show("所选中的签名图片将覆盖已保存的图片,是否确认上传?", "操作确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { _db.SaveChanges(); this.GetUserData(); } } } } /// /// 删除用户签名图片 /// /// /// private void DelBtnClick(object sender, EventArgs e) { if (SignImageGrid.SelectedRowsCount == 0) return; DialogResult result = MessageBox.Show($"是否确定删除所选中的{SignImageGrid.SelectedRowsCount}个用户签名图片?", "操作确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { foreach (DictUser user in _users.Where(p => SignImageGrid.GetSelectedRows().Contains(_users.IndexOf(p)))) { //_db.Database.ExecuteSqlCommand($"update Dict_User set SignImage = NULL where UserCode = {user.UserCode}"); user.SignImage = null; } _db.SaveChanges(); this.GetUserData(); } } } }