SetSupportDeptsForm.cs.svn-base 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. using System;
  2. using CLIP.eForm.Consent.UI.HospitalSvcRef;
  3. using System.Windows.Forms;
  4. using System.Collections.Generic;
  5. using System.ComponentModel;
  6. namespace CLIP.eForm.Consent.UI {
  7. public partial class SetSupportDeptsForm : Form {
  8. //private IConsentMain consentMain = null;
  9. //private ConsentCommandCtrl commandControl = null;
  10. private HospitalSvcRef.HospitalSvcSoapClient hospitalWebService = null;
  11. //private ConsentSvcRef.ConsentSvcSoapClient consentWebService = null;
  12. private string instcd = string.Empty;
  13. private string userid = string.Empty;
  14. private string suDeptNm = string.Empty;
  15. private string hospitalSvcUrl = string.Empty;
  16. public string supportDeptCd { get; set; }
  17. public string supportBaseCd { get; set; }
  18. private BindingList<InspectionVO> checkboxItems = null;
  19. public SetSupportDeptsForm() {
  20. InitializeComponent();
  21. }
  22. public SetSupportDeptsForm(string instcd, string userId, string supportDeptCd, string supportBaseCd, string hospitalSvcUrl) {
  23. // UI 초기화
  24. InitializeComponent();
  25. this.instcd = instcd;
  26. this.userid = userId;
  27. this.supportDeptCd = supportDeptCd;
  28. this.supportBaseCd = supportBaseCd;
  29. this.hospitalSvcUrl = hospitalSvcUrl;
  30. }
  31. //Dictionary<string, string> configDic = ConsentMainControl.GetConfigDictionary(m_ServerName);
  32. //hospitalWebService = WebMethodCommon.GetHospitalWebService(configDic["hospitalSvcUrl"]);
  33. private void initData() {
  34. DeptListVO[] deptList = hospitalWebService.GetSupportDeptList();
  35. //InspectionVO[] deptList = null ;
  36. //deptList = hospitalWebService.GetInspectingRoomName(supportDeptCd); // 지원부서코드
  37. if(deptList != null && deptList.Length > 0) {
  38. DeptListVO vo = new DeptListVO();
  39. vo.deptAbbr = "";
  40. vo.deptCd = "";
  41. vo.deptNm = "지원부서를 선택해주세요.";
  42. vo.sort = 0;
  43. deptList.SetValue(vo, 0);
  44. // 초기화 시 콤보 박스 이벤트 해제
  45. comboUserDept.SelectedIndexChanged -= new System.EventHandler(comboUserDept_SelectedIndexChanged);
  46. comboUserDept.DataSource = deptList;
  47. comboUserDept.DisplayMember = "deptNm";
  48. comboUserDept.ValueMember = "deptCd";
  49. // 사용자 부서가 있다면
  50. if (!string.IsNullOrEmpty(this.supportDeptCd)) {
  51. // 현재 콤보 박스를 선택된 값으로
  52. comboUserDept.SelectedValue = this.supportDeptCd;
  53. // 지원부서 목록을 조회 후 체크박스 리스트를 업데이트 한다
  54. updateCheckedListBox(this.supportDeptCd);
  55. // 현재 사용자의 basecd 를 체크한다.
  56. updateUserSupportBaseCd();
  57. }
  58. // 봄보 박스 이벤트 추가
  59. comboUserDept.SelectedIndexChanged += new System.EventHandler(comboUserDept_SelectedIndexChanged);
  60. }
  61. }
  62. /// <summary>
  63. /// 사용자가 기존에 설정하였던 지원부서를 체크한다
  64. /// </summary>
  65. private void updateUserSupportBaseCd() {
  66. if(cbListSupportBaseCd.Items.Count < 1 || this.supportBaseCd.Length < 1) {
  67. return;
  68. }
  69. string[] baseCds = this.supportBaseCd.Split(',');
  70. for (int i = 0; i < cbListSupportBaseCd.Items.Count; i++) {
  71. foreach (var baseCd in baseCds) {
  72. var obj = cbListSupportBaseCd.Items[i] as InspectionVO;
  73. if (baseCd.Trim().Equals(obj.baseCd.Trim())) {
  74. cbListSupportBaseCd.SetItemChecked(i, true);
  75. }
  76. }
  77. }
  78. //string[] tempBaseCds = this.supportBaseCd.Split(',');
  79. }
  80. private void updateCheckedListBox(string dept) {
  81. // 먼저 미리 체크되어 있는 항목이 있으면 체크를 해제하여 준다
  82. if(cbListSupportBaseCd.CheckedItems.Count > 0) {
  83. for(int i = 0; i < cbListSupportBaseCd.CheckedItems.Count; i++) {
  84. cbListSupportBaseCd.SetItemChecked(i, false);
  85. }
  86. }
  87. InspectionVO[] inspectionVOs = hospitalWebService.GetInspectingRoomName(dept);
  88. if (inspectionVOs != null && inspectionVOs.Length > 0) {
  89. // 지원부서 체크박스 리스트를 생성한다.
  90. // 바인딩 리스트로 형변환
  91. checkboxItems = new BindingList<InspectionVO>(inspectionVOs);
  92. } else {
  93. checkboxItems = null;
  94. }
  95. ((ListBox) cbListSupportBaseCd).DataSource = inspectionVOs;
  96. ((ListBox) cbListSupportBaseCd).DisplayMember = "supportDeptNm";
  97. ((ListBox) cbListSupportBaseCd).ValueMember = "supportDeptCd";
  98. for(int i = 0; i < cbListSupportBaseCd.Items.Count; i++) {
  99. InspectionVO vo = cbListSupportBaseCd.Items[i] as InspectionVO;
  100. if (supportBaseCd.IndexOf(vo.baseCd) > 0) {
  101. //cbListSupportBaseCd.I
  102. cbListSupportBaseCd.SetItemChecked(i, true);
  103. }
  104. //if (supportDeptCd)
  105. }
  106. //checkboxItems.
  107. //for(int i = 0; i < checkboxItems.DataBindings.Count; i++) {
  108. // var temp = 0;
  109. //}
  110. // 체크박스 리스트 업데이트
  111. cbListSupportBaseCd.Invalidate();
  112. cbListSupportBaseCd.Update();
  113. }
  114. private void btnClose_Click(object sender, EventArgs e) {
  115. string value = string.Empty;
  116. foreach (InspectionVO vo in cbListSupportBaseCd.CheckedItems) {
  117. value += "'";
  118. value += vo.baseCd.ToString();
  119. value += "',";
  120. }
  121. value = value.TrimEnd(',');
  122. supportBaseCd = value;
  123. this.DialogResult = DialogResult.OK;
  124. this.Close();
  125. }
  126. /// <summary>
  127. /// 초기화
  128. /// </summary>
  129. /// <param name="sender"></param>
  130. /// <param name="e"></param>
  131. private void SetSupportDeptsForm_Load(object sender, EventArgs e) {
  132. Dictionary<string, string> configDic = ConsentMainControl.GetConfigDictionary(hospitalSvcUrl);
  133. hospitalWebService = WebMethodCommon.GetHospitalWebService(configDic["hospitalSvcUrl"]);
  134. initData();
  135. }
  136. /// <summary>
  137. /// 지원부서 콤보 박스 아이템 변경 이벤트
  138. /// </summary>
  139. /// <param name="sender"></param>
  140. /// <param name="e"></param>
  141. private void comboUserDept_SelectedIndexChanged(object sender, EventArgs e) {
  142. DeptListVO selectedDept = comboUserDept.SelectedItem as DeptListVO;
  143. supportDeptCd = selectedDept.deptCd;
  144. suDeptNm = selectedDept.deptNm;
  145. updateCheckedListBox(supportDeptCd);
  146. }
  147. /// <summary>
  148. /// 버튼 클릭 시 사용자가 체크한 값을 저장 한다
  149. /// </summary>
  150. /// <param name="sender"></param>
  151. /// <param name="e"></param>
  152. private void btnSave_Click(object sender, EventArgs e) {
  153. if(cbListSupportBaseCd.CheckedItems.Count != 0) {
  154. string value = string.Empty;
  155. foreach (InspectionVO vo in cbListSupportBaseCd.CheckedItems) {
  156. value += "'";
  157. value += vo.baseCd.ToString();
  158. value += "',";
  159. }
  160. value = value.TrimEnd(',');
  161. supportBaseCd = value;
  162. SingleReturnData result = hospitalWebService.SetSupportUserData(userid, value, supportDeptCd, supportBaseCd, Common.getMacAddress());
  163. if (!string.IsNullOrEmpty(result.responseData)) {
  164. MessageBox.Show("지원부서 설정이 저장되었습니다.");
  165. }
  166. } else {
  167. MessageBox.Show("선택된 값이 없습니다.");
  168. return;
  169. }
  170. }
  171. }
  172. }