LIS报告单模板管理工具
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
4.7 KiB

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<DictUser> _users = new List<DictUser>();
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;
}
/// <summary>
/// 查询用户数据
/// </summary>
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<DictUser> _updateReportFiles = new List<DictUser>();
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();
}
}
}
}
/// <summary>
/// 删除用户签名图片
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
}
}
}
}