/// <summary> /// 更新表格显示 /// </summary> /// <param name="arch">编辑记录信息</param> private void UpdateGridView(ArchiveInfoDto arch) { string curOpera = null;// ctrlPanel.Tag.ToString(); switch (curOpera) { case "Add": // “新增”操作时对表格的更新 // 更新记录集 arvList.Add(arch); if (gcArvInfo.DataSource != arvList) { // 表格关联数据集发生变化,更新数据集 gcArvInfo.DataSource = arvList; ClearSearch(); // 清除搜索结果 } break; case "Edit": // “修改”操作时对表格的更新 // 获取当前表格中记录 BindingList <ArchiveInfoDto> bindingList = (BindingList <ArchiveInfoDto>)gcArvInfo.DataSource; // 查找被修改的记录 ArchiveInfoDto arv = bindingList.First(p => p.ID == arch.ID); //(p => p.ArvID == arch.ArvID); // 用新的记录替代原纪录,表格自动更新 bindingList[bindingList.IndexOf(arv)] = arch; break; default: break; } }
/// <summary> /// 更新录入界面的表格显示 /// </summary> /// <param name="arch"></param> private void UpdateGridViewShow(ArchiveInfoDto arch) { if (UpdateGViewDataListEvent != null) { UpdateGViewDataListEvent(arch); } }
/// <summary> /// 多条档案编辑 /// </summary> private void OnEdit() { if (gvArvInfo.GetSelectedRows().Length == 0) { MessageUtil.ShowWarning("请至少选择一条记录进行编辑!"); return; } // 记录选中记录的索引 int[] selectedIdx = gvArvInfo.GetSelectedRows(); // 建立所有选中档案的记录集 BindingList <ArchiveInfoDto> selectedArvItems = new BindingList <ArchiveInfoDto>(); foreach (int rowIndex in selectedIdx) { // 已选择的档案信息 ArchiveInfoDto info = (ArchiveInfoDto)gvArvInfo.GetRow(rowIndex); // 添加记录集 selectedArvItems.Add(info); } // 进入编辑对话框 toolBar.Tag = "EDIT"; OpenFormInfo("EDIT", selectedArvItems); // 刷新表格关联数据集 gcArvInfo.RefreshDataSource(); }
/// <summary> /// 档案入库 /// </summary> /// <param name="arv"></param> public int InToStorage(ArchiveInfoDto arvDto) { ArvBox arvBox = arvDto.MapTo <ArvBox>(); ArchiveInfo arv = arvDto.MapTo <ArchiveInfo>(); return(baseArvOpService.InToStorage(arv, arvBox)); }
private void FormArvInfo_Load(object sender, EventArgs e) { devices = CallerFactory.Instance.GetService <ISystemConfigService>().GetAllDevices();//所有设备 // 设置文本框输入提示 FieldCfgDto t = PropertyHelper.FieldCfgItems.Find(q => q.FieldName == "ArvBoxID"); string nullText = string.Format("请输入或双击选择{0}", t == null ? "ArvBoxID" : t.FieldShowName); txtArvBoxID.SetWatermark(nullText); // 设置UI控件的属性 ConfigControlProperty(this.Tag.ToString()); // 获得所有档案盒信息 GetArvBoxs(); // “编辑”界面下显示档案信息 if (this.Tag.ToString() == "EDIT") { // 当前选中的档案信息 arvCurrent = arvInfoList[0]; // 加载档案信息 LoadArvInfo(arvCurrent); } }
/// <summary> /// 执行入柜操作 /// </summary> private void ArvInput() { bool succeed = true; for (int i = 0; i < gvIntoCabinet.RowCount; i++) //foreach (ArchiveInfoDto arv in ArchiveList) { try { ArchiveInfoDto arv = (ArchiveInfoDto)gvIntoCabinet.GetRow(i); // 更新档案当前状态 arv.ArvStatus = "在库"; //ArchiveBLL.Instance.Update(arv, arv.ArvID); CallerFactory.Instance.GetService <IArvOpService>().UpdateArvInfo(arv); // 更新档案存储位置(这里不再需要) // “是否保存”设置为选中 //arvInfoTable.Rows[idx++]["是否保存"] = true; gvIntoCabinet.SetRowCellValue(i, gvIntoCabinet.Columns["colCheck"], true); OnInformCompleted(arv.ArvID); } catch (Exception e) { succeed = false; MessageUtil.ShowError(e.ToString()); } } //ArchiveList.Clear(); // if (succeed) // UpdateClipBoardInfo((String.Format("提示:所有档案信息保存入{0}号回转库第{1}层!", lblGroupNo.Text, lblLayerNo.Text))); }
private void LoadArvBox(ArvBoxDto arvBoxDto) { List <ArchiveInfoDto> arvs = new List <ArchiveInfoDto>(); foreach (int index in gvArvInfo.GetSelectedRows()) { ArchiveInfoDto dto = (ArchiveInfoDto)gvArvInfo.GetRow(index); dto.ArvBoxID = arvBoxDto.ArvBoxID; dto.ArvBoxTitle = arvBoxDto.ArvBoxTitle; dto.GroupNo = arvBoxDto.GroupNo; dto.LayerNo = arvBoxDto.LayerNo; dto.CellNo = arvBoxDto.CellNo; arvs.Add(dto); } try { CallerFactory.Instance.GetService <IArvOpService>().UpdateArvInfos(arvs); //更新数据库 BindingList <ArchiveInfoDto> bindingList = (BindingList <ArchiveInfoDto>)gcArvInfo.DataSource; //当前的绑定 foreach (int index in gvArvInfo.GetSelectedRows()) { //更新表格显示 gvArvInfo.SetRowCellValue(index, "ArvBoxID", arvBoxDto.ArvBoxID); gvArvInfo.SetRowCellValue(index, "ArvBoxTitle", arvBoxDto.ArvBoxTitle); gvArvInfo.SetRowCellValue(index, "GroupNo", arvBoxDto.GroupNo); gvArvInfo.SetRowCellValue(index, "LayerNo", arvBoxDto.LayerNo); gvArvInfo.SetRowCellValue(index, "CellNo", arvBoxDto.CellNo); } } catch (Exception ex) { MessageUtil.ShowError(ex.ToString()); } }
private void OnInput() { BindingList <ArchiveInfoDto> arvs = new BindingList <ArchiveInfoDto>();//待入柜的档案 int[] allSelected = gvArvInfo.GetSelectedRows(); if (allSelected.Count() == 0) { MessageUtil.ShowWarning("请选择要入柜的档案!"); return; } foreach (int idx in allSelected) { ArchiveInfoDto item = (ArchiveInfoDto)gvArvInfo.GetRow(idx); arvs.Add(item); } FrmDVDeviceCtrl frmDevice = new FrmDVDeviceCtrl(); frmDevice.ArchiveList = arvs; frmDevice.Tag = "Input"; frmDevice.InformCompleted += UpdateInfo; frmDevice.ShowDialog(); }
private void OnInput() { BindingList <ArchiveInfoDto> arvs = new BindingList <ArchiveInfoDto>();//待入柜的档案 int[] allSelected = gvArvInfo.GetSelectedRows(); if (allSelected.Count() == 0) { MessageUtil.ShowWarning("请选择要入柜的档案!"); return; } foreach (int idx in allSelected) { ArchiveInfoDto item = (ArchiveInfoDto)gvArvInfo.GetRow(idx); if (item.ArvBoxID == null) { MessageUtil.ShowWarning("请确定所有档案的存放位置!"); return; } // 更新档案当前状态 item.ArvStatus = "在库";//测试 arvs.Add(item); } CallerFactory.Instance.GetService <IArvOpService>().UpdateArvInfos((arvs.ToList())); //FormDVDeviceCtrl frmDevice = new FormDVDeviceCtrl(); //frmDevice.ArchiveList = arvs; //frmDevice.Tag = "Input"; //frmDevice.InformCompleted += UpdateInfo; //frmDevice.ShowDialog(); }
private void UpdateInfo(string arvID) { ArchiveInfoDto arv = arvList.First(q => q.ID == arvID); //(q => q.ArvID == arvID); if (arv != null) { arvList.Remove(arv); } }
private void OnEditOne() { // 进入编辑对话框 ctrlPanel.Tag = "EDIT"; // 已选择的档案信息 ArchiveInfoDto info = (ArchiveInfoDto)gvArvInfo.GetFocusedRow(); OpenFormInfo("EDIT", null); }
/// <summary> /// 显示选中的档案信息 /// </summary> /// <param name="arvCurrent"></param> void LoadArvInfo(ArchiveInfoDto arvCurrent) { txtArvID.Text = arvCurrent.ArvID; txtArvTitle.Text = arvCurrent.ArvTitle; txtArvBoxID.Text = arvCurrent.ArvBoxID; txtArvBoxTitle.Text = arvCurrent.ArvBoxTitle; cbxArvType.Text = arvCurrent.ArvType; cbxArvUnit.Text = arvCurrent.ArvUnit; txtLabelID.Text = arvCurrent.LabelID; txtEDoc.Text = arvCurrent.Edoc; cbxArvYear.Text = arvCurrent.ArvYear; }
/// <summary> /// 初始化记录对象 /// </summary> /// <param name="arch"></param> private void InitObject(ArchiveInfoDto arch) { arch.ArvID = txtArvID.Text.Trim(); arch.ArvTitle = txtArvTitle.Text.Trim(); arch.ArvBoxID = txtArvBoxID.Text.Trim(); arch.ArvBoxTitle = txtArvBoxTitle.Text.Trim(); arch.ArvType = cbxArvType.Text.Trim(); arch.ArvUnit = cbxArvUnit.Text.Trim(); arch.ArvYear = cbxArvYear.Text.Trim(); arch.LabelID = txtLabelID.Text.Trim(); arch.Edoc = txtEDoc.Text.Trim(); arch.Rsv2 = cbxRsv2.Text.Trim(); arch.Rsv3 = txtRsv3.Text.Trim(); arch.Rsv4 = cbxRsv4.Text.Trim(); arch.Rsv5 = txtRsv5.Text.Trim(); }
/// <summary> /// 更新 /// </summary> /// <param name="arch"></param> private void Update(ArchiveInfoDto arch) { try { // 修改档案 CallerFactory.Instance.GetService <IArvOpService>().UpdateArvInfo(arch); // 更新档案信息到表格关联的数据集 UpdateGridViewShow(arch); MessageUtil.ShowTips("修改成功!"); } catch (Exception ex) { MessageUtil.ShowWarning(ex.Message); } }
/// <summary> /// 借阅信息表的移除操作 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnRemove_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) { // 提取当前记录 ArchiveInfoDto info = gvArvToLend.GetRow(gvArvToLend.FocusedRowHandle) as ArchiveInfoDto; // 取消该条记录在借阅明细表中的选中状态 for (int i = 0; i < gvArvInfo.RowCount; i++) { if (gvArvInfo.GetRowCellValue(i, gvArvInfo.Columns[0]).ToString() == info.ID)//ArvID) { // 档案信息表中取消“CheckBox”选中状态,同时引起表格的“SelectionChanged”事件 gvArvInfo.UnselectRow(i); break; } } }
/// <summary> /// 档案信息表选中记录 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void gvArvInfo_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e) { // 清空借阅信息表 arvToLendList.Clear(); // 选中的行 int[] numSelected = gvArvInfo.GetSelectedRows(); foreach (int index in numSelected) { // 提取选中记录 ArchiveInfoDto info = gvArvInfo.GetRow(index) as ArchiveInfoDto; // 加入借阅明细表 arvToLendList.Add(info); } // 更新借阅明细数据源 gcArvToLend.RefreshDataSource(); gvArvToLend.BestFitColumns(); }
/// <summary> /// 判断当前档案是否改变 /// </summary> /// <returns></returns> private bool CheckChanged() { // 建立档案实体类对象 ArchiveInfoDto arch = new ArchiveInfoDto(); // 利用界面显示信息初始化实体类 InitArchive(arch); // 利用反射获取类对象的成员 foreach (PropertyInfo info in arch.GetType().GetProperties()) { if (info.Name != "ArvStatus" && info.Name.ToLower() != "id") { if ((info.GetValue(arch, null) != null) && (string.IsNullOrEmpty(info.GetValue(arch, null).ToString()))) { if (info.GetValue(arvCurrent, null) == null || info.GetValue(arvCurrent, null).ToString() == "") { continue; } else { return(true); } } else if (info.GetValue(arvCurrent, null) == null) { return(true); } else { if (info.GetValue(arch, null).ToString() != info.GetValue(arvCurrent, null).ToString()) { return(true); } } } } return(false); }
/// <summary> /// 保存档案信息 /// </summary> private void Save() { // 新增 if (this.Tag.ToString() == "ADD") { // 建立档案信息类对象 ArchiveInfoDto arch = new ArchiveInfoDto(); // 界面信息初始化实体类 InitArchive(arch); // 档案初始状态为“在档”,执行“入库”后转为“在库” arch.ArvStatus = "在档"; // 写数据库 AddNew(arch); } // 修改 if (this.Tag.ToString() == "EDIT") { InitArchive(arvCurrent); Update(arvCurrent); } }
/// <summary> /// 新增操作 /// </summary> /// <param name="arch"></param> private void AddNew(ArchiveInfoDto arch) { try { int succeed = CallerFactory.Instance.GetService <IArvOpService>().InToStorage(arch); if (succeed != 0) { // 档案信息加入表格关联的数据集 UpdateGridViewShow(arch); MessageUtil.ShowTips("添加成功!"); } else { MessageUtil.ShowTips("添加失败!"); } } catch (Exception ex) { MessageUtil.ShowWarning(ex.Message); } }
/// <summary> /// 根据界面显示初始化记录对象 /// </summary> /// <param name="arch"></param> private void InitArchive(ArchiveInfoDto arch) { // 档案信息 arch.ID = txtArvID.Text.Trim(); arch.ArvTitle = txtArvTitle.Text.Trim(); arch.ArvType = cbxArvType.Text.Trim(); arch.ArvUnit = cbxArvUnit.Text.Trim(); arch.ArvYear = deArvYear.Text.Trim(); arch.LabelID = txtLabelID.Text.Trim(); arch.Edoc = txtEDoc.Text.Trim(); arch.Rsv1 = cbxRsv2.Text.Trim(); arch.Rsv2 = txtRsv3.Text.Trim(); arch.Rsv3 = cbxRsv4.Text.Trim(); arch.Rsv4 = txtRsv5.Text.Trim(); arch.CreatePerson = txtCreatePerson.Text.Trim(); arch.CreateTime = deCreateTime.DateTime; // 档案盒 arch.ArvBoxID = txtArvBoxID.Text.Trim(); arch.ArvBoxTitle = txtArvBoxTitle.Text.Trim(); // 位置 string groupNo = cbxGroupNo.Text.Trim(); arch.GroupNo = string.IsNullOrEmpty(groupNo) == true ? 0 : Convert.ToInt16(groupNo); string layerNo = cbxLayerNo.Text.Trim(); arch.LayerNo = string.IsNullOrEmpty(layerNo) == true ? 0 : Convert.ToInt16(layerNo); string cellNo = cbxCellNo.Text.Trim(); arch.CellNo = string.IsNullOrEmpty(cellNo) == true ? 0 : Convert.ToInt16(cellNo); //// 如果档案盒信息和存储位置信息不为空,则档案状态从“在档”变为“在库” //if(!string.IsNullOrEmpty(arch.ArvBoxID) && (arch.GroupNo != 0) && (arch.LayerNo != 0)) //{ // arch.ArvStatus = "在库"; //} }
/// <summary> /// 保存档案信息 /// </summary> private void Save() { // 新增 if (this.Tag.ToString() == "ADD") { // 建立档案信息类对象 ArchiveInfoDto arch = new ArchiveInfoDto(); // 初始化对象 InitObject(arch); arch.CreateTime = System.DateTime.Now; arch.ArvStatus = "在库"; AddNew(arch); } // 修改 if (this.Tag.ToString() == "EDIT") { InitObject(arvCurrent); //arvCurrent.AuditTime = System.DateTime.Now; Update(arvCurrent); } }
/// <summary> /// 下一记录 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnNext_Click(object sender, EventArgs e) { if (CheckChanged()) { DialogResult result = MessageUtil.ShowYesNoAndTips("是否保存对当前档案的修改?"); if (result == DialogResult.Yes) { Save(); } } if (rowIndex == arvInfoList.Count() - 1) { MessageUtil.ShowWarning("已经到达最后一条记录!"); return; } rowIndex++; // 得到当前档案信息 arvCurrent = arvInfoList[rowIndex]; // 加载档案信息 LoadArvInfo(arvCurrent); }
/// <summary> /// “编辑”状态下UI显示档案信息 /// </summary> /// <param name="arvCurrent"></param> void LoadArvInfo(ArchiveInfoDto arvCurrent) { // 档案信息 txtArvID.Text = arvCurrent.ID; txtArvTitle.Text = arvCurrent.ArvTitle; cbxArvType.Text = arvCurrent.ArvType; cbxArvUnit.Text = arvCurrent.ArvUnit; txtLabelID.Text = arvCurrent.LabelID; txtEDoc.Text = arvCurrent.Edoc; deArvYear.Text = arvCurrent.ArvYear; txtCreatePerson.Text = arvCurrent.CreatePerson; deCreateTime.DateTime = arvCurrent.CreateTime; // 档案盒信息 txtArvBoxID.Text = arvCurrent.ArvBoxID; txtArvBoxTitle.Text = arvCurrent.ArvBoxTitle; // 档案盒存储位置 cbxGroupNo.Text = arvCurrent.GroupNo.ToString(); cbxLayerNo.Text = arvCurrent.LayerNo.ToString(); cbxCellNo.Text = arvCurrent.CellNo.ToString(); }
/// <summary> /// 判断当前档案是否改变 /// </summary> /// <returns></returns> private bool CheckChanged() { // 建立档案信息类对象 ArchiveInfoDto arch = new ArchiveInfoDto(); // 初始化对象 InitObject(arch); foreach (PropertyInfo info in arch.GetType().GetProperties()) { if (info.Name != "ArvStatus") { if (info.GetValue(arch, null) != null && String.IsNullOrEmpty(info.GetValue(arch, null).ToString())) { if (info.GetValue(arvCurrent, null) == null || info.GetValue(arvCurrent, null).ToString() == "") { continue; } else { return(true); } } else if (info.GetValue(arvCurrent, null) == null) { return(true); } else { if (info.GetValue(arch, null).ToString() != info.GetValue(arvCurrent, null).ToString()) { return(true); } } } } return(false); }
public int Delete(ArchiveInfoDto arvDto) { return(baseArvOpService.Delete(arvDto.MapTo <ArchiveInfo>())); }
public int UpdateArvInfo(ArchiveInfoDto arvDto) { return(baseArvOpService.UpdateArvInfo(arvDto.MapTo <ArchiveInfo>())); }
///// <summary> ///// 单个档案放入柜中(后期看情况第二个参数改成档案盒编号) ///// </summary> ///// <param name="dto"></param> ///// <param name="locDto"></param> ///// <returns></returns> //public int InputToCab(ArchiveInfoDto dto, ArvLocationDto locDto) //{ // return this.Invoker.Invoke<int>(q => q.InputToCab(dto,locDto)); //} ///// <summary> ///// 多个档案放入同一位置 ///// </summary> ///// <param name="arvs"></param> //public int InputToCab(List<ArchiveInfoDto> arvs, ArvLocationDto locDto) //{ // return this.Invoker.Invoke<int>(q => q.InputToCab(arvs, locDto)); //} /// <summary> /// 更新档案信息 /// </summary> /// <param name="arv">档案实体</param> /// <returns></returns> public int UpdateArvInfo(ArchiveInfoDto arvDto) { return(this.Invoker.Invoke <int>(q => q.UpdateArvInfo(arvDto))); }
/// <summary> /// 删除档案 /// </summary> /// <param name="arv">实体类型</param> /// <returns>操作是否成功</returns> public int Delete(ArchiveInfoDto arvDto) { return(this.Invoker.Invoke <int>(q => q.Delete(arvDto))); }
/// <summary> /// 保存数据导入到数据库和表格中 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void toolSave_Click(object sender, EventArgs e) { gv.PostEditor(); gv.CloseEditor(); if (gv.SelectedRowsCount == 0) { MessageUtil.ShowWarning("请选择导入条目!"); return; } successTable.Rows.Clear(); failureTable.Rows.Clear(); List <ArchiveInfoDto> importedArvList = new List <ArchiveInfoDto>(); // 将表格中的数据导入数据库中 if (gv.DataSource != null) { // 设置列对应的数据库表字段名 foreach (GridColumn col in gv.Columns) { // 从属性类中读取字段对应的显示名 List <FieldCfgDto> arvField = PropertyHelper.FieldCfgItems.Where <FieldCfgDto>(item => item.FieldShowName == col.FieldName).ToList <FieldCfgDto>(); if (arvField.Count == 1) { col.Name = arvField[0].FieldShowName; col.Tag = true; // 指示该列是要写入数据库的信息 } else { col.Tag = false; } } loading.ShowWaitForm();//数据多时界面可能会有卡顿 // 遍历所有行 //for (int i = 0; i < gv.RowCount; i++) int[] toDelete = gv.GetSelectedRows().Reverse().ToArray(); //List<ArchiveInfoDto> infos=new List<ArchiveInfoDto>(); foreach (int i in toDelete) { // 当前行对象转化为类实例 //ArchiveInfoDto info = GridControlHelper.Instance.ConvertDataRowToObject<ArchiveInfoDto>(gv, i); ArchiveInfoDto info = (ArchiveInfoDto)gv.GetRow(i);//单条保存,如果多条保存出错全部回滚不合理 info.ArvStatus = "在档"; try { // 记录写入数据库 CallerFactory.Instance.GetService <IArvOpService>().InToStorage(info); // 加入写入成功的数据表 successTable.Rows.Add(gv.GetDataRow(i).ItemArray); tbImport.Rows.RemoveAt(i);//成功写入的记录从表中移除 importedArvList.Add(info); } catch (Exception) { // 加入写入失败的数据表 failureTable.Rows.Add(gv.GetDataRow(i).ItemArray); } } gc.RefreshDataSource(); OnGetImportArchives(importedArvList); // 显示导入结果的对话框 FormPBExcelShow frmPBExcelShow = new FormPBExcelShow(); frmPBExcelShow.sCount = successTable.Rows.Count; frmPBExcelShow.xCount = failureTable.Rows.Count; frmPBExcelShow.Tb_ImportFailure = failureTable; frmPBExcelShow.ShowDialog(); } else { MessageUtil.ShowTips("没有数据可以导入"); } }
private void FormArvInfo_Load(object sender, EventArgs e) { // 设置按键属性 ConfigButtonProperty(this.Tag.ToString()); #region 设置标签、文本框和下拉框属性 // 遍历档案字段控件 foreach (Control cn in this.gbxArvInfo.Controls) { // 控件的Tag属性为空,表示不需要配置 if (cn.Tag == null) { continue; } // 设置Label控件的显示名称和是否可用 if (cn.GetType() == typeof(Label)) { // 配置标签属性 ConfigLabelProperty(cn); } // 设置TextBox控件是否可用 if (cn.GetType() == typeof(DevExpress.XtraEditors.TextEdit)) { // 配置文本框属性 ConfigTextBoxProperty(cn); } // 设置ComboBox控件是否可用,并设置可配置ComboBox控件的下拉明细 if (cn.GetType() == typeof(DevExpress.XtraEditors.ComboBoxEdit)) { // 配置下拉列表框属性 ConfigComboBoxProperty(cn); } // 年度信息 if (cbxArvType.Enabled) { int curYear = DateTime.Now.Year; // 年度信息加入列表框 cbxArvYear.Properties.Items.Clear(); for (int i = 0; i < (curYear - 1949); i++) { cbxArvYear.Properties.Items.Add(Convert.ToString(curYear - i)); } } } #endregion if (this.Tag.ToString() == "EDIT") { // 当前选中的档案信息 arvCurrent = arvInfoList[0]; // 加载档案信息 LoadArvInfo(arvCurrent); // 档案编号为只读属性,不能修改 txtArvID.Properties.ReadOnly = true; } }