/*********************** * 说明:拍照模板 * 创建人:龚宇超 * 创建日期:2018-06-11 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ***********************/ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Lskj.Control; using Lskj.Business.Impl; using Lskj.Util; using System.Collections; using System.Reflection; using Lskj.Data; using System.Threading; using System.IO; using Lskj.Control.Model; using System.Diagnostics; using Lskj.Model; using Lskj.Business; using System.Text.RegularExpressions; using Lskj.Core; namespace Lskj.CmCapture { public partial class FrmMain : BaseForm { public FrmMain() { InitializeComponent(); } #region 公用变量 public DynamicCmCapture SysModelObj; ///// ///// 目录ID ///// ///// The dir identifier. //public string DirId { get; set; } ///// ///// 目录树节点ID ///// ///// The spesies no. //public string SpesiesNo { get; set; } #endregion #region 私有变量 /// /// 0摄像头,1拍摄仪,2辅助拍摄 /// private int _typeCode = 0; /// /// 文件目录 /// private string _fileDir = "\\temp_cm_capture\\"; /// /// 拍照文件集合 /// private List _files = new List(); /// /// 当前附件名 /// private string _currentFileName; /// /// 当前附件的大小 /// private long _currentFileSize; #endregion /// /// 说明:窗体加载 /// 创建人:龚宇超 /// 创建日期:2018-06-11 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The instance containing the event data. protected override void OnLoad(EventArgs e) { try { this.InitializeSetting(); this.axCmCaptureOcx1.Initial(); this.axCmCaptureOcx1.StartRun(_typeCode); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } finally { Lskj.Control.Model.AutoSizeChange.ControllInitializeSize(this); } } /// /// 说明:初始化属性 /// 创建人:龚宇超 /// 创建日期:2018-06-11 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void InitializeSetting() { //初始化列 DataTable dtColumn = AttachImpl.GetCameraFileData(); this.gridControlEx.SetReadOnlyColumns(dtColumn); this.gridControlEx.GridView.DoubleClick += new EventHandler(OnGridViewDoubleClick); AttachHelper.OnUploadSuccess += new EventHandler(AttachHelper_OnUploadSuccess); } /// /// 说明:上传方法 /// 创建人:龚宇超 /// 创建日期:2018-06-11 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void UpLoad() { try { DataTable dt = gridControlEx.gridControl.DataSource as DataTable; for (int i = 0; i < dt.Rows.Count;i++ ) { this._currentFileName = dt.Rows[i]["Name"] + ""; string filePath = PubUtil.AbsolutelyPath + _fileDir + this._currentFileName; if (!File.Exists(filePath)) { MessageUtil.Show(ResourceKeys.NotLoaclFile); return; } //获取图片文件大小 FileStream info = File.OpenRead(filePath); byte[] img = new byte[info.Length]; info.Read(img, 0, Convert.ToInt32(info.Length)); info.Close(); _currentFileSize = Convert.ToInt64(img.Length); AttachHelper.UpLoadFile(this.Handle, SysModelObj.DirId, this._currentFileName, "001"); } this.progressBar1.Value = dt.Rows.Count; this.btnAdd.Enabled = this.btnDelete.Enabled = this.btnUpload.Enabled = true; this.lb_Text.Text = ResourceKeys.Completed; } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); LogHelper.Instance.WriteError(ex); } } /// /// 说明:RadioButton 切换模式 /// 创建人:龚宇超 /// 创建日期:2018-06-11 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The o. /// The instance containing the event data. protected void OnRadioClick(object sender, EventArgs e) { try { RadioButton rb = sender as RadioButton; _typeCode = Convert.ToInt32(rb.Tag); axCmCaptureOcx1.StartRun(this._typeCode); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 说明:表格双击 /// 创建人:龚宇超 /// 创建日期:2018-06-12 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The sender. /// The instance containing the event data. protected void OnGridViewDoubleClick(object sender,EventArgs e) { try { DataRow rowItem = this.gridControlEx.GridView.GetFocusedDataRow(); Process.Start(PubUtil.AbsolutelyPath + _fileDir + rowItem["name"] + ""); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 说明:拍照添加 /// 创建人:龚宇超 /// 创建日期:2018-06-11 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The o. /// The instance containing the event data. protected void OnAddClick(object sender, EventArgs e) { try { string Id = Guid.NewGuid() + ""; string fileName = Id + ".bmp"; this.axCmCaptureOcx1.CaptureImage(PubUtil.AbsolutelyPath + _fileDir + fileName); FileModel model = new FileModel(_files.Count + 1, fileName, DateTime.Now, Id); _files.Add(model); this.gridControlEx.SetGridViewDataSource(_files.ToDataTable()); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 说明:删除 /// 创建人:龚宇超 /// 创建日期:2018-06-11 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The o. /// The instance containing the event data. protected void OnDeleteClick(object sender, EventArgs e) { try { int[] rows = this.gridControlEx.GridView.GetSelectedRows(); for (int i = 0; i < rows.Length; i++) { DataRow row = this.gridControlEx.GridView.GetDataRow(rows[i]); string guid = row["key"] + ""; _files.Remove(_files.FirstOrDefault(s => s.key == guid)); string file = _fileDir + guid + ".bmp"; if (File.Exists(file)) File.Delete(file); } this.gridControlEx.SetGridViewDataSource(_files.ToDataTable()); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 说明:上传服务器 /// 创建人:龚宇超 /// 创建日期:2018-06-11 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The o. /// The instance containing the event data. protected void OnUpLoadClick(object sender, EventArgs e) { try { if (this.gridControlEx.GridView.DataRowCount == 0) { MessageUtil.Show(ResourceKeys.NotUploadFile); return; } this.lb_Text.Text = ResourceKeys.FileUpLoading; this.btnAdd.Enabled = this.btnDelete.Enabled = this.btnUpload.Enabled = false; this.progressBar1.Maximum = this.gridControlEx.GridView.DataRowCount; new Thread(UpLoad).Start(); } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 说明:上传成功 /// 创建人:龚宇超 /// 创建日期:2018-06-12 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The source of the event. /// The instance containing the event data. protected void AttachHelper_OnUploadSuccess(object sender,EventArgs e) { try { //附件上传成功处理 if (AttachHelper.IsDefWndProc(this.Handle, (System.Windows.Forms.Message)sender)) { int result = AttachImpl.InsertUpLoadFile(this._currentFileName, SysModelObj.DirId, _currentFileSize, SysModelObj.SpesiesNo); MessageUtil.Show(result > 0 ? ResourceKeys.UpLoadFileSuccess : ResourceKeys.UploadFileFail); } } catch (Exception ex) { string Message = ErrorMessage.PromptErrorMessage(ex); MessageUtil.Show(Message,ex.Message); } } /// /// 说明:窗口消息 /// 创建人:龚宇超 /// 创建日期:2018-06-12 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// 要处理的 Windows。 protected override void DefWndProc(ref Message m) { base.DefWndProc(ref m); if (this.Handle == m.HWnd) AttachHelper.DefWndProc(m); } } /// /// 拍照附件模型 /// class FileModel { public FileModel(int Id, String Name, DateTime Created, String key) { this.Id = Id; this.Name = Name; this.Created = Created; this.key = key; } public int Id { get; set; } public string Name { get; set; } public DateTime Created { get; set; } public string key { get; set; } } }