123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- using System;
- using CLIP.eForm.Consent.UI.HospitalSvcRef;
- using System.Windows.Forms;
- using System.Collections.Generic;
- using System.ComponentModel;
- namespace CLIP.eForm.Consent.UI {
- public partial class SetSupportDeptsForm : Form {
- //private IConsentMain consentMain = null;
- //private ConsentCommandCtrl commandControl = null;
- private HospitalSvcRef.HospitalSvcSoapClient hospitalWebService = null;
- //private ConsentSvcRef.ConsentSvcSoapClient consentWebService = null;
- private string instcd = string.Empty;
- private string userid = string.Empty;
- private string suDeptNm = string.Empty;
- private string hospitalSvcUrl = string.Empty;
- public string supportDeptCd { get; set; }
- public string supportBaseCd { get; set; }
- private BindingList<InspectionVO> checkboxItems = null;
- public SetSupportDeptsForm() {
- InitializeComponent();
- }
- public SetSupportDeptsForm(string instcd, string userId, string supportDeptCd, string supportBaseCd, string hospitalSvcUrl) {
- // UI 초기화
- InitializeComponent();
- this.instcd = instcd;
- this.userid = userId;
- this.supportDeptCd = supportDeptCd;
- this.supportBaseCd = supportBaseCd;
- this.hospitalSvcUrl = hospitalSvcUrl;
- }
- //Dictionary<string, string> configDic = ConsentMainControl.GetConfigDictionary(m_ServerName);
- //hospitalWebService = WebMethodCommon.GetHospitalWebService(configDic["hospitalSvcUrl"]);
- private void initData() {
- DeptListVO[] deptList = hospitalWebService.GetSupportDeptList();
- //InspectionVO[] deptList = null ;
- //deptList = hospitalWebService.GetInspectingRoomName(supportDeptCd); // 지원부서코드
- if(deptList != null && deptList.Length > 0) {
- DeptListVO vo = new DeptListVO();
- vo.deptAbbr = "";
- vo.deptCd = "";
- vo.deptNm = "지원부서를 선택해주세요.";
- vo.sort = 0;
- deptList.SetValue(vo, 0);
- // 초기화 시 콤보 박스 이벤트 해제
- comboUserDept.SelectedIndexChanged -= new System.EventHandler(comboUserDept_SelectedIndexChanged);
- comboUserDept.DataSource = deptList;
- comboUserDept.DisplayMember = "deptNm";
- comboUserDept.ValueMember = "deptCd";
- // 사용자 부서가 있다면
- if (!string.IsNullOrEmpty(this.supportDeptCd)) {
- // 현재 콤보 박스를 선택된 값으로
- comboUserDept.SelectedValue = this.supportDeptCd;
- // 지원부서 목록을 조회 후 체크박스 리스트를 업데이트 한다
- updateCheckedListBox(this.supportDeptCd);
- // 현재 사용자의 basecd 를 체크한다.
- updateUserSupportBaseCd();
- }
- // 봄보 박스 이벤트 추가
- comboUserDept.SelectedIndexChanged += new System.EventHandler(comboUserDept_SelectedIndexChanged);
- }
- }
- /// <summary>
- /// 사용자가 기존에 설정하였던 지원부서를 체크한다
- /// </summary>
- private void updateUserSupportBaseCd() {
- if(cbListSupportBaseCd.Items.Count < 1 || this.supportBaseCd.Length < 1) {
- return;
- }
- string[] baseCds = this.supportBaseCd.Split(',');
- for (int i = 0; i < cbListSupportBaseCd.Items.Count; i++) {
- foreach (var baseCd in baseCds) {
- var obj = cbListSupportBaseCd.Items[i] as InspectionVO;
- if (baseCd.Trim().Equals(obj.baseCd.Trim())) {
- cbListSupportBaseCd.SetItemChecked(i, true);
- }
- }
- }
- //string[] tempBaseCds = this.supportBaseCd.Split(',');
- }
- private void updateCheckedListBox(string dept) {
- // 먼저 미리 체크되어 있는 항목이 있으면 체크를 해제하여 준다
- if(cbListSupportBaseCd.CheckedItems.Count > 0) {
- for(int i = 0; i < cbListSupportBaseCd.CheckedItems.Count; i++) {
- cbListSupportBaseCd.SetItemChecked(i, false);
- }
- }
- InspectionVO[] inspectionVOs = hospitalWebService.GetInspectingRoomName(dept);
- if (inspectionVOs != null && inspectionVOs.Length > 0) {
- // 지원부서 체크박스 리스트를 생성한다.
- // 바인딩 리스트로 형변환
- checkboxItems = new BindingList<InspectionVO>(inspectionVOs);
- } else {
- checkboxItems = null;
- }
- ((ListBox) cbListSupportBaseCd).DataSource = inspectionVOs;
- ((ListBox) cbListSupportBaseCd).DisplayMember = "supportDeptNm";
- ((ListBox) cbListSupportBaseCd).ValueMember = "supportDeptCd";
- for(int i = 0; i < cbListSupportBaseCd.Items.Count; i++) {
- InspectionVO vo = cbListSupportBaseCd.Items[i] as InspectionVO;
- if (supportBaseCd.IndexOf(vo.baseCd) > 0) {
- //cbListSupportBaseCd.I
- cbListSupportBaseCd.SetItemChecked(i, true);
- }
- //if (supportDeptCd)
- }
- //checkboxItems.
- //for(int i = 0; i < checkboxItems.DataBindings.Count; i++) {
- // var temp = 0;
- //}
- // 체크박스 리스트 업데이트
- cbListSupportBaseCd.Invalidate();
- cbListSupportBaseCd.Update();
- }
- private void btnClose_Click(object sender, EventArgs e) {
- string value = string.Empty;
- foreach (InspectionVO vo in cbListSupportBaseCd.CheckedItems) {
- value += "'";
- value += vo.baseCd.ToString();
- value += "',";
- }
- value = value.TrimEnd(',');
- supportBaseCd = value;
- this.DialogResult = DialogResult.OK;
- this.Close();
- }
- /// <summary>
- /// 초기화
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void SetSupportDeptsForm_Load(object sender, EventArgs e) {
- Dictionary<string, string> configDic = ConsentMainControl.GetConfigDictionary(hospitalSvcUrl);
- hospitalWebService = WebMethodCommon.GetHospitalWebService(configDic["hospitalSvcUrl"]);
- initData();
- }
- /// <summary>
- /// 지원부서 콤보 박스 아이템 변경 이벤트
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void comboUserDept_SelectedIndexChanged(object sender, EventArgs e) {
- DeptListVO selectedDept = comboUserDept.SelectedItem as DeptListVO;
- supportDeptCd = selectedDept.deptCd;
- suDeptNm = selectedDept.deptNm;
- updateCheckedListBox(supportDeptCd);
- }
- /// <summary>
- /// 버튼 클릭 시 사용자가 체크한 값을 저장 한다
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void btnSave_Click(object sender, EventArgs e) {
- if(cbListSupportBaseCd.CheckedItems.Count != 0) {
- string value = string.Empty;
- foreach (InspectionVO vo in cbListSupportBaseCd.CheckedItems) {
- value += "'";
- value += vo.baseCd.ToString();
- value += "',";
- }
- value = value.TrimEnd(',');
- supportBaseCd = value;
- SingleReturnData result = hospitalWebService.SetSupportUserData(userid, value, supportDeptCd, supportBaseCd, Common.getMacAddress());
- if (!string.IsNullOrEmpty(result.responseData)) {
- MessageBox.Show("지원부서 설정이 저장되었습니다.");
- }
- } else {
- MessageBox.Show("선택된 값이 없습니다.");
- return;
- }
- }
- }
- }
|