using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using IOM_cs.insertForm.service; using IOM_cs.insertForm.service.impl; namespace IOM_cs.insertForm { public partial class CtrlDetail : UserControl { public CtrlDetail() { InitializeComponent(); setDetailValue(FormMain.person, FormMain.irisDataColl, FormMain.irisData); // 国籍 var items = new System.Collections.ArrayList(Enum.GetValues(typeof(country))).ToArray(); comboBox_edit_country.Items.Clear(); comboBox_edit_country.Items.AddRange(items); // 采集原因 items = new System.Collections.ArrayList(Enum.GetValues(typeof(collReason))).ToArray(); comboBox_edit_collReason.Items.Clear(); comboBox_edit_collReason.Items.AddRange(items); } #region 详情、编辑、删除 // 编辑 private void btn_edit_Click(object sender, EventArgs e) { panel_edit.Visible = true; panel_detail_labels.Visible = false; //基础信息 txt_edit_name.Text = label_det_name.Text; comboBox_edit_cardType.Text = label_det_cardType.Text; if (label_det_sex.Text == "男") radio_edit_male.Checked = true; else radio_edit_female.Checked = true; txt_edit_idCardNo.Text = label_det_idCardNo.Text; if (label_det_country.Text != "") comboBox_edit_country.SelectedItem = Enum.Parse(typeof(country), label_det_country.Text); if (FormMain.personExt.column6 != "" && FormMain.personExt.column6 != null) { txt_edit_startDate.Text = FormMain.personExt.column6.Split(',')[0]; txt_edit_endDate.Text = FormMain.personExt.column6.Split(',')[1]; } comboBox_edit_nation.Text = FormMain.person.nation; txt_edit_cerAuth.Text = label_det_cerAuth.Text; txt_edit_birthday.Text = label_det_birthday.Text; txt_edit_addr1.Text = label_det_addr1.Text; //采集信息 txt_edit_tel1.Text = label_det_tel1.Text; txt_edit_tel2.Text = label_det_tel2.Text; comboBox_edit_collPlace.Text = label_det_collPlace.Text; if (label_det_collReason.Text != "") comboBox_edit_collReason.SelectedItem = Enum.Parse(typeof(collReason), label_det_collReason.Text); txt_edit_addr2.Text = label_det_addr2.Text; txt_edit_collRemarks.Text = label_det_reasonCollDesc.Text; if (label_det_flgForce.Text == "是") radio_edit_flgForcePersonY.Checked = true; else if (label_det_flgForce.Text == "否") radio_edit_flgForcePersonN.Checked = true; if (label_det_flgWo.Text == "是") radio_edit_flgWoY.Checked = true; else if (label_det_flgWo.Text == "否") radio_edit_flgWoN.Checked = true; if (label_det_flgFocus.Text == "是") { radio_edit_flgFocusY.Checked = true; txt_edit_focusEndDate.Text = label_det_focusEndDate.Text; txt_edit_focusRemarks.Text = label_det_focusRemarks.Text; label37.Visible = true; label43.Visible = true; txt_edit_focusEndDate.Visible = true; picker_edit_focusEndDate.Visible = true; txt_edit_focusRemarks.Visible = true; } else if (label_det_flgFocus.Text == "否") { radio_edit_flgFocusN.Checked = true; label37.Visible = false; label43.Visible = false; txt_edit_focusEndDate.Visible = false; picker_edit_focusEndDate.Visible = false; txt_edit_focusRemarks.Visible = false; } } // 删除 private void btn_delete_Click_1(object sender, EventArgs e) { DialogResult r = MessageBox.Show("确认删除?", "提示", MessageBoxButtons.YesNo); if (r == DialogResult.Yes) { string imageL = FormMain.irisData.imageL1; string imageR = FormMain.irisData.imageR1; int re = UserIrisDB.DeletePerson(FormMain.person.id); if (re == 0) { if (pic_det_imageL1.Image != null) pic_det_imageL1.Image.Dispose(); if (pic_det_imageR1.Image != null) pic_det_imageR1.Image.Dispose(); // 删除虹膜照片 if (imageL!="" && File.Exists(FormMain.eyeImagePath + imageL)) { File.Delete(FormMain.eyeImagePath + imageL); } if (imageR!="" && File.Exists(FormMain.eyeImagePath + imageR)) { File.Delete(FormMain.eyeImagePath + imageR); } MessageBox.Show("删除成功!", "提示信息"); //跳转到采集列表 FormMain.insertService.setToFirst(FormMain.formMain.panel_Insert); FormMain.insertService.SetPanelControl(FormMain.formMain.panel_Insert, "collect"); } else { MessageBox.Show("删除失败!", "错误"); } } } // 取消编辑 private void btn_cancelEdit_Click(object sender, EventArgs e) { panel_edit.Visible = false; panel_detail_labels.Visible = true; } // 保存编辑 private void btn_saveEdit_Click(object sender, EventArgs e) { if (txt_edit_name.Text.Trim() == "") { MessageBox.Show(this, "姓名不能为空!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } else { if (!Validation.CheckName(txt_edit_name.Text.Trim())) { MessageBox.Show(this, "请输入真实姓名!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } if (txt_edit_birthday.Text == "") { MessageBox.Show(this, "生日不能为空!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } else { // 与身份证号相互校验 if (label_det_cardType.Text == "身份证" || label_det_cardType.Text == "临时居民身份证" || label_det_cardType.Text == "无证件") { string birth = ""; if (label_det_idCardNo.Text.Length == 15) birth = "19" + label_det_idCardNo.Text.Substring(6, 6).Insert(2, "-").Insert(5, "-"); else if (label_det_idCardNo.Text.Length == 18) birth = label_det_idCardNo.Text.Substring(6, 8).Insert(4, "-").Insert(7, "-"); if (birth != txt_edit_birthday.Text) { MessageBox.Show(this, "所选生日与身份证号中的生日不一致!", "Message", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } } } if (comboBox_edit_collReason.Text == "") { MessageBox.Show("采集原因不能为空!"); return; } if (comboBox_edit_collPlace.Text == "") { MessageBox.Show("采集场地不能为空!"); return; } if (txt_edit_tel1.Text != "") { if (!Validation.CheckMobliePhone(txt_edit_tel1.Text)) { MessageBox.Show("请输入正确的手机号1!"); return; } } if (txt_edit_tel2.Text != "") { if (!Validation.CheckMobliePhone(txt_edit_tel2.Text)) { MessageBox.Show("请输入正确的手机号2!"); return; } } // 收集数据 // 基础信息 FormMain.person.name = txt_edit_name.Text.Trim(); if (radio_edit_male.Checked) FormMain.person.sex = ((int)sex.男).ToString(); else if (radio_edit_female.Checked) FormMain.person.sex = ((int)sex.女).ToString(); // 性别 FormMain.person.nation = comboBox_edit_nation.Text.Trim(); // 民族 FormMain.person.birthday = Convert.ToDateTime(txt_edit_birthday.Text);//生日 FormMain.personExt.column1 = comboBox_edit_country.SelectedItem.GetHashCode().ToString(); // 国籍 if (txt_edit_startDate.Text != "" && txt_edit_endDate.Text != "") FormMain.personExt.column6 = txt_edit_startDate.Text + "," + txt_edit_endDate.Text; // 证件有效期 FormMain.personExt.column2 = txt_edit_cerAuth.Text.Trim();//签发机关 FormMain.personExt.column3 = txt_edit_addr1.Text.Trim();//户籍地址 FormMain.personExt.column4 = txt_edit_addr2.Text.Trim();//现住址 // 采集信息 FormMain.irisDataColl.tel1 = txt_edit_tel1.Text.Trim(); //手机号1 FormMain.irisDataColl.tel2 = txt_edit_tel2.Text.Trim(); // 手机号2 FormMain.irisDataColl.collReason = comboBox_edit_collReason.SelectedItem.GetHashCode().ToString();//采集原因 FormMain.irisDataColl.collPlace = comboBox_edit_collPlace.Text.Trim();//采集地点 if (radio_edit_flgForcePersonY.Checked) FormMain.irisDataColl.flgForcePerson = "1"; else if (radio_edit_flgForcePersonN.Checked) FormMain.irisDataColl.flgForcePerson = "0"; if (radio_edit_flgFocusY.Checked) FormMain.irisDataColl.flgFocus = "1"; else if (radio_edit_flgFocusN.Checked) FormMain.irisDataColl.flgFocus = "0"; if (radio_edit_flgWoY.Checked) FormMain.irisDataColl.flgWo = "1"; else if (radio_edit_flgWoN.Checked) FormMain.irisDataColl.flgWo = "0"; if (txt_edit_focusEndDate.Text != "") FormMain.irisDataColl.focusEndDate = Convert.ToDateTime(txt_edit_focusEndDate.Text); FormMain.irisDataColl.focusRemarks = txt_edit_focusRemarks.Text.Trim(); FormMain.irisDataColl.reasonCollDesc = txt_edit_collRemarks.Text.Trim(); // 更新数据库 int re = UserIrisDB.Update(FormMain.person, FormMain.personExt, FormMain.irisDataColl); if (re == 0) { MessageBox.Show("保存成功"); // 跳转到详情页 panel_detail_labels.Visible = true; panel_edit.Visible = false; setDetailValue(FormMain.person, FormMain.irisDataColl, FormMain.irisData); } } // 给详情页赋值 private void setDetailValue(Person person, IrisDataColl irisDataColl, IrisData irisData) { // 基础信息 label_det_name.Text = person.name; label_det_cardType.Text = Enum.GetName(typeof(cardType), Convert.ToInt16(person.cardType)); label_det_country.Text = Enum.GetName(typeof(country), Convert.ToInt16(FormMain.personExt.column1)); label_det_idCardNo.Text = person.idCardNo; label_det_nation.Text = person.nation; label_det_cerValid.Text = FormMain.personExt.column6; label_det_sex.Text = Enum.GetName(typeof(sex), Convert.ToInt16(person.sex)); label_det_cerAuth.Text = FormMain.personExt.column2; label_det_age.Text = countAge(person.birthday).ToString(); label_det_addr1.Text = FormMain.personExt.column3; if (null != person.birthday) label_det_birthday.Text = person.birthday.ToString("yyyy-MM-dd"); label_det_addr2.Text = FormMain.personExt.column4; label_det_tel1.Text = irisDataColl.tel1; label_det_tel2.Text = irisDataColl.tel2; label_det_collWay.Text = Enum.GetName(typeof(collWay), Convert.ToInt16(irisDataColl.collWay)); if (irisDataColl.isCer == "0") label_det_isCer.Text = "无证"; else if (irisDataColl.isCer == "1") label_det_isCer.Text = "有证"; //证件照 if (FormMain.personExt.column7 != null && FormMain.personExt.column7 != "") { string base64 = FormMain.personExt.column7.Replace("data:image/png;base64,", "").Replace("data:image/jgp;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "");//将base64头部信息替换 byte[] bytes = Convert.FromBase64String(base64); MemoryStream ms = new MemoryStream(bytes); Image mImage = Image.FromStream(ms); pic_det_photo.Image = Image.FromStream(ms); } // 采集信息 label_det_collTime.Text = irisDataColl.collTime.ToString("yyyy-MM-dd"); label_det_collName.Text = irisDataColl.collName; label_det_collReason.Text = Enum.GetName(typeof(collReason), Convert.ToInt16(irisDataColl.collReason)); label_det_collPlace.Text = irisDataColl.collPlace; label_det_stName.Text = irisDataColl.stName; label_det_stType.Text = irisDataColl.stType; if (irisDataColl.flgForcePerson == "0") label_det_flgForce.Text = "否"; else if (irisDataColl.flgForcePerson == "1") label_det_flgForce.Text = "是"; if (irisDataColl.flgWo == "0") label_det_flgWo.Text = "否"; else if (irisDataColl.flgWo == "1") label_det_flgWo.Text = "是"; // 临时关注 label39.Visible = false; label35.Visible = false; label_det_focusRemarks.Visible = false; label_det_focusEndDate.Visible = false; if (irisDataColl.flgFocus == "0") { label_det_flgFocus.Text = "否"; } else if (irisDataColl.flgFocus == "1") { label_det_flgFocus.Text = "是"; label39.Visible = true; label35.Visible = true; label_det_focusRemarks.Visible = true; label_det_focusEndDate.Visible = true; if (null != irisDataColl.focusEndDate) label_det_focusEndDate.Text = irisDataColl.focusEndDate.ToString("yyyy-MM-dd"); label_det_focusRemarks.Text = irisDataColl.focusRemarks; } label_det_devType.Text = irisDataColl.devType; label_det_devCode.Text = irisDataColl.devCode; label_det_devFirm.Text = irisDataColl.devFirm; label_det_reasonCollDesc.Text = irisDataColl.reasonCollDesc; label_det_collNum.Text = irisDataColl.collNum; // 生物特征 //左眼 string path = FormMain.eyeImagePath + irisData.imageL1; if (File.Exists(path)) pic_det_imageL1.Image = Image.FromFile(path); if (irisDataColl.qL != 0 && irisDataColl.qL.ToString()!="") label_det_qL.Text = "质量:" + irisDataColl.qL.ToString("0.0"); //右眼 path = FormMain.eyeImagePath + irisData.imageR1; if (File.Exists(path)) pic_det_imageR1.Image = Image.FromFile(path); if (irisDataColl.qR != 0 && irisDataColl.qR.ToString() != "") label_det_qR.Text = "质量:" + irisDataColl.qR.ToString("0.0"); } // 选择是否“临时关注” private void radio_edit_flgFocusY_CheckedChanged(object sender, EventArgs e) { if (radio_edit_flgFocusY.Checked) { label37.Visible = true; label43.Visible = true; txt_edit_focusEndDate.Visible = true; picker_edit_focusEndDate.Visible = true; txt_edit_focusRemarks.Visible = true; } else if (radio_edit_flgFocusN.Checked) { label37.Visible = false; label43.Visible = false; txt_edit_focusEndDate.Visible = false; picker_edit_focusEndDate.Visible = false; txt_edit_focusRemarks.Visible = false; } } // 返回采集列表 private void btn_back_Click(object sender, EventArgs e) { FormMain.insertService.setToFirst(FormMain.formMain.panel_Insert); FormMain.insertService.SetPanelControl(FormMain.formMain.panel_Insert, "collect"); } //计算年龄 private string countAge(DateTime birthday) { string ageS = ""; if (null != birthday) { DateTime now = DateTime.Now; int age = now.Year - birthday.Year; //再考虑月、天的因素 if (now.Month < birthday.Month || (now.Month == birthday.Month && now.Day < birthday.Day)) { age--; } ageS = age.ToString(); } return ageS; } #endregion } }