/// <summary> /// 查询用户。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void BtnSearch_ClickAsync(object sender, RoutedEventArgs e) { List <Lib.MemberInfoEntity> MemberList = await DataMemberRepository.ReadMembers(new Lib.MemberSearch() { Id = InputMemberId }).ConfigureAwait(false); Dispatcher.Invoke(new Action(() => { if (MemberList.Count == 1) { Btn_Ok.IsEnabled = true; PropertyInfo[] TargetAttris = CurMember.GetType().GetProperties(); PropertyInfo[] SourceAttris = MemberList[0].GetType().GetProperties(); foreach (PropertyInfo item in SourceAttris) { var tempObj = TargetAttris.Where(x => x.Name.Equals(item.Name, StringComparison.Ordinal)).FirstOrDefault(); if (tempObj != null) { item.SetValue(CurMember, item.GetValue(MemberList[0])); } Btn_Ok.IsEnabled = true; } } else { AppFuns.ShowMessage("未找到该身份号码的职工信息!"); } })); }
/// <summary> /// 导出数据 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void BtnExport_ClickAsync(object sender, RoutedEventArgs e) { Button CurBtn = sender as Button; List <Lib.MemberInfoEntity> MemberList = await DataMemberRepository.ReadMembers(new MemberSearch() { }); if (MemberList == null) { return; } System.Windows.Forms.SaveFileDialog fileDialog = new System.Windows.Forms.SaveFileDialog(); fileDialog.Filter = "Excel|*.xls"; if (fileDialog.ShowDialog() == System.Windows.Forms.DialogResult.Cancel) { return; } try { CurBtn.IsEnabled = false; OperationMsg = "正在导出人员信息,请稍候...."; await Task.Run(() => { NpoiExcel.ExportExcels(fileDialog.FileName, "员工信息", MemberList); }); OperationMsg = $"人员信息导出....完成,文件为[{fileDialog.FileName}]。"; CurBtn.IsEnabled = true; } catch (Exception Ex) { AppFuns.ShowMessage(Ex.Message, Caption: "失败"); CurBtn.IsEnabled = true; } }
/// <summary> /// 初始化各属性值 /// </summary> private async void InitPropsAsync() { if (string.IsNullOrEmpty(_CurPageViewModel.EntityMember.Id)) { // AppFuns.ShowMessage("若要开始,请选输入员工身份证号!", "输入不正确")).ShowDialog(); return; } var MemberInfo = await DataMemberRepository.ReadEntity(_CurPageViewModel.EntityMember.Id); Stream UserHeadStream = null; if (MemberInfo != null) //数据表中已存在该记录。 { _CurPageViewModel.isEditFlag = true; _CurPageViewModel = new CurPageViewModel(MemberInfo); //读取用户头像信息 var UserPhotos = await DataMemberFileRepository.ReadFiles(new MemberFileSearch() { UserId = AppSet.LoginUser.Id, MemberId = _CurPageViewModel.EntityMember.Id, Name = _CurPageViewModel.EntityMember.Id }).ConfigureAwait(false); UserPhotos = UserPhotos.OrderByDescending(x => x.UpDateTime); if (UserPhotos != null && UserPhotos.Count() > 0) { UserHeadStream = await DataMemberFileRepository.DownloadFileStream(UserPhotos.First().Id, null); } } else { _CurPageViewModel.isEditFlag = false; } App.Current.Dispatcher.Invoke(() => { if (UserHeadStream != null) { System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(UserHeadStream); MemoryStream PhotoStream = new MemoryStream(); bitmap.Save(PhotoStream, System.Drawing.Imaging.ImageFormat.Png); _CurPageViewModel.UseHeadImage.BeginInit(); //如果希望关闭用于创建 BitmapImage的流,请将 CacheOption 设置为 BitmapCacheOption.OnLoad。 //默认 OnDemand 缓存选项保留对流的访问权限,直到需要映像,并且清除由垃圾回收器处理 _CurPageViewModel.UseHeadImage.CacheOption = BitmapCacheOption.OnLoad; _CurPageViewModel.UseHeadImage.StreamSource = PhotoStream; _CurPageViewModel.UseHeadImage.EndInit(); PhotoStream.Dispose(); } DataContext = _CurPageViewModel; }); }
/// <summary> /// 查询待发放信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void BtnSearchClickAsync(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(mSearch.Id)) { return; } List <Lib.MemberInfoEntity> Members = await DataMemberRepository.ReadMembers(mSearch); if (Members == null || Members.Count < 1) { return; } //读取用户头像信息 MemoryStream UserHeadStream = null; IEnumerable <MemberFile> UserPhotos = await DataMemberFileRepository.ReadFiles(new MemberFileSearch() { UserId = AppSet.LoginUser.Id, MemberId = Members[0].Id, Name = Members[0].Id }); UserPhotos = UserPhotos.OrderByDescending(x => x.UpDateTime); if (UserPhotos != null && UserPhotos.Count() > 0) { Stream TempStream = await DataMemberFileRepository.DownloadFileStream(UserPhotos.First().Id, null); System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(TempStream); UserHeadStream = new MemoryStream(); bitmap.Save(UserHeadStream, System.Drawing.Imaging.ImageFormat.Png); TempStream.Dispose(); //TempBitMap = new BitmapImage(); //TempBitMap.BeginInit(); //TempBitMap.CacheOption = BitmapCacheOption.OnLoad; //TempBitMap.StreamSource = UserHeadStream; //TempBitMap.EndInit(); //TempBitMap.Freeze(); //UserHeadStream.Dispose(); } string DateStr = $"打印日期:{DateTime.Now:yyy-MM-dd}"; CreateFlowDoc("PrintMemberSheetFlowDot.xaml", null, DateStr, UserHeadStream, Members[0], P_DocWidth: 793, P_DocHeight: 1122); }
/// <summary> /// 删除选定记录。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void btn_Delete_ClickAsync(object sender, RoutedEventArgs e) { if (RecordDataGrid.SelectedItem is Lib.MemberInfoEntity SelectMember) { if (SelectMember != null && AppFuns.ShowMessage($"确定要删除[{SelectMember.Name}]信息吗?", "确认", showYesNo: true)) { ExcuteResult excuteResult = await DataMemberRepository.DeleteMember(SelectMember).ConfigureAwait(false); if (excuteResult.State == 0) { await Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, new Action(() => { _PageViewModel.EntityList.Remove(SelectMember); }));; } else { AppFuns.ShowMessage(excuteResult.Msg, Caption: "失败"); } } } }
/// <summary> /// 查询指定条件的记录 /// </summary> /// <returns></returns> private async System.Threading.Tasks.Task SearchMember() { List <Lib.MemberInfoEntity> MemberList = await DataMemberRepository.ReadMembers(_PageViewModel.mSearch); if (MemberList == null) { AppFuns.SetStateBarText("查询过程出现错误,请重试!"); return; } if (MemberList.Count < 1) { _PageViewModel.EntityList.Clear(); } else { MemberList.Sort((x, y) => x.OrderIndex - y.OrderIndex); _PageViewModel.EntityList.Clear(); MemberList.ForEach(e => { _PageViewModel.EntityList.Add(e); }); } AppFuns.SetStateBarText($"共查询到记录:{_PageViewModel.EntityList.Count}条"); }
/// <summary> /// 查询待发放信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void BtnSearchClickAsync(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(_MemberSearch.Id)) { return; } List <Lib.MemberInfoEntity> Members = await DataMemberRepository.ReadMembers(_MemberSearch); if (Members == null || Members.Count < 1) { AppFuns.ShowMessage("未找到此用户信息!"); return; } AppFuns.SetStateBarText($"查看或打印[{Members[0].Name}]信息表。"); _FixedDocVM = new FixedDocViewModel(Members[0]); await _FixedDocVM.InitPropsAsync(); //设定打印标题 _FixedDocVM.PrintCaption = $"事 业 编 制 人 员 基 本 情 况 表"; if (_FixedDocVM.CurMember.MemberType.Equals("劳动合同制")) { _FixedDocVM.PrintCaption = $"劳 动 用 工 人 员 基 本 情 况 表"; } if (_FixedDocVM.CurMember.MemberType.Equals("劳务派遣制")) { _FixedDocVM.PrintCaption = $"劳 务 用 工 人 员 基 本 情 况 表"; } //设定打印日期 _FixedDocVM.PrintDate = DateTime.Now; //导入格式模板 string SheetTemplet = "PrintMemberSheetFixedDot.xaml"; _FixedDoc = (FixedDocument)Application.LoadComponent(new Uri($"/Office.Work.Platform;component/Member/{SheetTemplet}", UriKind.RelativeOrAbsolute)); _FixedDoc.AddPages(); _FixedDoc.DataContext = _FixedDocVM; docViewer.Document = _FixedDoc; this.BtnExport.IsEnabled = true; }
/// <summary> /// 查询数据 /// </summary> /// <returns></returns> public async Task SearchRecords() { if (string.IsNullOrWhiteSpace(SearchCondition.MemberId)) { return; } //1.先查询用户信息 List <Lib.MemberInfoEntity> TempMembers = await DataMemberRepository.ReadMembers(new MemberSearch() { Id = SearchCondition.MemberId }).ConfigureAwait(false); if (TempMembers != null && TempMembers.Count > 0) { CurMember = TempMembers[0]; } if (CurMember == null) { AppFuns.ShowMessage("未找到此用户信息!"); return; } if (SearchCondition != null) { List <Lib.MemberScore> MemberScoreList = await DataMemberScoreRepository.GetRecords(SearchCondition); App.Current.Dispatcher.Invoke(() => { MemberScores.Clear(); MemberScoreList?.ToList().ForEach(e => { e.Member = CurMember; MemberScores.Add(e); }); }); } }
/// <summary> /// 保存职工的基本信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void BtnSaveBasicClickAsync(object sender, RoutedEventArgs e) { if (string.IsNullOrWhiteSpace(_CurPageViewModel.EntityMember.Id)) { AppFuns.ShowMessage("员工的身份证号必须输入!"); Tb_UserId.Focus(); return; } if (string.IsNullOrWhiteSpace(_CurPageViewModel.EntityMember.Name)) { AppFuns.ShowMessage("员工的姓名必须输入!"); Tb_UserName.Focus(); return; } ExcuteResult excuteResult; if (_CurPageViewModel.isEditFlag) { excuteResult = await DataMemberRepository.UpdateEntity(_CurPageViewModel.EntityMember); AppFuns.ShowMessage(excuteResult.Msg); } else { excuteResult = await DataMemberRepository.AddEntity(_CurPageViewModel.EntityMember); if (excuteResult.State == 0) { //保存成功表示可以进行编辑了,即其他控件可以保存了。 _CurPageViewModel.isEditFlag = true; //只传递两个字段信息,不实际读取(因为此时没有必要读取) InitUcControlFilesAsync(false); AppFuns.ShowMessage(excuteResult.Msg); } } }
/// <summary> /// 更新员工的工作信息、受教育信息、更新备注信息等。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void BtnUpdateClickAsync(object sender, RoutedEventArgs e) { ExcuteResult excuteResult = await DataMemberRepository.UpdateEntity(_CurPageViewModel.EntityMember); AppFuns.ShowMessage(excuteResult.Msg); }
private async void BtnSelectFile_Click(object sender, RoutedEventArgs e) { Button CurBtn = sender as Button; int AddCount = 0; // 在WPF中, OpenFileDialog位于Microsoft.Win32名称空间 Microsoft.Win32.OpenFileDialog dialog = new Microsoft.Win32.OpenFileDialog { Filter = "Excel Files|*.xls;*.xlsx" }; if (dialog.ShowDialog() == true) { CurBtn.IsEnabled = false; try { System.IO.FileInfo theExcelFile = new System.IO.FileInfo(dialog.FileName); OperationMsg = $"正在从文件[{theExcelFile.FullName}]中导入人员信息,请稍候...."; await Task.Run(async() => { DataTable UserTable = NpoiExcel.ReadStreamToDataTable(theExcelFile.OpenRead(), null, true); if (UserTable != null && UserTable.Rows.Count > 0) { Lib.MemberInfoEntity tempMember = new Lib.MemberInfoEntity(); PropertyInfo[] Attri = tempMember.GetType().GetProperties(); for (int i = 0; i < UserTable.Rows.Count; i++) { tempMember = new Lib.MemberInfoEntity(); foreach (PropertyInfo item in Attri) { //获取该属性的描述特性值(比如:[Description("身份证号")]中的 "身份证号" ) object[] objs = item.GetCustomAttributes(typeof(DescriptionAttribute), true); string PropDescription = ((DescriptionAttribute)objs[0]).Description; if (UserTable.Columns.Contains(PropDescription) && UserTable.Rows[i][PropDescription] != null) { StringBuilder dateStr = new StringBuilder(UserTable.Rows[i][PropDescription].ToString()); switch (item.PropertyType.FullName) { case "System.DateTime": if (!DateTime.TryParse(dateStr.ToString(), out DateTime tempDateTime)) { //处理Excel中数据不规范情况。 dateStr = dateStr.Replace('.', '/'); dateStr = dateStr.Replace('-', '/'); dateStr = dateStr.Replace('—', '/'); dateStr = dateStr.Replace('。', '/'); if (dateStr.Length < 8) { dateStr.Append("/01"); } } if (DateTime.TryParse(dateStr.ToString(), out tempDateTime)) { item.SetValue(tempMember, tempDateTime); } break; case "System.Int32": if (int.TryParse(dateStr.ToString(), out int tempIntValue)) { item.SetValue(tempMember, tempIntValue); } break; case "System.String": item.SetValue(tempMember, UserTable.Rows[i][PropDescription].ToString()); break; default: continue; } } } if (!string.IsNullOrEmpty(tempMember.Id)) { tempMember.UserId = AppSet.LoginUser.Id; ExcuteResult excuteResult = await DataMemberRepository.AddOrUpdate(tempMember).ConfigureAwait(false); if (excuteResult.State == 0) { AddCount++; OperationMsg = $"正在从文件[{theExcelFile.FullName}]中导入人员信息,已导入[{AddCount}]条信息。"; } } } } });//Task Finish OperationMsg = $"人员信息导入成功,共导入[{AddCount}]条信息。"; CurBtn.IsEnabled = true; } catch (Exception VE) { AppFuns.ShowMessage("出现错误:" + VE.Message, Caption: "错误", isErr: true); CurBtn.IsEnabled = true; return; } } }